Всё что будет написано ниже, 100% работает на Debian 7.3.
Исходные данные
192.168.100.1 — внутренний IP
mydrafts.local — «локальный» домен
server — имя данного сервера
Установим:
[root@server~] # apt-get install bind9 |
Настройки: файл /etc/bind/named.conf.options
[root@server ~] # cat /etc/bind/named.conf.options
acl mydraftsnet {192.168.100.0/24; 127.0.0.1; }; options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { none; }; allow-query { mydraftsnet; }; }; acl mydraftsnet {192.168.100.0/24; 127.0.0.1; }; — только подсеть 192.168.100.0/24 сможет запрашивать зоны с этого сервера. |
Настройки: файл /etc/bind/named.conf.local
zone "mydrafts.local" { type master; file "/etc/bind/db.mydrafts.local"; }; zone "100.168.192.in-addr.arpa" { type master; file "/etc/bind/100.168.192.in-addr.arpa.zone"; }; |
Файл /etc/bind/db.mydrafts.local
[root@server1 ~] # cat /etc/bind/db.mydrafts.local
$TTL 30 $ORIGIN mydrafts.local. @ IN SOA dns.mydrafts.local. admin.mydrafts.local. ( 2014012101 ;Serial 1d ;Refresh 1h ;Retry 1w ;Expire 2h ) ;Negative Cache TTL ; @ IN NS dns.mydrafts.local. @ IN A 192.168.100.1 dns IN A 192.168.100.1 ics IN A 192.168.100.1 ntp IN CNAME ics dhcp IN CNAME ics |
Где:
$ORIGIN — оригинальное имя зоны
dns.mydrafts.local. — имя днс-сервера (обязательна точка в конце).
admin.mydrafts.local. — email администратора сервера, только вместо символа @ используется точка.
Serial — серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2014012101.
Refresh — период времени с которым вторичный сервер днс обращается к основному.
Retry — период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire — максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL — время актуальности данных в кэше запросов.
Далее идут записи имён хостов с ip-адресами или псевдонимами.
В конце этого файла нужно обязательно оставить пустую строку!
Настройки: файл зоны обратного просмотра /etc/bind/100.168.192.in-addr.arpa.zone
[root@server1 ~] # cat /etc/bind/100.168.192.in-addr.arpa.zone
$TTL 30 $ORIGIN 100.168.192.in-addr.arpa. @ IN SOA dns.mydrafts.local. admin.mydrafts.local. ( 2014012101 ;Serial 1d ;Refresh 1h ;Retry 1w ;Expire 2h) ;Negative Cache TTL ; NS dns.mydrafts.local. 1 PTR dns.mydrafts.local. 1 PTR ics.mydrafts.local. |
В этом файле должны быть только записи типа PTR, никаких IN тут быть не должно. И в конце этого файла так же должна быть пустая строка.
Перегружаем DNS-сервер:
[root@server1 ~] # rndc reload server reload successful |
Проверим файлы зон на наличие ошибок:
[root@server1 ~] # named-checkconf -z zone mydrafts.local/IN: loaded serial 2014012101 zone 100.168.192.in-addr.arpa/IN: loaded serial 2014012101 zone localhost/IN: loaded serial 2 zone 127.in-addr.arpa/IN: loaded serial 1 zone 0.in-addr.arpa/IN: loaded serial 1 zone 255.in-addr.arpa/IN: loaded serial 1 |
Настройки «сам с себя»
[root@server1 ~] # nano /etc/resolv.conf search mydrafts.local domain mydrafts.local nameserver 127.0.0.1 |
Тестирование. Зона прямого просмотра:
[root@server1 ~] # nslookup ics.mydrafts.local Server: 127.0.0.1 Address: 127.0.0.1#53 Name: ics.mydrafts.local Address: 192.168.100.1 |
Тестирование. Зона обратного просмотра:
[root@server1 ~] # nslookup 192.168.100.1 Server: 127.0.0.1 Address: 127.0.0.1#53 1.100.168.192.in-addr.arpa name = ics.mydrafts.local. 1.100.168.192.in-addr.arpa name = dns.mydrafts.local. |
Если ошибок нет, значит установка и настройка завершены удачно.