#########################################################################
# #
# Настройка 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 ]...