日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DNS的主从架构、子域委派、转发器

發布時間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DNS的主从架构、子域委派、转发器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了保證服務能夠穩定的進行,避免只有一臺服務器的時候發生宕機而無法提供DNS服務;所有會有DNS主從服務器架構

主從DNS服務器:(主輔)
需要注意的細節:
1.主服務器和輔助服務器都是域級別的概念;
2.必須保證主輔服務器之間的網絡通信的順暢以及時間同步;
3.為了確保所有的名稱服務器都能被識別和使用,需要在區域數據庫中為所有的名稱服務器添加NS資源記錄;
4.區域數據庫中每條NS資源記錄都必須有A記錄與之對應;
5.從服務器上可以默認將復制而來的數據庫文件保存至/var/name/slaves目錄中;
6.在主服務器上應該通過訪問控制指令允許從服務器進行區域傳送;同時從服務器要指定主服務器;

在架構之前先保證主從服務器的時間同步:
1.兩臺服務器可向網絡中的時間服務器進行同步;
示例;
~]# ntpdate cn.pool.ntp.org

2.把主服務器設置為主從架構中的時間服務器,讓從服務器同步到主服務器示例:主:~]# vim /etc/ntp.conf添加:server 127.127.1.0 iburst主:~]# systemctl start ntpd.service從:~]# ntpdate 172.16.72.1//172.16.72.1(主服務器端)

主從服務器的架構示例:
1.編輯:在主服務器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf)
zone "qhdlink.com" IN {
type master;
file "qhdlink.zone";
allow-update { none; };
allow-transfer { 172.16.69.1; };
//允許從服務器(172.16.69.1)能夠從當前服務器進行區域傳送
};

zone "16.172.in-addr.arpa" IN {type master;file "172.16.local";allow-transfer { 172.16.69.1; };//允許從服務器(172.16.69.1)能夠從當前服務器進行區域傳送};zone "188.168.192.in-addr.arpa" IN {type master;file "192.168.188.local";allow-transfer { 172.16.69.1; };//允許從服務器(172.16.69.1)能夠從當前服務器進行區域傳送};2.在主服務器(172.16.72.1)編輯各個zone(區域配置段)中的對應文件:qhdlink.zone、172.16.local、192.168.188.local1)named]# touch qhdlink.zonenamed]# chmod 640 qhdlink.zonenamed]# chgrp named qhdlink.zone:named]# vim qhdlink.zone$ORIGIN qhdlink.com.$TTL 86400@ IN SOA ns1.qhdlink.com. root.qhdlink.com. (2018040701;Serial1H;Refresh15M;Retry1W;Expire1D);Minimal TTLIN NS ns1.qhdlink.com.IN MX 10 mail.qhdlink.com.ns1 IN A 172.16.72.1mail IN A 172.16.72.1www IN A 172.16.100.100www IN A 172.16.100.101www IN A 172.16.100.102web IN CNAME wwwftp.qhdlink.com. IN CNAME web.qhdlink.com.* IN A 172.16.200.1qhdlink.com. IN A 172.16.200.2bbs IN A 192.168.100.1012)named]# touch 172.16.localnamed]# chmod 640 172.16.localnamed]# chgrp named 172.16.localnamed]# vim 172.16.local$ORIGIN 16.172.in-addr.arpa.$TTL 86400@ IN SOA ns1.qhdlink.com. root.qhdlink.com. (2018040701;1H;15M;1W;6H);IN NS ns1.qhdlink.com.1.72 IN PTR ns1.qhdlink.com.1.72 IN PTR mail.qhdlink.com.100.100 IN PTR www.qhdlink.com.101.100 IN PTR www.qhdlink.com.102.100 IN PTR www.qhdlink.com.1.200 IN PTR qhdlink.com.3)named]# cp -p 172.16.local 192.168.188.localnamed]# vim 192.168.188.local$ORIGIN 188.168.192.in-addr.arpa.$TTL 86400@ IN SOA ns1.qhdlink.com. root.qhdlink.com. (2018040701;1H;15M;1W;6H);IN NS ns1.qhdlink.com.101 IN PTR bbs.qhdlink.com.3.編輯:在從服務器(172.16.69.1)中的BIND程序的主配置文件(/etc/named.conf)options {listen-on port 53 { 127.0.0.1; 172.16.69.1; };//在啟動DNS服務時,named進程所監聽的172.16.69.1:53此套接字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 { 172.16.72.1; };//允許本服務器處理主服務器(172.16.72.1)發送來的解析查詢請求//"172.16.72.1"也可改成"any",允許允許本服務器處理所有主服務器發送來的解析查詢請求recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};zone "qhdlink.com" IN {type slave;masters { 172.16.72.1; };file "slaves/qhdlink.slave.zone";allow-transfer { none; };};zone "16.172.in-addr.arpa" IN {type slave;masters { 172.16.72.1; };file "slaves/172.16.slave.zone";allow-transfer { none; };};zone "188.168.192.in-addr.arpa" IN {type slave;masters { 172.16.72.1; };file "slaves/172.168.188.slave.zone";allow-transfer { none; };};4.檢測區域文件的語法格式.并關閉防火墻和SElinux:named]# named-checkconfnamed]# iptables -Fnamed]# setenforce 05.對主配置文件或區域數據庫文件進行修改之后,并不會立即生效;只有在重載配置文件和區域文件之后,配置才生效;重載配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推薦)4.service named reload(CentOS 6.x)注意:對于應用程序服務進程重載配置文件的操作,如果能使用reload,就使用reload,不要輕易執行restart命令;6.配置完成進行測試named]# dig @172.16.69.1 -x 192.168.188.101named]# dig @172.16.69.1 -t A www.qhdlink.comnamed]# dig @172.16.69.1 -x 172.16.100.100

心得體會:
A、B兩臺服務器都能對同一個IP/FQDN進行DNS解析
1.假如A服務器的BIND程序的主配置文件(/etc/named.conf)中的區域配置段(zone)和其對應據庫文件(XXX.zone)能夠進行DNS解析;
2.那么B服務器(B作為A的從服務器)的BIND程序的主配置文件(/etc/named.conf)中必須要有匹配的區域配置段(zone)才能進行DNS解析;
3.保證A服務器中的BIND程序的主配置文件(/etc/named.conf)的區域配置段(zone)的"allow-transfer { XXX.XXX.XXX.XXX; }" 對B服務器開啟區域傳送許可;
4.同時保證B服務器中的BIND程序的主配置文件(/etc/named.conf)的全局配置段(options)中的"listen-on port 53"監聽B服務器的地址,"allow-query"允許B(本地服務器)處理A服務器發送來的解析查詢請求

C作為客戶端能夠獲取DNS解析1.防火墻規則2.對應的服務器端的全局配置段(options)中的"allow-query"允許服務器端處理C客戶端發送來的解析查詢請求

DNS轉發器:
全局轉發:
1.定義:對于凡是不能由本服務器管理(處理)的域的請求,全部以轉發的方式由指定的服務器進行遞歸查詢;
2.配置位置:在bind的主配置文件(/etc/named.conf)的全局配置段(options)

區域轉發:1.定義:專門針對于某個特定的域的請求,如果不能給出權威答案,則轉發至指定的服務器進行遞歸查詢;2.配置位置:在bind的主配置文件(/etc/named.conf)的區域配置段(zone)轉發的方法:forward first:首先轉發,當轉發器中指定的服務器無響應時,再自行迭代查找;forward only:只使用轉發器中指定的服務器進行遞歸查詢,如果無法獲得答案,則直接返回否定答案;自身不再迭代查找;注意:1.任何形式的請求轉發,都必須依靠被指定的服務器允許自身做遞歸查詢;2.根服務器只做迭代查詢,不會為任何服務器做遞歸查詢

為什么需要DNS轉發器:
1.假設有A、B兩臺NS(名稱服務器),A為Master(主名稱服務器),B為Slave(從名稱服務器),還有一臺C客戶端
2.在A上配備解析www.test.com這個FQDN的區域配置段(zone)和區域數據庫文件(test.zone),C能夠指定A來進行DNS解析獲取得到肯定答案;
3.雖然B作為A的從服務器,但卻在B的/etc/named.conf中沒有關于www.test.com這個FQDN的區域配置段(zone),則在/var/named/slaves中沒有關于此區域數據庫文件(test.zone),可能是由于B還沒來得及從A上進行區域傳送,更新配置文件和數據庫中的內容;
4.此時若C指定B來進行DNS解析時,即使B的/etc/named.conf中的option(全局配置段)中的"allow-query"為"{ any; }"(允許B處理任何主機發送來的解析查詢請求),C客戶端也獲取不了肯定答案,B只能返回一個否定答案(dns解析不了)給C
5.為了實現服務器的高效可用性,B解析不了的時候把這個DNS解析請求傳給A去處理,這其中就可以利用DNS轉發器來實現;

給定三臺虛擬機進行測試:
A:服務器端(172.16.72.1)
B:轉發器端(172.16.69.1)
C:客戶端(172.16.69.2)

全局轉發示例:1.編輯在A服務器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf),定義qhdlink.org域named]# vim /etc/named.confzone "qhdlink.org" IN {type master;file "qhdlink.org.zone";allow-transfer { none; };};2.創建數據庫文件,修改權限并添加相應資源記錄;編輯A服務器(172.16.72.1)中主配置文件的zone(區域配置段)對應的文件:qhdlink.org.zonenamed]# touch qhdlink.org.zonenamed]# chgrp named qhdlink.org.zone named]# chmod 640 qhdlink.org.zonenamed]# vim qhdlink.org.zone$TTL 86400qhdlink.org. IN SOA ns1.qhdlink.org. root.qhdlink.org. (2018040701;1H;10M;3D;4H);IN NS ns1ns1 IN A 172.16.72.1www IN A 11.22.33.443.編輯B服務器(172.16.69.1)中主配置文件(/etc/named.conf)中的全局配置段(option)named]# vim /etc/named.confoptions {listen-on port 53 { 127.0.0.1; 172.16.72.1; 172.16.69.1; };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 { any; };recursion yes;forward first;//轉發方法forwarders { 172.16.72.1; }; //轉發給172.16.72.1dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};4.檢測區域文件和對應數據庫文件A:named]# named-checkconfnamed]# named-checkzone qhdlink.org qhdlink.org.zone zone qhdlink.org/IN: loaded serial 2018040701OKB:named]# named-checkconf5.對主配置文件或區域數據庫文件進行修改之后,并不會立即生效;只有在重載配置文件和區域文件之后,配置才生效;重載配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推薦)4.service named reload(CentOS 6.x)注意:對于應用程序服務進程重載配置文件的操作,如果能使用reload,就使用reload,不要輕易執行restart命令;6.配置完成進行測試在C客戶端上:~]# dig @172.16.72.1 -t A www.qhdlink.org~]# dig @172.16.69.1 -t A www.qhdlink.org//對比兩者結果,解析得到的答案一致,則轉發器有效在C客戶端上:~]# nslookup> set q=a> server 172.16.69.1Default server: 172.16.69.1Address: 172.16.69.1#53> www.qhdlink.org Server: 172.16.69.1Address: 172.16.69.1#53Non-authoritative answer://非權威答案,證明是通過轉發獲取得到的,則轉發器有效Name: www.qhdlink.orgAddress: 11.22.33.44全局轉發測試成功后,可以用"/*...*/"的注釋方法把定義全局轉法部分先注釋掉,避免進行區域轉發測試得到的結果的準確性和有效性;區域轉發示例:1.編輯在A服務器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf),定義qhdlink.com.cn域named]# vim /etc/named.confzone "qhdlink.com.cn" IN {type master;file "qhdlink.com.cn.zone";allow-transfer { none; };};2.創建數據庫文件,修改權限并添加相應資源記錄;編輯A服務器(172.16.72.1)中主配置文件的zone(區域配置段)對應的文件:qhdlink.com.cn.zonenamed]# touch qhdlink.com.cn.zonenamed]# chgrp named qhdlink.com.cn.zonenamed]# chmod 640 qhdlink.com.cn.zonenamed]# vim qhdlink.com.cn.zone$ORIGIN qhdlink.com.cn.$TTL 86400qhdlink.com.cn. IN SOA ns1.qhdlink.com.cn. root.qhdlink.com.cn. (2018040701;1H;10M;3D;4H);IN NS ns1ns1 IN A 172.16.72.1www IN A 1.2.3.43.編輯B服務器(172.16.69.1)中主配置文件(/etc/named.conf)中的全局配置段(option)和區域配置段(zone)named]# vim /etc/named.confoptions {listen-on port 53 { 127.0.0.1; 172.16.72.1; 172.16.69.1; };//添加監聽C客戶端(172.16.69.1)的53端口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 { any; };//允許本服務器處理任何主機發送來的解析查詢請求recursion yes;dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};zone "qhdlink.com.cn" IN {type forward;forward only;forwarders { 172.16.72.1; };};4.檢測區域文件的語法格式A:named]# named-checkconfnamed]# named-checkzone qhdlink.com.cn qhdlink.com.cn.zonezone qhdlink.com.cn/IN: loaded serial 2018040701OKB:named]# named-checkconf5.對主配置文件或區域數據庫文件進行修改之后,并不會立即生效;只有在重載配置文件和區域文件之后,配置才生效;重載配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推薦)4.service named reload(CentOS 6.x)注意:對于應用程序服務進程重載配置文件的操作,如果能使用reload,就使用reload,不要輕易執行restart命令;6.配置完成進行測試在C客戶端上:~]# dig @172.16.72.1 -t A www.qhdlink.com.cn~]# dig @172.16.69.1 -t A www.qhdlink.com.cn//對比A和B的解析結果,解析得到的答案一致則成功在C客戶端上:~]# nslookup> server 172.16.69.1Default server: 172.16.69.1Address: 172.16.69.1#53> www.qhdlink.com.cnServer: 172.16.69.1Address: 172.16.69.1#53Non-authoritative answer://非權威答案,證明是通過轉發獲取得到的,則轉發器有效Name: www.qhdlink.com.cnAddress: 1.2.3.4

子域委派授權:
將子域的管理權授權給子域中的名稱服務器;父域中不保存任何子域數據庫中資源記錄;但為了能夠成功授權,需要添加一條NS記錄,指向子域的名稱服務器;

子域委派授權與轉發器的比較:
1.子域委派授權實際上是為客戶端提供迭代查詢機制;
2.轉發器實際上是為客戶端提供遞歸查詢機制;
3.因為兩者都不是直接給客戶端返回DNS的解析結果,都是通過第三方來"輔助"完成解析,所以得到的答案都是非權威的;

給定三臺服務器進行測試:
A:服務器端(172.16.72.1)
B:轉發器端(172.16.69.1)
C:客戶端(172.16.69.2)

子域委派授權示例:
1.在A上做qhdlink.org這個域的配置,不做bj.qhdlink.org這個域的配置
named]# vim /etc/named.conf
zone "qhdlink.org" IN {
type master;
file "qhdlink.org.zone";
allow-transfer { none; };
};

named]# vim qhdlink.org.zone$TTL 86400qhdlink.org. IN SOA ns1.qhdlink.org. root.qhdlink.org. (2018040701;1H;10M;3D;4H);IN NS ns1bj.qhdlink.org. IN NS ns1.bj.qhdlink.org.ns1 IN A 172.16.72.1ns1.bj.qhdlink.org. IN A 172.16.69.1www IN A 11.22.33.442.在B上做bj.qhdlink.org這個域的配置named]# vim /etc/named.confzone "bj.qhdlink.org" IN {type master;file "bj.qhdlink.org.zone";allow-transfer { none; };};named]# named]# touch bj.qhdlink.org.zonenamed]# chgrp named bj.qhdlink.org.zone named]# chmod 640 bj.qhdlink.org.zonenamed]# vim bj.qhdlink.org.zone$ORIGIN bj.qhdlink.org.$TTL 86400@ IN SOA ns1.bj.qhdlink.org. root.bj.qhdlink.org. (2018040701;3H;30M;10D;8H);IN NS ns1ns1 IN A 172.16.72.2www IN A 55.66.77.883.檢測區域文件的語法格式A:named]# named-checkconfnamed]# named-checkzone qhdlink.org qhdlink.org.zoneB:named]# named-checkconfnamed]# named-checkzone bj.qhdlink.org bj.qhdlink.org.zone4.對主配置文件或區域數據庫文件進行修改之后,并不會立即生效;只有在重載配置文件和區域文件之后,配置才生效;重載配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推薦)4.service named reload(CentOS 6.x)注意:對于應用程序服務進程重載配置文件的操作,如果能使用reload,就使用reload,不要輕易執行restart命令;5.配置完成進行測試C:~]# dig @172.16.72.1 -t A www.bj.qhdlink.org//解析得到肯定答案,則說明測試成功

從子域授權委派示例可以看出:
1.A只配置了qhdlink.org這個域的解析內容;
2.B只配置bj.qhdlink.org這個域的解析內容;
3.但只需要在A的qhdlink.org這個域對應的數據庫中文件中添加這兩句RR:
bj.qhdlink.org. IN NS ns1.bj.qhdlink.org.
ns1.bj.qhdlink.org. IN A 172.16.69.1
4.就能把A與B聯系起來;對于C客戶端發過來的DNS解析查詢請求,雖然A在自己本地的服務器上無法給C返回DNS解析查詢信息,但可以委派給B,讓B來對C進行DNS解析服務,并把結果返回給C

轉載于:https://blog.51cto.com/weidehong/2404673

總結

以上是生活随笔為你收集整理的DNS的主从架构、子域委派、转发器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。