DNS(Domain Name System)
原文見我的Github,歡迎批評指正,共同進步
這篇文章屬於DNS筆記系列,但是不會介紹最基本的DNS知識,較偏向DNS細節和進階,但是會包含基礎的DNS原理,新手可以閱讀,但可能會有一些困難,希望本文能帶給大家些許幫助.
1. Root DNS Server
根DNS服務器屬於DNS系統中最重要的基礎設施,負責最基本的解析工作,根DNS服務器全球有13臺,以A~M字母命令,爲方便管理,其域名格式爲字母.root-servers.net
,中國地區沒有根DNS服務器,大部分根DNS服務器在美國,亞洲唯一的一臺根DNS服務器在日本,東京
,由WIDE Project
進行管理,全球的root-server
分佈情況見 IANA,所有的根DNS服務器都是以維護一份根域文件(Root Zone file,文件命名爲root.zone)來返回頂級域名對應的權威服務器(包括通用頂級域和國家頂級域,很多大型公司都有自己的TLD,比如IBM等),這份根域文件文件大小爲2MB
左右,截至到2020年2月4日,共記錄有1516個頂級域(數據來自 IANA),沒有被收錄的頂級域不會參與DNS解析過程.
2. Root DNS 鏡像
爲了分擔全球DNS解析的壓力,提供更快的服務,現在通過任播技術架設DNS鏡像服務器來分擔全世界的DNS解析服務,所以現在實時運行的Root DNS Server
數量遠遠大於13臺,截至2020年2月5日,全球共有1039臺Root DNS Server在爲全世界的DNS解析提供服務.
來說說中國的Root DNS Server
,截止時間2020年2月5日在 IANA 官網所展示的中國包含的Root DNS Server鏡像
有L, K, J, F, I, E, A, H
這八種,主要分佈在北京市(5,J,F,K,L,I),香港(9,I,A,J,H,(3,F),(2,E))和臺北市(6,E,I,L,K,(2,F)),其中杭州(1,F),上海(1,I),武漢(1,L),鄭州(1,L),貴陽(1,K)和西寧市(1,L).
圖中最下面的數字16包含了越南首都河內(Hanoi)的一臺根DNS鏡像服務器,所以數量應爲15,目前中國的 Root DNS Mirror Server
數量應該爲26臺.
之前因爲中國大陸境內多次的DNS污染影響到了外網,所以中國大陸境內的Root DNS Server
曾經被關停一段時間,不過目前現在中國大陸境內仍有F、I、J、L
這4個根域的6臺DNS鏡像(L
有三臺鏡像)在提供服務.
3. 任播 anycast
根DNS鏡像採用任播技術實現了對全球13臺根DNS服務器的擴充,什麼是任播呢,簡單來說就是每一個地址對應一羣接收節點,不同於廣播和多播的是,每一次發送只允許其中一個鏈路上最優結點接收發送端發來的消息.
任播的好處有負載均衡,提高冗餘性,安全性,用戶層面能提高客戶端的響應速度.
4. Root Zone 文件
Root Zone
文件記錄了全球的頂級域的DNS信息,通過Http
協議可以在 Internic 下載Root Zone
文件,同時也可以通過FTP
下載,其格式如下(部分爲例)
TLD | TTL | Internet | Record Type | Record Value |
---|---|---|---|---|
dnsc.ad. | 172800 | IN | A | 194.158.74.10 |
dnsc.ad. | 172800 | IN | AAAA | 2a02:8060:32fa:0:0:0:0:b |
dnsm.ad. | 172800 | IN | A | 194.158.74.9 |
dnsm.ad. | 172800 | IN | AAAA | 2a02:8060:32fa:0:0:0:0:a |
adac. | 172800 | IN | NS | a.nic.adac. |
adac. | 172800 | IN | NS | b.nic.adac. |
adac. | 172800 | IN | NS | c.nic.adac. |
adac. | 172800 | IN | NS | d.nic.adac. |
更多DNS記錄類型以及相關規定可在 RFC1035 進行查詢