計(jì)算機(jī)網(wǎng)絡(luò)——應(yīng)用層-域名解析服務(wù)DNS

計(jì)算機(jī)網(wǎng)絡(luò)系列博文——目錄

DNS域名解析協(xié)議

因特網(wǎng)主機(jī)標(biāo)識(shí)

  1. 主機(jī)名 hostname
  2. IP地址 IP adress

域名系統(tǒng)(Domain Name System,DNS)

主要提供主機(jī)名到IP地址轉(zhuǎn)換的服務(wù)
包括

  • 一個(gè)由分層的DNS服務(wù)器實(shí)現(xiàn)的分布式數(shù)據(jù)庫
  • 一個(gè)使得主機(jī)能夠查詢分布式數(shù)據(jù)庫的應(yīng)用層協(xié)議

DNS服務(wù)器通常是運(yùn)行Berkely Internet Name Domain(BIND)軟件的UNIX機(jī)器

DNS協(xié)議基于UDP
端口:53
參見 [RFC 1034],[RFC 1035]

DNS服務(wù)

  1. 解析主機(jī)名為IP地址
  2. 主機(jī)別名(host aliasing) 主機(jī)可擁有一個(gè) 規(guī)范主機(jī)名 和若干主機(jī)別名。DNS提供通過主機(jī)別名獲得規(guī)范主機(jī)名及主機(jī)IP的服務(wù)
  3. 郵件服務(wù)器別名 MX記錄技術(shù)允許一個(gè)機(jī)構(gòu)使用相同(但不同類型)的主機(jī)名。即該機(jī)構(gòu)的web服務(wù)器可以和該機(jī)構(gòu)的郵件服務(wù)器同名。
  4. 負(fù)載分配 DNS可用于在冗余的服務(wù)器間進(jìn)行負(fù)載分配。一個(gè)規(guī)范主機(jī)名可以映射到一個(gè)地址集合,當(dāng)用戶請(qǐng)求解析該規(guī)范主機(jī)名時(shí),DNS返回相應(yīng)IP地址集合,但是在每次響應(yīng)中輪換IP地址次序,以將負(fù)載分配到不同服務(wù)器(進(jìn)程通常默認(rèn)使用IP地址集合中的第一個(gè)地址)

DNS工作機(jī)制

分布式層次數(shù)據(jù)庫

DNS使用了大量服務(wù)器,它們以層次方式組織,分布在全世界范圍內(nèi)。

DNS大致分三類
根DNS服務(wù)器
因特網(wǎng)上共13個(gè)根DNS服務(wù)器,標(biāo)號(hào)[A-M]
每臺(tái)邏輯上的根服務(wù)器實(shí)際上是一個(gè)冗余的服務(wù)器網(wǎng)絡(luò)。

頂級(jí)域DNS服務(wù)器
負(fù)責(zé)頂級(jí)域名
負(fù)責(zé)com, org, net,edu等頂級(jí)域名和cn, uk, fr等國家頂級(jí)域名
參見 IANA TLD

權(quán)威DNS服務(wù)器
因特網(wǎng)上具有公共可訪問主機(jī)的機(jī)構(gòu)必須提供公共可訪問的DNS記錄。
機(jī)構(gòu)可以選擇實(shí)現(xiàn)自己的權(quán)威DNS服務(wù)器以管理該機(jī)構(gòu)的公共可訪問DNS記錄,也可以選擇由DNS服務(wù)提供商管理該機(jī)構(gòu)的公共可訪問DNS記錄(付服務(wù)提供商錢,存服務(wù)提供商的權(quán)威DNS服務(wù)器里)
實(shí)踐中,權(quán)威DNS服務(wù)器可能有多層。

本地DNS服務(wù)器
嚴(yán)格地說,不屬于DNS層次結(jié)構(gòu)
功能上非必須,提供代理,緩存作用
每個(gè)ISP(大學(xué),院系,公司,小區(qū))都擁有一臺(tái)本地DNS服務(wù)器。本地DNS服務(wù)器通常在地理上臨近用戶主機(jī)。

當(dāng)主機(jī)發(fā)出DNS請(qǐng)求時(shí),請(qǐng)求被發(fā)往本地DNS服務(wù)器,本地DBS服務(wù)器起代理作用,它將請(qǐng)求轉(zhuǎn)發(fā)到DNS服務(wù)器層次結(jié)構(gòu)中。

遞歸查詢 A請(qǐng)求B,B請(qǐng)求C,C返回給B,B返回給A
迭代查詢 A請(qǐng)求B,B返回給A,A請(qǐng)求C,C返回給A

實(shí)踐中,從主機(jī)到本地DNS的查詢是遞歸的,從本地DNS到DNS層次結(jié)構(gòu)的查詢是迭代的。

DNS緩存

  • 減少延時(shí),減少DNS流量
  • 在一個(gè)請(qǐng)求鏈中,當(dāng)某DNS服務(wù)器接收到一個(gè)回答時(shí),它能將該回答緩存在本地存儲(chǔ)器中。
  • 對(duì)一個(gè)請(qǐng)求,它首先查看本地緩存,若無,再請(qǐng)求相應(yīng)DNS服務(wù)器。
  • DNS在一定時(shí)間后(常為兩天)會(huì)丟棄緩存的信息。

DNS記錄

資源記錄(Resource Record,RR) DNS服務(wù)器存儲(chǔ)RR。每個(gè)DNS回答報(bào)文包含若干條RR。

資源記錄 RR = (Name,Value,Type,TTL)

TTL 記錄生存時(shí)間,即記錄應(yīng)當(dāng)從緩存中移除的時(shí)間。

RR主要類型

  1. Type = A Name 為主機(jī)名,Value 是該主機(jī)名對(duì)應(yīng)的IP地址。 A類RR提供規(guī)范主機(jī)名到IP地址的映射
  2. Type = NS Name 為域,Value為知曉如何獲得該域中主機(jī)IP地址的權(quán)威DNS服務(wù)器的主機(jī)名。NS類RR提供沿查詢鏈路由DNS的信息
  3. Type = CNAME Name 為主機(jī)別名,Value 為規(guī)范主機(jī)名。CNAME類RR提供別名到規(guī)范主機(jī)名的映射
  4. Type = MX Name為郵件服務(wù)器別名,Value為規(guī)范主機(jī)名。MX類RR提供郵件服務(wù)器別名到規(guī)范主機(jī)名的映射。MX記錄允許一個(gè)機(jī)構(gòu)的郵件服務(wù)器和其他服務(wù)器使用相同的別名。

對(duì)某給定主機(jī)名h,h的權(quán)威DNS服務(wù)器s1,DNS請(qǐng)求鏈中s1的上游DNS服務(wù)器s0,必有:
s1中有一條主機(jī)名h的A類記錄;
s0中有一條NS記錄,該記錄對(duì)應(yīng)包含主機(jī)名h的域;
s0中有一條A類記錄,該記錄提供NS記錄中Value值所對(duì)應(yīng)的IP地址;

DNS報(bào)文

DNS有且僅有查詢,回答兩種報(bào)文,且兩者遵照相同的格式,格式如下:

首部區(qū)域
12byte

  1. 標(biāo)識(shí)符字段 16bit 標(biāo)識(shí)一次查詢,一個(gè)請(qǐng)求/響應(yīng)對(duì)中有相同的標(biāo)識(shí)符。
  2. 標(biāo)志字段 若干標(biāo)志。 查詢/回答標(biāo)志位 指出報(bào)文為查詢報(bào)文亦或回答報(bào)文;權(quán)威標(biāo)志位 指示相應(yīng)服務(wù)器是否為所查詢主機(jī)名的權(quán)威服務(wù)器; 遞歸可用標(biāo)志位 指示該DNS服務(wù)器是否支持遞歸查詢;希望遞歸標(biāo)志位 指示客戶是否希望在服務(wù)器沒有記錄時(shí)執(zhí)行遞歸查詢;
  3. 問題數(shù)字段
  4. 回答RR數(shù)字段
  5. 權(quán)威RR數(shù)字段
  6. 附加RR數(shù)字段

問題區(qū)域
正在進(jìn)行的查詢信息

  1. 名字字段 所查詢的主機(jī)名
  2. 類型字段 指示所查詢的主機(jī)名類型 是否為郵件服務(wù)器地址(MX記錄或A記錄)

回答區(qū)域
所查詢主機(jī)名相關(guān)的資源記錄
若干條RR

權(quán)威區(qū)域
其他權(quán)威服務(wù)器的記錄

附加區(qū)域
其他有幫助的記錄
例如所查詢的郵件服務(wù)器的規(guī)范主機(jī)名。

向DNS數(shù)據(jù)庫中插入記錄

DNS注冊(cè)登記機(jī)構(gòu)
商業(yè)實(shí)體,驗(yàn)證待注冊(cè)域名的唯一性,將待注冊(cè)域名輸入DNS數(shù)據(jù)庫,并為注冊(cè)服務(wù)收取少量費(fèi)用。

因特網(wǎng)名字和地址分配機(jī)構(gòu)(Internet Corporation for Assigned Names and Numbers,ICANN)
ICANN授權(quán)注冊(cè)登記機(jī)構(gòu)。
http://www.internic.net

向某注冊(cè)登記機(jī)構(gòu)注冊(cè)域名h時(shí),需要提供域名h的基本和輔助權(quán)威DNS服務(wù)器的名字和IP地址。
對(duì)所提供的每一個(gè)權(quán)威DNS服務(wù)器的名字和地址,該注冊(cè)登記機(jī)構(gòu)確保將相應(yīng)的NS類記錄,A類記錄輸入對(duì)應(yīng)的頂級(jí)域DNS服務(wù)器。
注冊(cè)者還需確保域名h的Web服務(wù)器A類記錄,郵件服務(wù)器MX類記錄被輸入上述權(quán)威DNS服務(wù)器中。

其它資料

https://jocent.me/2017/06/18/dns-protocol-principle.html

DNS安全性

DDos

利用僵尸網(wǎng)絡(luò)向根域名服務(wù)器發(fā)送大量ICMP ping報(bào)文。
向頂級(jí)域名服務(wù)器發(fā)送大量DNS請(qǐng)求。

中間人攻擊

截獲來自主機(jī)的請(qǐng)求并向主機(jī)發(fā)送偽造的回答

DNS毒害攻擊

向DNS服務(wù)器發(fā)送偽造的回答,誘使服務(wù)器在它的緩存中接收偽造的記錄

DNS反射攻擊

利用DNS服務(wù)攻擊其它主機(jī)。
構(gòu)造大量DNS請(qǐng)求,將請(qǐng)求的源偽造為待攻擊的主機(jī),精心設(shè)計(jì)請(qǐng)求報(bào)文使得回答報(bào)文的大小大于請(qǐng)求報(bào)文的大小,從而起到放大攻擊流量的作用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如果孩子不想讀書,你就帶他去四個(gè)地方,第一是汽車客運(yùn)站,第二是火車站,第三是高鐵站,第四是飛機(jī)場。 你在長途汽車站...
    瑞玲老師閱讀 173評(píng)論 0 0
  • 哪吒和辛巴的pk,誰贏了? 最近的動(dòng)畫片挺博人眼球的,不管是來自國外而中規(guī)中矩的《獅子王》,還是出自本土卻不同以往...
    盧老師微語閱讀 594評(píng)論 0 0

友情鏈接更多精彩內(nèi)容