前面我轉(zhuǎn)的阮一峰寫的DNS 原理入門很好的介紹了DNS相關(guān)知識。
本文補充了這篇文章還沒有介紹的地方,或者是介紹的不是很詳細的地方,算是對DNS的一篇查缺補漏。
DNS規(guī)范
ISC網(wǎng)站列出了所有和DNS相關(guān)的RFC規(guī)范: DNS RFC 。
有些規(guī)范可能已經(jīng)被棄用了,比較常用的是下面兩個規(guī)范:
RFC 1034 Domain Names – Concepts and Facilities
RFC 1035
ipv6
RFC 3096 定義了DNS對 IPV6 的支持。
使用 AAAA 記錄類型作為IPV6的地址類型。
DNS根服務(wù)器
根域名服務(wù)器是互聯(lián)網(wǎng)域名解析系統(tǒng)(DNS)中最高級別的域名服務(wù)器,負責(zé)返回頂級域名的權(quán)威域名服務(wù)器的地址。截至2014年10月,全球有504臺根服務(wù)器,被編號為A到M共13個標號。
大部分借由任播( Anycast )技術(shù),編號相同的根服務(wù)器使用同一個IP,504臺根服務(wù)器總共只使用13個IP,因此可以抵抗針對其所進行的分布式拒絕服務(wù)攻擊(DDoS)。
中國大陸在北京有三臺編號為L的鏡像,編號為F、I、J的鏡像各一臺,共6臺;香港有編號為D、J的鏡像各2臺,編號為A、F、I、L的鏡像各一臺,共8臺;臺灣則有編號為F、I、J各一臺,共3臺。
所以雖然編號和IP地址相同,但是服務(wù)器確可能有多臺。下面是這些服務(wù)器和地址的列表:
HostnameIP AddressesManagera.root-servers.net198.41.0.4, 2001:503:ba3e::2:30VeriSign, Inc.b.root-servers.net192.228.79.201, 2001:500:84::bUniversity of Southern California (ISI)c.root-servers.net192.33.4.12, 2001:500:2::cCogent Communicationsd.root-servers.net199.7.91.13, 2001:500:2d::dUniversity of Marylande.root-servers.net192.203.230.10, 2001:500:a8::eNASA (Ames Research Center)f.root-servers.net192.5.5.241, 2001:500:2f::fInternet Systems Consortium, Inc.g.root-servers.net192.112.36.4US Department of Defense (NIC)h.root-servers.net198.97.190.53, 2001:500:1::53US Army (Research Lab)i.root-servers.net192.36.148.17, 2001:7fe::53Netnodj.root-servers.net192.58.128.30, 2001:503:c27::2:30VeriSign, Inc.k.root-servers.net193.0.14.129, 2001:7fd::1RIPE NCCl.root-servers.net199.7.83.42, 2001:500:9f::42ICANNm.root-servers.net202.12.27.33, 2001:dc3::35WIDE Project值的注意的是,在中國的只是根服務(wù)器的鏡像,而不是根服務(wù)器的管理者。
任播Anycasting最初是在RFC1546中提出并定義的,它的最初語義是,在IP網(wǎng)絡(luò)上通過一個Anycast地址標識一組提供特定服務(wù)的主機,同時服務(wù)訪問方并不關(guān)心提供服務(wù)的具體是哪一臺主機(比如DNS或者鏡像服務(wù)),訪問該地址的報文可以被IP網(wǎng)絡(luò)路由到這一組目標中的任何一臺主機上,它提供的是一種無狀態(tài)的、盡力而為的服務(wù)。
權(quán)威DNS
權(quán)威DNS是經(jīng)過上一級授權(quán)對域名進行解析的服務(wù)器,同時它可以把解析授權(quán)轉(zhuǎn)授給其他人,如 COM 頂級服務(wù)器可以授權(quán) xxorg.com 這個域名的的權(quán)威服務(wù)器為 NS.ABC.COM ,同時 NS.ABC.COM 還可以把授權(quán)轉(zhuǎn)授給 NS.DDD.COM ,這樣 NS.DDD.COM 就成了 ABC.COM 實際上的權(quán)威服務(wù)器了。平時我們解析域名的結(jié)果都源自權(quán)威DNS。比如 xxorg.com 的權(quán)威DNS服務(wù)器就是dnspod的 F1G1NS1.DNSPOD.NET 和 F1G1NS2.DNSPOD.NET 。
從字面意思也可以看出,權(quán)威就是該域名及下級域名的“說了算”的服務(wù)器;在權(quán)威上可以設(shè)置,修改,刪除該區(qū)域內(nèi)的解析記錄, 而非權(quán)威DNS只能是查詢。
Local DNS
Local DNS 也是和我們?nèi)粘I暇W(wǎng)接觸最多的DNS包括你的服務(wù)提供商(ISP)分配給你的DNS(一般為兩個),或者接下來講到的公共DNS。又因為填寫在你的本地電腦上,所以也稱為Local DNS。
公共DNS
我們都知道,我們要能上網(wǎng),就必須要使用DNS。這個DNS可能是你的運營商提供給你的,也可以是一些其它組織提供的,比如我們熟知的谷歌的8.8.8.8,國內(nèi)114dns的114.114.114.114. 。他們負責(zé)給我們的請求提供解析服務(wù)。
不過首先要明白,公共DNS不是:
不是根服務(wù)器
不是權(quán)威dns托管商,不提供域名注冊等服務(wù),比如萬網(wǎng)和DNSpod
不是權(quán)威dns,不針對個別域名進行解析
公共DNS服務(wù)的特點就是服務(wù)的域名數(shù)量巨大,用戶數(shù)多,同時要求具有安全性和抗攻擊性,低延遲(響應(yīng)快),無攔截(無廣告)以及對解析成功率要求非常的高。
遞歸DNS
就是local dns。遞歸DNS可以理解為是一種功能復(fù)雜些的resolver,其核心功能一個是緩存、一個是遞歸查詢。收到域名查詢請求后其首先看本地緩存是否有記錄,如果沒有則一級一級的查詢根、頂級域、二級域……直到獲取到結(jié)果然后返回給用戶。日常上網(wǎng)中運營商分配的DNSNS如 8.8.8.8 即這里所說的遞歸DNS。