Свой DNS сервер на Centos 7

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

Добавить комментарий