Настройка DNS-сервера BIND
Материал из Xgu.ru
- Автор: Сергей Черепенин
- Короткий URL: bind
На этой странице описывается процедура инсталляции и настройки DNS-сервера
BIND для работы в режиме кэширующего и авторитетного сервера доменных имён.
[править] Инсталляция DNS-сервера BIND
Установка сервера в Debian / Ubuntu:
%# apt-get install bind9
[править] Начальное конфигурирование DNS-сервера
После установки сервера необходимо указать некоторые параметры для работы сервера. Это делается путем редактирования определенных директив в файле /etc/bind/named.conf.options:
options { directory "/var/cache/bind"; forwarders { 10.0.35.1; 10.0.17.1; 10.0.1.2; }; listen-on { 192.168.15.180; 127.0.0.1; }; auth-nxdomain no; # conform to RFC1035 };
Директива directory указывает на расположение в дереве каталогов временных файлов сервера.
Директива forwarders - на какие серверы пересылать запрос, если наш сервер сам не в состоянии определить имя или IP-адрес запроса клиентов.
Директива listen-on указывает на каких интерфейсах вести прослушивание 53 порта.
[править] Запуск DNS-сервера
После редактирования этого файла необходимо рестартовать сервер:
%# /etc/init.d/bind9 restart Stopping domain name service...: bind. Starting domain name service...: bind.
И проверяем:
%# netstat -lnp | grep :53 tcp 0 0 192.168.15.180:53 0.0.0.0:* LISTEN 31290/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 31290/named udp 0 0 192.168.15.180:53 0.0.0.0:* 31290/named udp 0 0 127.0.0.1:53 0.0.0.0:* 31290/named
[править] Настройка DNS-сервера для работы в режиме авторитетного сервера
Далее необходимо указать в основном конфигурационном файле сервера /etc/bind/named.conf.local имена файлов, в которых мы далее опишем зоны для прямого и обратного преобразований. Добавляем следующие строки в этот файл:
zone "unix.nt" { type master; file "/etc/bind/db.unix.nt"; allow-transfer { 127.0.0.1; }; }; zone "15.168.192.in-addr.arpa" { type master; file "/etc/bind/db.rev_unix.nt"; allow-transfer { 127.0.0.1; }; };
Файл /etc/bind/db.unix.nt служит для описания зоны прямого преобразования, а файл /etc/bind/db.rev_unix.nt - для обратного
Содержание файла /etc/bind/db.unix.nt:
$TTL 3000h @ SOA unix.nt. user.host180.unix.nt. 2007012000 ( 10h ; slave-server connection preiod 1h ; retry 1w ; lifetime 1h ); negative ttl NS @ host1.unix.nt. A 192.168.15.1 host2.unix.nt. A 192.168.15.2 host3.unix.nt. A 192.168.15.3 host4.unix.nt. A 192.168.15.4 host5.unix.nt. A 192.168.15.5 host6.unix.nt. A 192.168.15.6 host7.unix.nt. A 192.168.15.7 host8.unix.nt. A 192.168.15.8 host9.unix.nt. A 192.168.15.9 host10.unix.nt. A 192.168.15.10 host11.unix.nt. A 192.168.15.11 . . . host251.unix.nt. A 192.168.15.251 host252.unix.nt. A 192.168.15.252 host253.unix.nt. A 192.168.15.253 host254.unix.nt. A 192.168.15.254
Содержание файла /etc/bind/db.rev_unix.nt:
15.168.192.in-addr.arpa. 10800 IN SOA unix.nt. user.host180.unix.nt. 2007012001 ( 10h ; slave-server connection period 1h ; retry 1w ; life-time 1h ) ; negative ttl NS host180.unix.nt. 1 PTR host1.unix.nt. 2 PTR host2.unix.nt. 3 PTR host3.unix.nt. 4 PTR host4.unix.nt. 5 PTR host5.unix.nt. 6 PTR host6.unix.nt. 7 PTR host7.unix.nt. 8 PTR host8.unix.nt. 9 PTR host9.unix.nt. 10 PTR host10.unix.nt. 11 PTR host11.unix.nt. . . . 250 PTR host250.unix.nt. 251 PTR host251.unix.nt. 252 PTR host252.unix.nt. 253 PTR host253.unix.nt. 254 PTR host254.unix.nt.
Примечание: для быстрого описания всей зоны (254 хоста) можно дать команду в vim:
-- для прямой зоны:
:r! for i in `seq 1 254`;do echo host$i.unix.nt. A 192.168.15.$i; done
-- для обратной зоны:
:r! for i in `seq 1 254`;do echo $i PTR host$i.unix.nt. ; done
Другой вариант - использование директивы $GENERATE
$ORIGIN 15.168.192.in-addr.arpa. $GENERATE 0-255 $.0 PTR host$.unix.net.
для реверсной зоны и аналогично для прямой зоны
$ORIGIN unix.net. $GENERATE 0-255 host$ A 192.168.15.$
Рестартуем сервер:
%# rndc reload server reload successful
И проверим:
%# host 192.168.15.190 190.15.168.192.in-addr.arpa domain name pointer host190.unix.nt. %# host host190.unix.nt host190.unix.nt has address 192.168.15.190
[править] Настройка резолвера DNS
Резолвер (resolver) -- клиентская библиотека DNS, которая используется всеми программами Unix/Linux, которым нужен доступ к доменной системе имён.
Итак, прямое и обратное преобразование работает. На этом настройка DNS сервера завершена. Необходимо только указать операционной системе использовать только что сконфигурированный сервер. Делается это через файл /etc/resolv.conf:
%# cat /etc/resolv.conf search unix.nt nameserver 127.0.0.1 nameserver 10.0.35.1
[править] Клиенты DNS. Программа dig
dig — программа, предназначенная для получения информации из DNS. Пришла на смену устаревшей программе nslookup.
Пример использования команды dig:
$ dig mail.ru mx ; <<>> DiG 9.7.0 <<>> mail.ru mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4337 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 1 ;; QUESTION SECTION: ;mail.ru. IN MX ;; ANSWER SECTION: mail.ru. 3471 IN MX 10 mxs.mail.ru. ;; AUTHORITY SECTION: mail.ru. 3463 IN NS ns3.mail.ru. mail.ru. 3463 IN NS ns2.mail.ru. mail.ru. 3463 IN NS ns.mail.ru. mail.ru. 3463 IN NS ns4.mail.ru. mail.ru. 3463 IN NS ns5.mail.ru. mail.ru. 3463 IN NS ns1.mail.ru. ;; ADDITIONAL SECTION: mxs.mail.ru. 3471 IN A 94.100.176.20 ;; Query time: 3 msec ;; SERVER: 10.0.35.1#53(10.0.35.1) ;; WHEN: Sat Mar 20 16:14:30 2010 ;; MSG SIZE rcvd: 168
[править] Обратное преобразование имён
[править] DNS и DHCP: Динамическое обновление
[править] BIND в качестве DNS в AD
[править] Дополнительная информация
- BIND как DNS сервер в Active Directory
- DHCP server with Dynamic DNS
- Настройка DDNS + DHCPD
- DNS Tutorial
[править] Материалы по DNS на xgu.ru
- DNS
- DNS-spoofing
- DNS-tunneling
- Настройка DNS-сервера BIND