官术网_书友最值得收藏!

最佳實踐1:禁用權威域名服務器遞歸查詢

我們經常聽說DNS的“遞歸查詢”和“迭代查詢”,那么到底什么是“遞歸查詢”,什么是“迭代查詢”呢?

我們并不直接回答這個復雜的問題,而是先從DNS相關的重要概念開始學習。只有理解了這些概念,才能真正回答這個問題。

DNS的組成部分

DNS的組成概括來講包括以下兩個部分。

·域名服務器(Name Server)。提供域名解析服務的軟件,一般監聽UDP、TCP的53端口。例如Linux系統中常見的BIND、Windows Server中集成的DNS服務器組件等。

·解析器(Resolver)。訪問域名服務器的客戶端,它負責解析從域名服務器獲取的響應,向調用它的應用返回IP地址或者別名等信息,例如Linux系統中的gethostbyname()函數、Windows系統中的nslookup等。

域名服務器的分類

域名服務器根據用途不同,可以進行如下分類。

1.權威域名服務器(Authoritative Name Server)

負責授權域下的域名解析服務,由上級權威域名服務器使用NS記錄進行授權。

有以下3級權威域名服務器。

(1)根域名服務器(Root Name Server)

最上層權威域名服務器,負責對.com、.cn、.org等頂級域名的向下授權。目前有13組這樣的服務器,詳見表1-1。

表1-1 根域名服務器分布情況表

注意

對于表1-1中的服務器,這里指出是13組,而不是13臺,是因為其中的大部分服務器采用了anycast技術,將其分布到不同地區,也就是說,雖然看起來只有13個IP,但實際的服務器數量遠遠超過了13臺。Anycast是在大型DNS系統中廣泛使用的多點部署、分布式方案,對于提高可用性、提高性能、抵抗DDOS有重要作用。有興趣的讀者可以參考Wikipedia上anycast技術的詳細介紹:https://en.wikipedia.org/wiki/Anycast

(2)頂級域名服務器(Top Level Name Server)

頂級域名服務器有以下2類。

·通用頂級域名(Generic Top Level Domains,GTLD)服務器。例如服務于.com、.org、.info等授權的域名服務器。

·國家代碼頂級域名(Country Code Top Level Domains,CCTLD)服務器。例如服務于.uk、.cn、.jp等授權的域名服務器。

完整的頂級域名服務器列表,可以從http://www.iana.org/domains/root/db這個鏈接獲取。例如負責.cn授權的國家代碼頂級域名服務器,詳見表1-2。

表1-2 負責解析.cn的頂級域名服務器列表

(3)二級域名服務器(Second Level Name Server)

這類域名服務器,服務于具體域名解析,例如負責解析sdo.com域的域名服務器ns.uugame.com等。

以上3類權威域名服務器的授權結構可以參考圖1-1。

圖1-1 權威域名服務器的授權結構圖

2.緩存域名服務器(Caching Name Server)

這類域名服務器,負責接收解析器發過來的DNS請求,通過依次查詢根域名服務器→頂級域名服務器→二級域名服務器來獲得DNS的解析條目,然后把響應結果發送給解析器。同時根據DNS條目的TTL(Time To Live,存活時間)值進行緩存。

緩存域名服務器,有以下2個用途。

·用在企業局域網內部,作為該局域網的DNS服務器。這樣就可以避免內部用戶的主機訪問外部非授權的DNS服務器,避免DNS污染等問題。

·用于電信等運營商為其租戶提供域名解析服務。如上海電信的202.96.209.5和202.96.209.133都是此種類型的服務器。

·用于開放DNS解析服務。如Google的8.8.8.8、Norton安全DNS 199.85.126.30及國內的114.114.114.114等都是此類。

3.轉發域名服務器(Forwarding Name Server)

這類域名服務器,負責接收解析器發過來的DNS請求,轉發給指定的上級域名服務器獲得DNS的解析條目,然后把響應結果發送給解析器。和緩存域名服務器不同,這類域名服務器不進行任何的緩存,而僅僅是轉發。

遞歸查詢與迭代查詢的區別

在了解了DNS的重要概念之后,現在來研究“遞歸查詢”。

遞歸查詢可以使用圖1-2進行說明。

圖1-2 遞歸查詢架構圖

遞歸查詢,是指在圖1-2中角色為本地域名服務器上,它代替解析器,依次查詢根域名服務器→頂級域名服務器→二級域名服務器來獲得DNS的解析條目,然后把響應結果發送給解析器。

迭代查詢,是指域名服務器并不直接代替解析器進行依次查詢,而是給它返回一個參考列表,這個參考列表里面指出了可以解析這個DNS請求的服務器,由解析器再次對該列表中的服務器進行DNS查詢以獲取DNS解析結果。

禁用遞歸查詢的原因與方法

通過對遞歸查詢和迭代查詢的分析可以知道,對于權威域名服務器,打開了遞歸查詢功能,相當于把它配置成了開放的DNS服務器,會造成大量的數據流量,影響正常業務提供。因此,在權威域名服務器上,需要禁用遞歸查詢。

在BIND里面配置禁用遞歸查詢的指令如下:

recursion no;
主站蜘蛛池模板: 泰来县| 静海县| 仙居县| 五台县| 宁陵县| 河北区| 舒城县| 揭东县| 汉川市| 买车| 崇州市| 美姑县| 建水县| 伽师县| 阿坝县| 普兰县| 苗栗市| 屏东县| 特克斯县| 阿城市| 依安县| 安丘市| 新建县| 乌苏市| 酉阳| 修文县| 龙岩市| 锡林郭勒盟| 长乐市| 哈巴河县| 南溪县| 绍兴县| 湖州市| 楚雄市| 灵石县| 若尔盖县| 土默特左旗| 东丽区| 禹州市| 基隆市| 宁波市|