DNS域名解析過(guò)程比較簡(jiǎn)單,先看下IPV4下面的DNS,然后再看IPV6下面的DNS
1. IPv4 DNS
1.1 IPv4 DNS請(qǐng)求過(guò)程
在電腦上面ping www.taobao.com(如果已經(jīng)訪問(wèn)過(guò)需要換一個(gè)網(wǎng)址转培,dns地址會(huì)被緩存,有可能不產(chǎn)生dns請(qǐng)求,直接請(qǐng)求ICMP包)
ping域名的過(guò)來(lái)嬉荆,會(huì)先發(fā)送dns請(qǐng)求得到域名的IP,然后再發(fā)送ICMP包酷含,測(cè)試數(shù)據(jù)可達(dá)性鄙早。
1.2 DNS數(shù)據(jù)包解析
- DNS數(shù)據(jù)包封裝在UDP報(bào)文中
- 目的端口為53
- 源IP為本地IPV4地址,目的IP為路由器192.168.18.1(自動(dòng))椅亚,手動(dòng)的話就是直接發(fā)送到手動(dòng)設(shè)置的地址
DNS有兩種報(bào)文:查詢報(bào)文限番、回答報(bào)文,兩者有著相同格式呀舔,下面就取報(bào)文中幾個(gè)比較重要的字段進(jìn)行說(shuō)明
查詢報(bào)文:
回答報(bào)文:
1.3 DNS查詢報(bào)文-類(lèi)型tpye字段
在發(fā)送DNS查詢數(shù)據(jù)包的時(shí)候弥虐,會(huì)指定要查的類(lèi)型,如IPV4地址就是A(使用ping命令)媚赖,IPV6地址就是AAAA(使用ping6命令)霜瘪。
類(lèi)型 | 助記符 | 說(shuō)明 |
---|---|---|
1 | A | IPv4地址 |
2 | NS | 名字服務(wù)器 |
5 | CNAME | 規(guī)范名稱(chēng)定義主機(jī)的正式名字的別名 |
6 | SOA | 開(kāi)始授權(quán)標(biāo)記一個(gè)區(qū)的開(kāi)始 |
11 | WKS | 熟知服務(wù)定義主機(jī)提供的網(wǎng)絡(luò)服務(wù) |
12 | PTR | 指針把IP地址轉(zhuǎn)化為域名 |
13 | HINFO | 主機(jī)信息給出主機(jī)使用的硬件和操作系統(tǒng)的表述 |
15 | MX | 郵件交換把郵件改變路由送到郵件服務(wù)器 |
28 | AAAA | IPv6地址 |
252 | AXFR | 傳送整個(gè)區(qū)的請(qǐng)求 |
255 | ANY | 對(duì)所有記錄的請(qǐng)求 |
1.4 DNS回答報(bào)文-Answers字段
Flags中Answer RRs 為3 說(shuō)明對(duì)應(yīng)的Answers字段中將會(huì)出現(xiàn)3項(xiàng)解析結(jié)果.
Answers字段可以看成一個(gè)List,集合中每項(xiàng)為一個(gè)資源記錄。
1.5 本地查看dns地址
在本地可以使用nslookup查看dns解析后的IPv4地址
linye@linye-ubuntu:~$ nslookup www.tianmm.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.tianmm.com
Address: 10.0.0.1
2. IPv6 DNS
IPv6對(duì)于DNS的支持是很簡(jiǎn)單的惧磺,只是將IPv4的域名解析和反向域名解析技術(shù)直接轉(zhuǎn)換到IPv6環(huán)境中而已颖对。
協(xié)議 | 記錄 | DNS映射 |
---|---|---|
IPv4 | A | www.example.org A 206.123.31.200 |
IPv6 | AAAA | www.example.org AAAA 2001:410:1:1:250:3eff:fee4:1 |
例如IPv6地址為2001:410:1:1:250:3eff:fee4:1,反向查詢域名為1.0.0.0.4.e.e.f.f.f.e.3.0.5.2.0.1.0.0.0.1.0.0.0.0.1.4.0.1.0.0.2.IP6.ARPA
2.1 DNS數(shù)據(jù)包解析
- DNS數(shù)據(jù)包封裝在UDP報(bào)文中
- 目的端口為53
- 源IP為本地IPV6地址磨隘,自動(dòng)dns的話目的IP為路由器下發(fā)的dns-server(dibbler里面設(shè)置)缤底,手動(dòng)的話就是直接發(fā)送到手動(dòng)設(shè)置的地址如2000::ff或者2000::fe(路由器的/etc/config/network里面設(shè)置)
2.2 本地查看dns地址
在本地可以使用nslookup查看dns解析后的IPv6地址
linye@linye-ubuntu:~$ nslookup
> set type=AAAA
> gw.zihome.com
Server: 127.0.0.1
Address: 127.0.0.1#53
gw.zihome.com has AAAA address 2001:2345::1
> www.tianmm.com
Server: 127.0.0.1
Address: 127.0.0.1#53
www.tianmm.com has AAAA address 2001::1
3. 使用地址選擇的示例
主機(jī)A是一臺(tái)IPv6IPv4主機(jī),它具有多個(gè)接口,每個(gè)接口有多個(gè)地址布讹。主機(jī)A構(gòu)建并發(fā)送了一條或多條“DNS域名查詢請(qǐng)求”消息,請(qǐng)求所有與域名web.example.com對(duì)應(yīng)的地址記錄。而主機(jī)A接收到的“DNS域名查詢響應(yīng)”消息中包含一個(gè)IPv4地址記錄和多個(gè)IPv6地址記錄训堆。
根據(jù)DNS域名査詢響應(yīng)消息的內(nèi)容,主機(jī)A的IPv6會(huì)執(zhí)行如下操作描验。
1、使用源地址選擇算法來(lái)判斷出每個(gè)目的IPv6地址的最佳源地址
2坑鱼、使用目的地址選擇算法來(lái)判斷出目的IPv4和IPv6地址的優(yōu)先順序膘流。
目的地址的有序組以及它們對(duì)應(yīng)的源地址會(huì)被提供給應(yīng)用程序。然后,應(yīng)用就會(huì)接著嘗試每個(gè)目的和源地址組合,直至通信建立鲁沥。
例如,主機(jī)A配置了如下地址
LAN接口:
- 2001:db8:21a5:a4543ce:bf6:505:eae6(全局地址,非棄用狀態(tài),公有)
- 2001:db8:21a5:a454:20da:3198:2c50:1a57(全局地址,非棄用狀態(tài),臨時(shí)使用)
- 2001:db8:21a5:a454:1d15:9c:8e4c:902b(全局地址,棄用狀態(tài),臨時(shí)使用)
- fec0:3a4f:78ea:a454:3cebf16:505:eae6(站點(diǎn)本地地址,非棄用狀態(tài))
- fe80:3 cec: bfl6:505:eae6(鏈路本地地址,非棄用狀態(tài))
- 157.60.17.211(公有IPv4地址[全局范圍],非棄用狀態(tài)
口站點(diǎn)內(nèi)自動(dòng)隧道尋址協(xié)議( ISATAP)隧道接口:
- 2001:db8:21a5:a499:efe:157.60.17.211(全局 ISATAP地址,非棄用狀態(tài))
- fe80:5efe:157.60.17.211(鏈路本地地址,非棄用狀態(tài))
對(duì)于域名web.example.com的DNS域名查詢請(qǐng)求消息返回如下地址呼股。
- 207.73.11898(公有IPv4地址[全局范圍])
- 2001:db8:21a5:a4ca:2a:ffe35:2cla(全局地址)
- 2001:db8:21a5:a499:efe:207.73.118.98( ISATAP全局地址)
- ecO0:3a4f2a34:1a7:2a:ffe35:2ca(站點(diǎn)本地地址)
源地址選擇算法的結(jié)果如下。
- 對(duì)于目的地址2001:db8:21a5:a4ca:2a:ffl635:2ca,選擇的源地址是2001:db8:21a5:a454ccbr6:505:eae6(全局地址,非棄用狀態(tài),公有),因?yàn)樗姆秶ヅ?它是公有地址,并且它與目的地址匹配的前綴長(zhǎng)度最長(zhǎng)画恰。
- 對(duì)于目的地址2001:db8:21a5:a499:5efe:207.73.118.98,選擇的源地址是2001:db8:21a5:a499:5efe:157.60.17.,211(全局 ISATAP地址,非棄用狀態(tài)),因?yàn)樗姆秶ヅ?而且它與目的地址匹配的前綴長(zhǎng)度最長(zhǎng)
- 對(duì)于目的地址fec0:3a4f2a34:1a27:2a:f:fe35:2cla,選擇的源地址是fec0:3a4f:78ea:a454:ccbr6:505:eae6(站點(diǎn)本地地址,非棄用狀態(tài)),因?yàn)樗姆秶ヅ?而且它與目的地址匹配的前綴長(zhǎng)度最長(zhǎng)
目的地址選擇算法的結(jié)果是按優(yōu)先級(jí)順序排列的目的地址,如下所示
- fec0:3a4f:2a34:1aa7:2aa:f:fe35:2cla(范圍最小)彭谁。
- 2001:db8:21a5:a4ca:2a:ffe35:2cla(本地地址優(yōu)于 ISATAP地址)
- 2001:db8:21a5:a499:5efe:207.73.118.98( ISATAP地址優(yōu)于IPv4映射過(guò)來(lái)的地址)
- 207.73.118.98。
于是,主機(jī)A嘗試通過(guò)以下幾組源和目的地址與web.example.com服務(wù)器建立通信允扇。
- 1.源地址feco3a4f:78ea:a4543cc:bf6:505:eae6,目的地址fe.3a4f:2a34:1a7:2a:ffe3acla
- 2.源地址2001:db8:2la5:a454:3ce:bf16:505:eae6,目的地址2001:db8:21a5:a4ca:2a:ffe35
- 3.源地址2001:db8:21a6:a499:5efe:157.60.17.211,目的地址2001:db8:21a5:a49:5efe:207.73
- 4.源地址157.60.17.211,目的地址207.73.118.98
選用IPv6地址而棄用IPv4地址是因?yàn)?IPv4地址(地址前綴:ff0096)默認(rèn)前綴策略表的條目的優(yōu)先權(quán)值較低缠局。
4.推薦DNS服務(wù)器
- 阿里2400:3200::1 2400:3200:baba::1
- 百度2400:da00::6666
- 天地互連240C::6666 240C::6644
- 谷歌2001:4860:4860::8888 2001:4860:4860::8844