DNS — сервис, который позволяет получить адреса сервисов по их доменным именам и наоборот, так же получить информацию о маршрутизации почты и прочее. По простому — DNS связывает IP и доменное имя, что бы человеку не приходилось запоминать сложные IP, а вместо этого использовать удобные доменные имена.
Рассмотрим пример реализации такого сервиса и настроим один тестовый домен.
Установим необходимый пакет
# yum -y install bind
Для того что бы BIND слушал и отвечал на всех интерфейсах поправим /etc/named.conf до такого состояния
options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; # Если планируете использовать IPv6 directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; ...
А в его конец добавим следующие строки
zone "test.com" IN { type master; file "/etc/named/test.com.zone"; allow-update { none; }; };
В конце конфигурационного файла обязательно должна присутствовать пустая строка.
Теперь настраиваем зону.
# vim /etc/named/test.com.zone $TTL 86400 @ IN SOA ns1.test.com. ns2.test.com. ( 2017011301 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) IN NS ns1.test.com. IN NS ns2.test.com. IN MX 10 mail.test.com. @ IN A 100.200.100.229 ns1 IN A 100.200.100.229 ns2 IN A 100.200.100.229 mail IN A 100.200.100.229 www IN A 100.200.100.229
Можно проверить конфиг на наличие ошибок стандартными средствами
# named-checkconf /etc/named.conf
Если вывод пустой, то значит ошибок нету
Так же можно проверить настройки зоны
# named-checkzone test.com /etc/named/test.com.zone zone test.com/IN: loaded serial 2017012001 OK
Запускаем сервис, предварительно добавив его в автозагрузку
# systemctl enable named # systemctl start named
Теперь нужно проверить работает ли сервис и отдаёт ли он необходимые ответы
Для этого можно с другого Linux хоста дать парочку запросов. Будем использовать утилиту dig
# dig @100.200.100.229 -t A +short www.test.com 100.200.100.229 # dig @100.200.100.229 -t MX +short test.com 10 mail.test.com.
В первом случае мы отправляем запрос на 100.200.100.229 и спрашиваем А-запись для доменного имени www.test.com.
Во втором запрашиваем там же MX запись.
Как видим, сервер корректно отвечает на запросы. Теперь можно в качестве основного NS-сервера указать наш IP и полноценно использовать домен.