Как настроить Slave DNS-сервер BIND в Ubuntu 20.04
В предыдущем посте мы рассказали, как настроить первичный DNS-сервер с помощью BIND9 . Мы будем изучать, как настроить вторичный DNS-сервер. Подчиненный DNS-сервер получает копию данных с основного DNS-сервера с использованием метода зонной передачи. Этот метод сохраняет данные зоны в кэше в течение определенного времени и использует их для обслуживания DNS-запросов.
В нашей настройке у нас есть первичный DNS-сервер с IP-адресом 172.16.10.2
и доменным именем ns1.infoit.local
.
Мы настраиваем вторичный сервер с 172.16.10.10
и ns2.infoit.local
.
Конфигурация на Bind Master DNS
Для настройки Master-Slave нам необходимо настроить главный DNS-сервер и включить передачу зоны на вторичный сервер имен.
Мы будем редактировать /etc/named.conf.local
файл на первичном сервере (ns1.infoit.local)
и добавить allow-transfer
и also-notify
параметры.
sudo vim /etc/bind/named.conf.local
Это будет сделано как для прямого, так и для обратного ввода.
##Forward zone
zone "infoit.local" IN { // Domain name
type master; // Primary DNS
file "/etc/bind/forward.infoit.local.db"; // Forward lookup file
allow-update { none; }; // Since this is the primary DNS, it should be none.
allow-transfer { 172.16.10.10; }; //Allow Transfer of zone from the master server
also-notify { 172.16.10.10; }; //Notify slave for zone changes
};
##Reverse zone
zone "10.16.172.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order
type master; // Primary DNS
file "/etc/bind/reverse.infoit.local.db"; //Reverse lookup file
allow-update { none; }; //Since this is the primary DNS, it should be none.
allow-transfer { 172.16.10.10; }; //Allow Transfer of zone from the master server
also-notify { 172.16.10.10; }; //Notify slave for zone changes
};
allow-transfer
Параметр позволяет передавать файлы зоны от ведущего к ведомому DNS в то время как also-notify
помогает предупредить подчиненный , когда есть обновление файлов зона от мастера.
Мы должны перезапустить службу DNS на ns1.infoit.local:
sudo systemctl restart bind9
Настройте подчиненный DNS
Установите необходимые пакеты:
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Отредактируйте файл в /etc/bind/ named.conf.local и добавьте параметры прямой и обратной зоны:
sudo vi /etc/bind/named.conf.local
###Forward Zone
zone "infoit.local" IN { //Domain name
type slave; //Secondary Slave DNS
file "/var/cache/bind/forward.infoit.local.db"; //Forward Zone Cache file
masters { 172.16.10.2; }; //Master Server IP
};
####Reverse zone
zone "10.16.172.in-addr.arpa" IN { //Reverse lookup name. Should match your network in reverse order
type slave; // Secondary/Slave DNS
file "/var/cache/bind/reverse.infoit.local.db"; //Reverse Zone Cache file
masters { 172.16.10.2; }; //Master Server IP
};
Перезапустите службу DNS:
sudo systemctl restart bind9
Тестовый ведомый DNS
Чтобы проверить, была ли передача зоны успешной и DNS работает на подчиненном сервере, нам нужно настроить клиентский хост и использовать подчиненный сервер в качестве своего DNS-сервера.
В Ubuntu:
sudo echo "nameserver 172.16.10.10" >> /etc/resolv.conf
Затем мы можем использовать dig
команду для проверки DNS.
[email protected]:~# dig www.infoit.local
; <<>> DiG 9.16.1-Ubuntu <<>> www.infoit.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: b1e287dd1d118ad6010000005f8c88233ef562a7063e7a15 (good)
;; QUESTION SECTION:
;www.infoit.local. IN A
;; ANSWER SECTION:
www.infoit.local. 604800 IN A 172.16.10.3
;; Query time: 0 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Sun Oct 18 18:23:31 UTC 2020
;; MSG SIZE rcvd: 100
Вы можете использовать, dig domain-name @<nameserver>
если хотите явно направить запрос на подчиненный DNS.
dig www.infoit.local @172.16.10.10
езультат показывает, что подчиненный DNS может обрабатывать запросы. Это подразумевает, что настройка DNS «главный-подчиненный» работает должным образом.
Вывод
Вы успешно настроили подчиненный DNS-сервер в Ubuntu 20.04 с помощью BIND9. Поделитесь своим мнением в комментариях.