DNS-сервер
BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) — открытая и наиболее распространённая реализация DNS-сервера, обеспечивающая выполнение преобразования DNS-имени в IP-адрес и наоборот. BIND поддерживается организацией Internet Systems Consortium. 10 из 13 корневых серверов DNS работают на BIND, оставшиеся 3 работают на NSD.
Скопипастил здесь
Исходные данные
192.168.100.1 — внутренний IP
mydrafts.local — «локальный» домен
server1 — имя данного сервера
Установим:
[root@server1 ~] # apt-get install bind9 Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Будут установлены следующие дополнительные пакеты: bind9utils Предлагаемые пакеты: bind9-doc resolvconf ufw НОВЫЕ пакеты, которые будут установлены: bind9 bind9utils обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Необходимо скачать 499 kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 1 291 kB. Хотите продолжить [Д/н]? ... ... ... [ ok ] Starting domain name service...: bind9. [root@server1 ~] #Настройки: файл /etc/bind/named.conf.options
[root@server1 ~] # 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.Если ошибок нет, значит установка и настройка завершены удачно.
[…] — имя данного сервера на server1 также установлены: DNS-сервер, TFTP, HTTP, NTP […]
[…] 192.168.100.1 — IP «TFTPd» — сервера (он же сервер HTTP, DHCP, DNS, NTP) 192.168.100.X/24 — IP клиента # 08:00:27:80:e9:99 VB intnet — […]
У меня возникла проблема, не может определить ICS после nslookup ics.mydrafts.local
пишет, что сервер не может его найти
Маским, сорри за задержку с ответом.
Покажи вывод
nslookup ics.mydrafts.local
Здравствуйте!
Настроил у себя на шлюзе (debian7) bind как dns для локальной сети. На самом сервере на запросы nslookup отвечает правильно как для имён локальной сети так и для имён из интернета.
А клиенты windows на запросы nslookup для адресов локальной сети получают
«DNS request timed out.
timeout was 2 seconds.
*** Can’t find server name for address [ip сервера dns]: Timed out»
53 порт на файрволе шлюза открыт.
В чём причина не могу понять.
выполните ipconfig /all на клиенте windows и покажите вывод
я бы добавил в named.conf.options
// Listen on local interfaces only(IPV4)
listen-on-v6 { none; };
listen-on { 127.0.0.1; 192.168.0.1; };
// Do not transfer the zone information to the secondary DNS
allow-transfer { none; };
// Accept requests for internal network only
allow-query { internals; };
// Allow recursive queries to the local hosts
allow-recursion { internals; };
// Do not make public version of BIND
version none;
что бы убрать в лог файле спам типа:
named error (network unreachable) resolving siteipv6/A/IN 2001:678:15:0:193:232:142:17#53
named error (network unreachable) resolving siteipv6/DS/IN 2001:678:18:0:194:190:124:17#53
named error (network unreachable) resolving siteipv6/DS/IN 2001:678:14:0:193:232:156:17#53
named error (network unreachable) resolving siteipv6/DS/IN 2001:678:17:0:193:232:128:6#53
named error (network unreachable) resolving siteipv6/DS/IN 2001:678:16:0:194:85:252:62#53
нужно добавить в /etc/default/bind9 -4
# startup options for the server
OPTIONS=»-u bind -n 2 -4″
а -n 2 -включит многопроцесорность, в частности 2 ядра
Я так понимаю, физически на одной машине вы держите разных сервера, а DHCP у вас раздает роутер.
не совсем понял вопрос.
dhcp, в данном случае тоже на виртуальной машине, на этой же виртуальной машине (server1.mydrafts.local)
на server1 также установлены: DHCP, TFTP, HTTP, NTP
Все вроде работает, как у вас, но только после перезагрузки файл /etc/resolve.conf перезаписывается.
рад был помочь.
Вадим, а какой у Вас Linux?
В принципе, универсальный костыль:
для запрета перезаписи: chattr +i /etc/resolv.conf
для снятия запрета: shattr -i /etc/resolv.conf
от root либо sudo из под пользователя
Но «костыль» — это не решение!