- Установка пакета
- Настройка службы
- Настройка BIND9 для работы с Samba AD
- Вариант простейшей настройки «Кеширующий сервер DNS»
- Вариант простой настройки «Локальный сервер DNS»
- Добавление резервного сервера
- Добавление служебных записей (SRV-записи)
- Примеры служебных записей (Kerberos и NTP)
- Запрет опроса IPv6-cерверов
- Включение аутентификации по ключам.
- Настройка клиентов
- Настройка bind9
Установка пакета
Пакет bind9 входит в стандартные дистрибутивы ОС Astra Linux. Установку службы DNS bind9 можно выполнить из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:
При установке пакета bind9 будет автоматически установлен пакет инструментов командной строки bind9utils . Из этих инструментов следует отметить:
- named-checkconf — инструмент проверки синтаксиса файлов конфигурации;
- named-checkzone — инструмент проверки файлов зон DNS;
- rndc — инструмент управления службой DNS.
В дополнение к пакетам bind9 и bind9utils , рекомендуем сразу установить пакет инструментов командной строки dnsutils , предназначенных для работы с DNS:
В составе пакета dnsutils будут установлены следующие инструменты командной строки:
- dig — инструмент для опроса DNS-серверов и проверки их реакции;
- nslookup — инструмент для проверки преобразования имен в IP-адреса (далее в тексте используется термин «разрешение имён»);
- nsupdate — инструмент для динамического обновления записей DNS.
Многие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учетную запись и группу named. Этого делать не следует, так как при установке пакета будут автоматически созданы учётная запись пользователя и группа, причем не named, как написано в устаревших материалах, а учетная запись bind и группа bind. Соответственно, сервис будет работать от имени bind:bind, а не от имени named:named, о чем следует помнить при работе с устаревшими примерами из сети Интернет.
Настройка службы
После настройки службы DNS не забудьте перенастроить службу DHCP, чтобы клиентам автоматически выдавались правильные адреса сервера (серверов) DNS.
При установке BIND9 в каталоге /etc/bind автоматически создаются следующие конфигурационные файлы:
/etc/bind/named.conf | Основной файл конфигурации. Этот файл изменять не следует, так как он содержит в себе только ссылки на остальные конфигурационные файлы (см. ниже). |
/etc/bind/named.conf.options | Файл для глобальных настроек службы |
/etc/bind/named.conf.local | Файл для настроек зоны DNS |
/etc/bind/named.conf.default-zones | Файл конфигурации зон «по умолчанию». В частности, этом файле содержатся ссылки на автоматически созданные файлы конфигурации зоны localhost /etc/bind/db.local и /etc/bind/127.db |
Подробности о конфигурационных параметрах см. в руководстве man named.conf (5).
Настройка BIND9 для работы с Samba AD
Параметры настройки BIND9 и BIND9_DLZ для использования в качестве DNS-сервера домена см. BIND9 как DNS-сервер для Samba AD
Вариант простейшей настройки «Кеширующий сервер DNS»
Если в сети уже есть настроенный и доступный DNS-сервер (собственный или сервер провайдера), то создание в локальной сети дополнительного кеширующего DNS-сервера позволит ускорить работу с Интернет за счет ускорения разрешения имен по запросам различных сетевых служб и/или пользовательскими программами.
Установленная по умолчанию служба bind9 сразу настроена на выполнение роли кеширующего сервера, однако при этом запросы будут направляться к внешним серверам, входящим в т.н. список корневых DNS-серверов, что может быть не всегда оптимальным вариантом.
Для примера предположим, что в сети уже есть настроенный сервер DNS с IP-адресом 192.168.32.1, а новый сервер DNS установлен на сервере с IP-адресом 192.168.32.100. Для перенаправления запросов на ранее настроенный сервер (и, для примера, на серверы Яндекс 77.88.8.8 и 77.88.8.1) следует:
- Внести в файл конфигурации /etc/bind/named.conf.options внутри секции options строки с указанием адресов серверов, которым нужно передавать запросы:
Проверить работоспособность и эффективность кеширующего DNS-сервера можно с помощью инструмента dig :
;; Query time: 0 msec
Вариант простой настройки «Локальный сервер DNS»
Это вариант настройки собственного полноценного DNS-сервера, обслуживающего собственную локальную сеть (собственный DNS-домен). Создание DNS-сервера в локальной сети необходимо для организации единого пространства имен для всех сетевых служб и пользователей. В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.
Для примера используем следующую конфигурацию сети:
- домен l ocalnet.example.ru;
- сервер DNS в этом домене с именем dns.localnet.example.ru и адресом 192.168.32.211;
- компьютер host в этом домене с именем host.localnet.example.ru и адресом 192.168.32.96.
Для настройки конфигурации bind:
- Файл конфигурации /etc/bind/named.conf.options использовать из предыдущего примера;
- Внести информацию о домене в файл конфигурации /etc/bind/named.conf.loca l. Исходно в этом файле содержатся только комментарии. Добавить следующие строки:
zone "localnet.example.ru" < # имя прямой зоны type master; # тип master указывает, что запросы относительно этой зоны будут обрабатываться этим сервером, и перенаправляться не будут file "/etc/bind/zones/db.localnet.example.ru"; # путь к файлу данных прямой зоны >; zone "32.168.192.in-addr.arpa" < # имя реверсивной зоны. Имя реверсивной зоны формируется из адреса сети, с обратным порядком чисел. type master; # тип master указывает, что запросы, относящиеся к этой зоне, будут обрабатываться этим сервером, и перенаправляться не будут file "/etc/bind/zones/db.32.168.192"; # подсеть 192.168.32.0/24, путь к файлу данных >;
sudo mkdir /etc/bind/zones
sudo cp /etc/bind/db.local /etc/bind/zones/db.localnet.example.ru
sudo cp /etc/bind/db.127 /etc/bind/zones/db.32.168.192
sudo chown -R bind:bind /etc/bind/zones
$TTL 604800 @ IN SOA dns.localnet.example.ru. admin.localnet.example.ru. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; name servers - NS records - определяем имена DNS-серверов IN NS dns.localnet.example.ru. ; name servers - A records - определяем адреса компьютеров, сначала сервер(ы) DNS dns.localnet.example.ru. IN A 192.168.32.211 ; 192.168.32.0/24 - A records - а потом все остальные компьютер(ы) сети host.localnet.example.ru. IN A 192.168.32.96
$TTL 604800 @ IN SOA localnet.example.ru. admin.localnet.example.ru. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; name servers IN NS dns.localnet.example.ru. ; PTR Records 211 IN PTR dns.localnet.example.ru. ; 192.168.32.211 96 IN PTR host.localnet.example.ru. ; 192.168.32.96
sudo named-checkconf
sudo named-checkzone localnet.example.ru /etc/bind/zones/db.localnet.example.ru
sudo named-checkzone 32.168.192.in-addr.arpa /etc/bind/zones/db.32.168.192
Проверить работу сервера можно выполнив на сервере команду:
Добавление резервного сервера
Как и в примере ранее, предположим, что используются:
- домен localnet.example.ru
- сервер DNS в этом домене с именем dns.localnet.example.ru и адресом 192.168.32.211
- компьютер host в этом домене с именем host.localnet.example.ru и адресом 192.168.32.96
- и добавляется резервный сервер DNS dns2.localnet.example.ru и адресом 192.168.32.212
Для добавления резервного сервера:
- на основном сервере DNS внести информацию о резервном сервере в файл конфигурации /etc/bind/named.conf.loca l и перезапустить службу. Добавляемые строки отмечены комментариями:
zone "localnet.example.ru" < type master; file "/etc/bind/zones/db.localnet.example.ru"; allow-transfer < 192.168.32.212; >; # добавлен адрес вторичного сервера >; zone "32.168.192.in-addr.arpa" < type master; file "/etc/bind/zones/db.32.168.192"; allow-transfer < 192.168.32.212; >; # добавлен адрес вторичного сервера >;
zone "localnet.example.ru" < type slave; file "slaves/db.nyc3.example.ru"; masters < 192.168.32.211; >; # адрес первого сервера >; zone "32.168.192.in-addr.arpa" < type slave; file "slaves/db.32.168.192"; masters < 192.168.32.211; >; # адрес первого сервера >;
Добавление служебных записей (SRV-записи)
Служебная запись (SRV-запись) — стандарт DNS, определяющий имя хоста и номер порта серверов для определённых служб. Определяется в RFC 2782. Могут использоваться в различных протоколах, например, в Kerberos. SRV-записи располагаются в файлах зоны (в примере выше — это файл /etc/bind/zones/db. localnet.example.ru).
_service._proto.name TTL class SRV priority weight port target
- service — символьное имя сервиса;
- proto — транспортный протокол используемый сервисом, как правило _tcp или _udp;
- name — доменное имя, для которого эта запись действует;
- TTL — стандарт DNS, время жизни;
- class- стандарт DNS, поле класса (это всегда IN);
- priority — приоритет целевого хоста, более низкое значение означает более предпочтительный;
- weight — относительный вес для записей с одинаковым приоритетом;
- port — Порт TCP или UDP, на котором работает сервис;.
- target — канонические имя машины, предоставляющей сервис.
Примеры служебных записей (Kerberos и NTP)
$ORIGIN samdom.example.ru. $TTL 1h @ IN SOA dns.samdom.example.ru. root.samdom.example.ru. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS dns.samdom.example.ru. @ IN AAAA ::1 dns.samdom.example.ru. IN A 10.0.2.254 dhcp.samdom.example.ru. IN A 10.0.2.254 kdc.samdom.example.ru. IN A 10.0.2.253 ntp.samdom.example.ru. IN A 10.0.2.253 ;kerberos _kerberos TXT "SAMDOM.EXAMPLE.RU" kerberos CNAME kdc _kerberos._udp SRV 0 0 88 kdc SRV 0 0 88 kdc SRV 0 0 88 kdc _kerberos-master._udp SRV 0 0 88 kdc _kerberos-adm._tcp SRV 0 0 749 kdc _kpasswd._udp SRV 0 0 464 kdc ;ntp server _ntp._udp IN SRV 0 100 123 ntp.samdom.example.ru.
Запрет опроса IPv6-cерверов
Для того, чтобы сервер не тратил ресурсы на попытки опроса недоступных корневых серверов, работающих по протоколу IPv6 (например, когда протокол IPv6 не поддерживается сетью), в файл локальных параметров сервера /etc/bind/named.conf.local можно добавить секцию:
Включение аутентификации по ключам.
Настройка клиентов
Клиентским компьютерам после стандартной установки ОС настройка не требуется.
Настройка bind9
Здравствуйте!
Хотелось бы поделиться своей настройкой DNS(bind9), вопрос исключительно по правильности добавления MX-записи.
1) Настраиваем /etc/bind9/named.conf.local
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "local.ru" < type master; file "/var/cache/bind/db.local.ru"; >; zone "10.168.192.in-addr.arpa" < type master; file "/var/cache/bind/22.168.192.in-addr.arpa.zone"; >;
2) Настраиваем /var/cache/bind/db.local.ru
; ; BIND data file for local.ru zone ; $TTL 604800 @ IN SOA local.ru. root.local.ru. ( 5 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv01.local.ru. @ IN MX 1 srv01.local.ru. srv01 IN A 192.168.10.2 ws01 IN A 192.168.10.3 srv IN CNAME srv01.local.ru. ws IN CNAME ws01.local.ru.
3) Настраиваем /var/cache/bind/10.168.192.in-addr.arpa.zone
; ; BIND reverse data file for local.ru zone ; $TTL 604800 @ IN SOA local.ru. root.local.ru ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv01.local.ru. 2 IN PTR srv01.local.ru. 3 IN PTR ws01.local.ru. 2 IN PTR local.ru.
Собственно вопрос в правильности добавления MX-записи для почтаря. Nslookup отрабатывает без ошибок., ping по IP и по именам идет.
Вот что выдает dig
root@srv01:~# dig mx srv01.local.ru ; > DiG 9.8.4-rpz2+rl005.12-P1 > mx srv01.local.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER