計(jì)算機(jī)網(wǎng)絡(luò)系列博文——目錄
DNS域名解析協(xié)議
因特網(wǎng)主機(jī)標(biāo)識(shí)
- 主機(jī)名 hostname
- 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ù)
- 解析主機(jī)名為IP地址
- 主機(jī)別名(host aliasing) 主機(jī)可擁有一個(gè) 規(guī)范主機(jī)名 和若干主機(jī)別名。DNS提供通過主機(jī)別名獲得規(guī)范主機(jī)名及主機(jī)IP的服務(wù)
- 郵件服務(wù)器別名 MX記錄技術(shù)允許一個(gè)機(jī)構(gòu)使用相同(但不同類型)的主機(jī)名剪廉。即該機(jī)構(gòu)的web服務(wù)器可以和該機(jī)構(gòu)的郵件服務(wù)器同名。
- 負(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等國(guó)家頂級(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主要類型
- Type = A Name 為主機(jī)名荤牍,Value 是該主機(jī)名對(duì)應(yīng)的IP地址案腺。 A類RR提供規(guī)范主機(jī)名到IP地址的映射
- Type = NS Name 為域,Value為知曉如何獲得該域中主機(jī)IP地址的權(quán)威DNS服務(wù)器的主機(jī)名康吵。NS類RR提供沿查詢鏈路由DNS的信息
- Type = CNAME Name 為主機(jī)別名劈榨,Value 為規(guī)范主機(jī)名。CNAME類RR提供別名到規(guī)范主機(jī)名的映射
- 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
- 標(biāo)識(shí)符字段 16bit 標(biāo)識(shí)一次查詢田弥,一個(gè)請(qǐng)求/響應(yīng)對(duì)中有相同的標(biāo)識(shí)符涛酗。
- 標(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í)行遞歸查詢只泼;
- 問題數(shù)字段
- 回答RR數(shù)字段
- 權(quán)威RR數(shù)字段
- 附加RR數(shù)字段
問題區(qū)域
正在進(jìn)行的查詢信息
- 名字字段 所查詢的主機(jī)名
- 類型字段 指示所查詢的主機(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)文的大小啰挪,從而起到放大攻擊流量的作用。