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 и полноценно использовать домен.