国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 為什么根域名服務器只能有 13 臺呢?

為什么根域名服務器只能有 13 臺呢?

2021-09-07 23:42山盡寫東西的cache因循不覺韶光換 服務器知識

DNS 是一種分層結構,在整個互聯(lián)網(wǎng)中組成一個樹狀系統(tǒng),頂層是系統(tǒng)的根域名,下層為 TLD 以及二級域名,葉子就構成了所謂的 FQDN(Fully Qualified Domain Names),根域名通常使用 "." 來表示。

為什么根域名服務器只能有 13 臺呢?

剛好有人發(fā)出知乎 https://www.zhihu.com/question/22587247 的這個鏈接,問哪個答案才是對的,我看了一下里面的答案,魚龍混雜,我試著回答一下。

其實對于一個小白,這個問題核心并不是13臺,而是,域名根服務器什么,查詢的過程是怎么樣呢?

不算太久以前的基礎知識

DNS 是一種分層結構,在整個互聯(lián)網(wǎng)中組成一個樹狀系統(tǒng),頂層是系統(tǒng)的根域名,下層為 TLD 以及二級域名,葉子就構成了所謂的 FQDN(Fully Qualified Domain Names),根域名通常使用 "." 來表示,其實際上也是由域名組成,全世界目前有 13 組域名根節(jié)點,由少數(shù)幾個國家進行管理,而國內(nèi)僅有幾臺根節(jié)點鏡像。

為什么根域名服務器只能有 13 臺呢?

如查詢 www.im.qq.com,簡略描述 DNS 的過程就是,先查詢 com 這個域名的 name server 有哪些,然后選一個繼續(xù)查詢 qq 這個子域名的 name servers 有哪些,再選一個繼續(xù)查詢 im 這個子域名的 name servers 有哪些,www 不是域名,查詢結束。這個查詢出來的結果就是 google.com 域名。所謂的 name server,其實就是dns服務器啦,用來解析域名的。

萬物起始之風——Root Servers

而上面的查詢過程有一個問題就是,程序該去哪里查詢 com,gov 這些頂級域名的服務器呢?

這個就是 Root servers(根服務器) 的作用,用來查詢以上的頂級域名的 name server。

思考

而怎么樣獲取 Root servers 的地址呢,注意這里沒有動態(tài)域名(DNS)可用,獲取的地址其實就是要獲取 IP,假如我們來實現(xiàn) DNS 服務器,這一步你會怎么做呢?

其實這種做法很顯然易見,寫程序直覺就是如此:

  • 寫一份配置文件放程序里,記錄了全部 Root servers 的 IP 地址列表,定時從網(wǎng)上(這個就可以用域名了)更新這份配置文件;
  • 又或者程序啟動的時候,直接從網(wǎng)上獲取這些信息,存下來,也是定時更新;

DNS 的做法也不外乎如是,而上面說到的這份"配置文件",就在 https://www.internic.net/domain/named.root,里面就是所有`Root Servers`的 信息:

  1. ;       This file holds the information on root name servers needed to  
  2. ;       initialize cache of Internet domain name servers 
  3. ;       (e.g. reference this file in the "cache  .  <file>" 
  4. ;       configuration file of BIND domain name servers).  
  5. ;  
  6. ;       This file is made available by InterNIC  
  7. ;       under anonymous FTP as 
  8. ;           file                /domain/named.cache  
  9. ;           on server           FTP.INTERNIC.NET 
  10. ;       -OR-                    RS.INTERNIC.NET 
  11. ;  
  12. ;       last update:     July 30, 2019  
  13. ;       related version of root zone:     2019073000 
  14. ;  
  15. ; FORMERLY NS.INTERNIC.NET  
  16. .                        3600000      NS    A.ROOT-SERVERS.NET. 
  17. A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4 
  18. A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30 
  19. ;  
  20. ; FORMERLY NS1.ISI.EDU  
  21. .                        3600000      NS    B.ROOT-SERVERS.NET. 
  22. B.ROOT-SERVERS.NET.      3600000      A     199.9.14.201 
  23. B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:200::b 
  24. ;  
  25. ; FORMERLY C.PSI.NET  
  26. .                        3600000      NS    C.ROOT-SERVERS.NET. 
  27. C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12 
  28. C.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2::c 
  29. ;  
  30. ; FORMERLY TERP.UMD.EDU  
  31. .                        3600000      NS    D.ROOT-SERVERS.NET. 
  32. D.ROOT-SERVERS.NET.      3600000      A     199.7.91.13 
  33. D.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2d::d 
  34. ;  
  35. .                        3600000      NS    M.ROOT-SERVERS.NET. 
  36. M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33 
  37. M.ROOT-SERVERS.NET.      3600000      AAAA  2001:dc3::35 
  38. End of file 

中間的服務器太多,我就刪掉一部分了。

Priming Query!

按照我的風格,寫這樣一篇文章時,怎么能不帶權威的信息呢。

Initializing a DNS Resolver with Priming Queries[1] 就是 Internet Engineering Task Force (IETF) 寫的一份關于 priming query[2]的BCP(Best Current Practice )文檔。

This document describes the queries that a DNS resolver should emit to initialize its cache. The result is that the resolver gets both a current NS RRSet for the root zone and the necessary address information for reaching the root servers.

上面提到的列表信息,可能并不是最新的,所以 DNS解析器首次啟動時,并不去讀這份文件,而是直接去查詢有哪些服務器(來自下文提及的文章,我對這個說法存疑,因為文件的大小跟查詢到的東西差別應該不大,有待驗證)。

關于Priming Query的額外知識請看下面補充。

A priming query is a normal DNS query. Thus, a root name server cannot distinguish a priming query from any other query for the root NS RRset. Thus, the root server's response will also be a normal DNS response.

Resolver software SHOULD treat the response to the priming query as a normal DNS response, just as it would use any other data fed to its cache. Resolver software SHOULD NOT expect exactly 13 NS RRs because historically some root servers have returned fewer.

為什么是13,還重要嗎?

是不是感覺沒那么重要了呢。

是這樣的,在DNS設計之初,在龜速的網(wǎng)絡下,當然是希望做 Prime Query 查 Root Servers 性價比達到最高啦。

DNS 是用 UDP 傳數(shù)據(jù)的,而設計的時候規(guī)定DNS查詢時,一個包的能放的數(shù)據(jù)最多是 512 Bytes,為什么是 512 Bytes,為什么域名根服務器只能有13臺呢?- 車小胖的回答 - 知乎[3] 做了完整的回答,摘錄一點如下:

Internet 大多數(shù)網(wǎng)絡接口 MTU>512,即使 DNS 報文 + UDP+ IP= 512+8+20=540,這個大小幾乎可以在 Internet 上暢通無阻,而無需 IP 分片。

為何 IP 分片不好? 一個 UDP 報文如果因為 size > MTU,則會被 IP 層分成兩片多片,但是只有一片有端口號,由于其它分片沒有端口號,能否通過防火墻則完全看防火墻的臉色,所以對于能否通信成功是一個未知數(shù)。

如果防火墻網(wǎng)開一面,不檢查端口號,分片可以全部通行,到目的地再組裝到一起,IP 層提交給 UDP/DNS,一點問題沒有。但是防火墻的安全功能大打折扣,如何阻止非法的外來攻擊包?

如果防火墻嚴格檢查端口號,則沒有端口號的分片則統(tǒng)統(tǒng)丟棄,造成通信障礙。

所以選擇一個合適的 UDP size 至關重要,避免分片。

有同學說,對于 MTU <512 物理接口的 DNS 如何處理?這個其實好辦,這些只是接入層接口,用于接入終端用戶,用戶的 DNS 請求是請求其上一級 DNS 服務器做遞歸查詢(告訴我最終查詢結果)

接著就是 13 這個數(shù)字的果了。

為了做 Prime Query 查 Root Servers 性價比達到最高,肯定是一個包能放多少東西就塞多少東西,所以把所有 Root Servers 的結果都塞進去,剛好能塞14個,不全用就塞13個吧,留下一點東西以備后患,留待擴展。

塞的細節(jié)嘛,https://miek.nl/2013/november/10/why-13-dns-root-servers/ 這篇文章有詳細的介紹,但是我對此不大感興趣了~

原文鏈接:https://mp.weixin.qq.com/s/MKd7Bpkk-WCEpN4sXBC9MQ

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久色成人| 亚洲一区二区在线 | 欧美在线一区二区 | 免费电影一区 | a视频在线观看 | 亚洲精品视频在线免费播放 | 国产成人精品免费视频大全最热 | 性一区 | 免费av在线播放 | 亚洲激情都市 | 亚洲精品中文字幕 | 黄色美女网站 | 久久中文字幕一区二区三区 | 日韩一区二区在线视频 | 男女免费视频 | 日韩欧美中文字幕在线视频 | 亚洲成人日韩在线 | 亚洲精品久久久久久久久久久 | 久久国产精品免费一区二区三区 | 一本一道久久a久久精品综合 | 久久精品国产v日韩v亚洲 | 亚洲成人日韩在线 | 日本一区二区三区免费观看 | 久久久精品网 | 亚洲国产精品人人爽夜夜爽 | 91.成人天堂一区 | 男人午夜天堂 | 毛片一级在线 | 欧美成人综合 | av一区二区在线观看 | 亚洲福利网站 | 91特片网| 国内精品嫩模av私拍在线观看 | 久久久高清 | 欧美国产激情二区三区 | 欧美高清视频在线观看 | 国产视频在线看 | 一本大道综合伊人精品热热 | 国产黄色大片 | 中文字幕在线免费视频 | 国产目拍亚洲精品99久久精品 |