如何在Ubuntu 20.04上配置從屬BIND DNS服務器

在上一篇文章中,我向您展示了如何使用BIND 9設置主DNS服務器。考慮如何設置輔助DNS服務器。從DNS服務器使用區域轉發方法從主DNS獲取數據的副本。此方法將區域數據在緩存中保留特定的時間,然後使用它來處理DNS查詢。

在我們的設置中,我們有一個主DNS服務器,其IP為 172.16.10.2 域名是 ns1.computingforgeeks.local..

設置輔助服務器 172.16.10.10 ns2.computingforgeeks.local..

綁定主DNS配置

主從設置要求將主DNS服務器配置為啟用區域轉發到輔助名稱服務器。

編輯 /etc/named.conf.local 主服務器上的文件 (ns1.computingforgeeks.local) allow-transferalso-notify 參數。

sudo vim /etc/bind/named.conf.local

對於正向和反向條目都可以執行此操作。

##Forward zone
zone "computingforgeeks.local" IN { // Domain name
    
      type master; // Primary DNS

     file "/etc/bind/forward.computingforgeeks.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.computingforgeeks.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傳輸到從DNS。 also-notify 每當區域文件由主服務器更新時,用於通知從屬服務器很有用。

您需要在ns1.computingforgeeks.local上重新啟動DNS服務。

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 "computingforgeeks.local" IN { //Domain name

     type slave; //Secondary Slave DNS

     file "/var/cache/bind/forward.computingforgeeks.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.computingforgeeks.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.computingforgeeks.local

; <<>> DiG 9.16.1-Ubuntu <<>> www.computingforgeeks.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.computingforgeeks.local.	IN	A

;; ANSWER SECTION:
www.computingforgeeks.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.computingforgeeks.local @172.16.10.10

結果表明,從DNS可以處理查詢。這意味着主從DNS設置可以按需工作。

結論

現在,您已經使用BIND9在Ubuntu 20.04上成功設置了從DNS服務器。在評論部分分享您的反饋。

其他指南:

使用MariaDB和PowerDNS-Admin在CentOS 8上安裝PowerDNS

如何在Windows Server 2019中添加DNS前向查找區域

如何使用Prometheus和Grafana監視BIND DNS服務器

Sidebar