#########################################################################
	 #									 #
	 #		Настройка BIND v9.5 для Windows 2000/XP/2003.		 #
	 #			( как кэширующий DNS-серевер )			 #
	 #									 #
	 #########################################################################

		Тут умных и красивых введений не будет. Просто дело было вечером,
	делать было нечего. Решил поизвращаться ( да и у прова пару раз DNS падал ).
	Почему именно BIND? Да просто серверную винду под это дело лень ставить
	тем более какой-то сторонний софт специально искать, а опыт настройки BIND'a
	уже был ( правда под Линух ). И так вкратце из плюсов следующие:
	
[ + ]	  Ускорение доступа и экономия трафика.
  |										      |
  |	Контроль над происходящим ( при желании независимость от DNS провайдера ).    |
  |										      |
  |	Если у компика статистический IP, можно самому обслуживать домены.	      |
  |										      |
  |	Ну и конечно, приобретения дополнительного опыта.                             |
  |										      |
  ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ + ]
  |										      |
[ - ]	Ещё 1 сервис смотрящий наружу ( читай потенциальная уязвимость ).	      |
  |										      |
  |	Дополнительная нагрузка ( небольшая но есть ).                    	      |
  |										      |
  ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ - ]
  
		Вроде всё, с прилюдиями законченно - Поехали! Для начала качаем собсно
	сам BIND, лежит он по адресу:
		
	http://ftp.isc.org/isc/bind9/9.5.0-P1/BIND9.5.0-P1.zip
	
		Ещё нам понадобиться файл - ftp://ftp.internic.net/domain/named.root
	( что там, и нах он нужен, опишу чуть позже ). Распаковывай BIND и ставь
	куда удобно ( у меня это "C:\Server\named\" ). После установки можно ужаснуться =)
	Никаких конфигов нету. Тупо 2 папки: bin c бинарниками и пустая etc. Но настоящего
	джедая пустыми папками не напугаешь!
	
		Cоздаём файлы и папки ( лично у меня так, вы можите создать как вам удобно ):
		
	+---bin
	|       bindevt.dll
	|       BINDInstall.exe
	|       ...
	|       rndc.exe
	|
	+---etc
	|       named.conf
	|
	\---namedb
			localhost.rev
			named.root
	
	Дальше необходимо заполнить файл named.conf
	
	options {
		// Рабочая директория для поиска таблиц зон
		directory "C:\Server\named\namedb";

		// В какой файл писать PID
		pid-file "D:\Temp\named.pid";

		// Здесь можно изменить информацию выдаваемую на запрос о версии сервера
		version "My DNS server.";
   
		// Какой интерфейс слушать
		listen-on { 127.0.0.1; };
   
		// Запрещаем передачу зон другим серверам
		allow-transfer { none; };

		// Кому разрешенно использовать наш сервер ( сеть можно указать так 192.168.0.0/24 )
		allow-query { 192.168.0.10; 127.0.0.1; };

		// Может принимать всего 2 значения:
		//   only  -  никогда не обрабатывать запрос самостоятельно.
		//   first -  попытаться самому обработать если описанные в forwarders DNS не отвечают.
		forward first ;
   
		// Кому передавать запросы ( ставим самые ближние к нам
		//или смотрим в гугле любые другие ).
		forwarders { 195.58.27.158; 195.58.1.145; };
};

// Перечисляем зоны обслуживаемые сервером

// Корневые DNS. Файл named.root берём с ftp://ftp.internic.net/domain/named.root
// И переодически обновляем.
   zone "." {
       type hint;
       file "named.root"; };
	   

// Делаем "петлю" для себя люимых =)
   zone "0.0.127.in-addr.arpa" {
       type master;
       file "localhost.rev";
       notify no; };
	   
		Вродь всё достаточно подробно расписанно. Надеюсь вопросов нет? Все возможные опции
	и их описание можно найти по адресу: http://www.isc.org/sw/bind/arm95/Bv9ARM-all.html
	или глянуть в исходника ( http://ftp.isc.org/isc/bind9/ ).
	
		Файл localhost.rev
		
; Весь этот файл раньше создавался скриптом `make-localhost'. Но во первых
; теперь он делается автоматом при установке ( в *BSD/*nix ), а во сторых
; у нас винда. Поэтому тут всего 3 варианта:
; 0 - умоляем когонить всё-таки найти и запустить у себя на линухе скрипт.
; 1 - пишем руками
; 2 - используем этот

$TTL    3600

@       IN      SOA     d5ss.localhost. root.d5ss.localhost.  (
                                20080728  ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
        IN      NS      d5ss.localhost.
1       IN      PTR     localhost.localhost.

		С конфигами закончили. Пробуем запустить. Если сервис сразу заработал, то остаётся
	только вписать 127.0.0.1 в качестве DNS в настройках подключения к сети. Но у меня сервис
	сразу-же завершался =(. Решалось это сменой учётной записи для входа в систему с named на
	SYSTEM. Но я пошёл немного дальше и запихал его в группу "Гости" ( с паролем и
	соответствующим изменением прав на все требуемые файлы ).

		Как проверить что сие чудо работает нормально? В папке bin валяется утилита dig - вот
	она нам и пригодится. Запускаем: 
	
		dig @127.0.0.1 ya.ru
		
	Если полученно нечто похожее на это:
	
; <<>> DiG 9.2.1 <<>> @127.0.0.1 ya.ru
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36843
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

;; QUESTION SECTION:
;ya.ru.                         IN      A

;; ANSWER SECTION:
ya.ru.                  36000   IN      A       213.180.193.123

;; AUTHORITY SECTION:
ya.ru.                  36000   IN      NS      ns1.yandex.ru.
ya.ru.                  36000   IN      NS      ns2.yandex.ru.
ya.ru.                  36000   IN      NS      ns3.yandex.ru.
ya.ru.                  36000   IN      NS      ns.ispm.ru.

;; Query time: 2639 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Jun 13 22:28:50 2004
;; MSG SIZE  rcvd: 122

	то жить можно, если нет материмся, создаём правило в фаерволе и просматриваем конфиги.
	
	Вродь всё.
	
	P. S. >   На полноту охвата матерьяла не притиндую, на новизну тем более.
	      > Всем пасиб кто дочитал до этой строчки =).


									...[ by Izg0y ]...