DNS (Система доменных имен) представляет собой распределенную структуру, предназначенную для преобразования доменных имен в IP-адреса и обратно. Например, когда вы вводите доменное имя в адресной строке браузера, как «https://tecadmin.net», ваш компьютер отправляет запрос к DNS и получает IP-адрес для этого домена.
В данной статье вы узнаете, как пошагово настроить DNS-сервер на системах CentOS и RedHat.
Сетевой сценарий:
- IP-адрес DNS-сервера: 192.168.1.254
- Имена DNS-серверов: ns1.tecadmin.net, ns2.tecadmin.net
- Доменное имя: demotecadmin.net
- IP-адрес домена: 192.168.1.100
Для начала убедитесь, что у вас установлен пакет BIND. Вы можете установить его с помощью команды:
yum install bind bind-utils
После установки необходимо настроить конфигурационный файл BIND, который обычно находится по пути /etc/named.conf. Добавьте следующие строки в файл:
options {
listen-on port 53 { any; };
listen-on-v6 { none; };
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; };
recursion no;
};
Далее создайте зону для вашего домена. В том же файле /etc/named.conf добавьте следующие строки:
zone "demotecadmin.net" IN {
type master;
file "demotecadmin.net.db";
};
Теперь создайте файл зоны demotecadmin.net.db в каталоге /var/named/. Пример содержимого файла:
$TTL 86400
@ IN SOA ns1.tecadim.net. admin.demotecadmin.net. (
2023110101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.tecadim.net.
@ IN NS ns2.tecadim.net.
@ IN A 192.168.1.100
ns1 IN A 192.168.1.254
ns2 IN A 192.168.1.255
После этого проверьте синтаксис конфигур
Содержание статьи
Установка пакетов Bind
Пакеты Bind доступны в стандартных репозиториях yum. Для их установки выполните следующую команду.
# yum install bind bind-chroot
После установки необходимо настроить конфигурационные файлы. Основной файл конфигурации находится по адресу /etc/named.conf. Рекомендуется создать резервную копию перед внесением изменений.
Для проверки статуса сервиса используйте команду:
# systemctl status named
Чтобы запустить сервис, выполните:
# systemctl start named
Также стоит добавить его в автозагрузку:
# systemctl enable named
Обратите внимание, что для корректной работы DNS-сервера необходимо настроить файрвол и разрешить доступ к необходимым портам (обычно 53). Для этого можно использовать команды:
# firewall-cmd --add-service=dns --permanent
# firewall-cmd --reload
Не забудьте перезапустить службу Bind после внесения изменений в конфигурацию:
# systemctl restart named
Редактирование основного файла конфигурации
Основной файл конфигурации Bind обычно располагается в директории /etc. Однако в окружении chroot он находится в /var/named/chroot/etc. Отредактируйте основной файл конфигурации, обновив его содержимое, как указано ниже.
# vim /var/named/chroot/etc/named.conf
Содержимое для файла named.conf
// /var/named/chroot/etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.168.1.0/24; 0.0.0.0/0; };
listen-on-v6 port 53 { ::1; };
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 { localhost; 192.168.1.0/24; 0.0.0.0/0; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto; /* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "demotecadmin.net" IN {
type master;
file "/var/named/demotecadmin.net.db";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Не забудьте проверить синтаксис файла конфигурации после редактирования. Это можно сделать с помощью команды:
# named-checkconf /var/named/chroot/etc/named.conf
Также рекомендуется создать резервную копию оригинального файла конфигурации перед внесением изменений. Это можно сделать с помощью команды:
# cp /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.bak
После редактирования файла не забудьте перезапустить службу Bind, чтобы изменения вступили в силу:
# systemctl restart named
Для повышения безопасности сервера DNS рекомендуется ограничить доступ к нему только необходимым IP-адресам и использовать механизмы аутентификации, такие как TSIG (Transaction Signature). Также можно настроить уведомления о возможных проблемах через систему логирования. Убедитесь, что используете актуальные версии программного обеспечения и регулярно проверяйте обновления для устранения уязвимостей.
Кроме того, рассмотрите возможность внедрения мониторинга производительности и доступности вашего DNS-сервера, чтобы своевременно выявлять проблемы и реагировать на них.
Создание файла зоны для вашего домена
После настройки основного файла конфигурации создайте файл зоны для вашего домена, например, demotecadmin.net.db, как указано в этой статье.
# vim /var/named/chroot/var/named/demotecadmin.net.db
Содержимое для файла зоны
; Zone file for demotecadmin.net
$TTL 14400
@ 86400 IN SOA ns1.tecadmin.net. webmaster.tecadmin.net. (
3013040200 ; serial, todays date
86400 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ; minimum, seconds
)
demotecadmin.net. 86400 IN NS ns1.tecadmin.net.
demotecadmin.net. 86400 IN NS ns2.tecadmin.net.
demotecadmin.net. IN A 192.168.1.100
demotecadmin.net. IN MX 0 mail.demotecadmin.net.
mail IN CNAME demotecadmin.net.
www IN CNAME demotecadmin.net.
Если у вас несколько доменов, вам нужно создать отдельные файлы зон для каждого из них.
Не забудьте перезагрузить DNS-сервер после внесения изменений в файл зоны. Это можно сделать с помощью команды:
# rndc reload
Также рекомендуется проверять синтаксис вашего файла зоны с помощью утилиты named-checkzone перед перезагрузкой. Например:
# named-checkzone demotecadmin.net /var/named/chroot/var/named/demotecadmin.net.db
Это поможет избежать возможных ошибок, которые могут привести к сбоям в работе DNS.
Кроме того, убедитесь, что у вас правильно настроены записи для других сервисов, таких как SPF и DKIM, если вы используете почтовые серверы. Это поможет повысить безопасность и доставляемость вашей почты.
Добавление дополнительных доменов
Чтобы добавить новые домены в DNS, создайте индивидуальные файлы зон для каждого домена, как описано выше. Затем добавьте соответствующие записи для всех зон в named.conf, заменив demotecadmin.net на ваше доменное имя.
zone "demotecadmin.net" IN { type master; file "/var/named/demotecadmin.net.db"; };
Не забудьте правильно настроить записи DNS для новых доменов, включая A-записи для указания IP-адресов серверов, MX-записи для почтовых серверов и любые другие необходимые записи, такие как CNAME и TXT. Проверьте синтаксис конфигурационного файла с помощью команды named-checkconf перед перезагрузкой сервиса, чтобы избежать ошибок. После внесения изменений перезагрузите DNS-сервер с помощью команды systemctl restart named.
Также рекомендуется использовать инструменты для проверки DNS, такие как dig или nslookup, чтобы убедиться, что ваши записи корректны и обновления вступили в силу.
Дополнительно, чтобы упростить управление доменами, вы можете использовать автоматизированные скрипты для создания файлов зон и добавления записей в конфигурационный файл. Это особенно полезно, если вы планируете добавлять большое количество доменов. Также стоит рассмотреть использование управления через интерфейсы API, если ваша DNS-платформа это поддерживает.
Помните, что изменения в DNS могут занять некоторое время для распространения по всем серверам, поэтому будьте терпеливы и периодически проверяйте статус ваших доменов. Если у вас возникают проблемы, проверьте журналы ошибок DNS-сервера, чтобы получить больше информации о возможных причинах.
Запуск службы Bind
Для запуска именованной (привязанной) службы воспользуйтесь следующей командой.
# service named restart
Активируйте автоматический запуск службы при загрузке системы.
# chkconfig named on
Отправьте запрос непосредственно на ваш DNS-сервер, используя следующую команду. Синтаксис: nslookup
# nslookup demotecadmin.net 192.168.1.254
В результате выполнения команды вы увидите информацию о сервере:
Server: 192.168.1.254 Address: 192.168.1.254#53
После этого вы получите результат разрешения доменного имени:
Name: demotecadmin.net Address: 192.168.1.100
Результат выше указывает на то, что DNS-сервер успешно разрешил доменное имя demotecadmin.net.
Если вы столкнулись с проблемами при разрешении имен, проверьте конфигурацию вашего DNS-сервера в файле /etc/named.conf и убедитесь, что он правильно настроен.
Также вы можете использовать команду # dig demotecadmin.net @192.168.1.254 для получения более подробной информации о процессе разрешения доменного имени.
Мониторинг и диагностика работы DNS сервера
Логи представляют собой основное средство для анализа активности. Они содержат информацию о запросах, ответах и любых ошибках, которые могут возникнуть в процессе работы. Регулярный просмотр этих файлов помогает выявить аномалии и определить причины сбоев.
Для тестирования системы можно использовать утилиты, такие как dig и nslookup, которые позволяют выполнять запросы к механизмам и получать данные о разрешении имен. Эти инструменты помогают не только проверить доступность ресурсов, но и диагностировать возможные проблемы с конфигурацией.
Существует множество инструментов для мониторинга, таких как Nagios или Zabbix, которые могут отслеживать состояние службы в реальном времени. Они обеспечивают уведомления при возникновении ошибок и позволяют собирать статистику, что упрощает выявление тенденций и проблем.
Наконец, стоит обратить внимание на производительность. Анализ времени отклика и нагрузок на систему помогает оптимизировать её работу, что в свою очередь улучшает качество обслуживания запросов. Использование всех этих методов в комплексе обеспечивает надежность и высокую доступность системы разрешения имен.

