安陽(yáng)市網(wǎng)站建設(shè)的公司企點(diǎn)qq
一、概述
? ? ? ? 在IPv4網(wǎng)絡(luò)環(huán)境當(dāng)中,我們想要與對(duì)端進(jìn)行網(wǎng)絡(luò)通信時(shí),首先需要去解析對(duì)方的MAC地址這樣我們才能封裝二層數(shù)據(jù)幀,就算訪問(wèn)不同網(wǎng)絡(luò)時(shí)也需要解析網(wǎng)關(guān)的MAC,這些都是需要我們的ARP協(xié)議來(lái)進(jìn)行操作完成的,但是在我們的IPv6網(wǎng)絡(luò)環(huán)境當(dāng)中并沒(méi)有ARP協(xié)議,而是通過(guò)NDP協(xié)議來(lái)完成類似的操作,此文章我們將詳細(xì)與大家介紹NDP協(xié)議的報(bào)文結(jié)構(gòu),NDP的工作機(jī)制等,方便大家對(duì)IPv6協(xié)議的進(jìn)一步了解。
二、ICMPv6
? ? ? ? 因?yàn)槲覀兊腘DP協(xié)議是封裝在ICMPv6之上的所以這里我們先介紹一下ICMPv6協(xié)議并比較ICMPv6與ICMPv4的區(qū)別,ICMPv4在IPv4網(wǎng)絡(luò)當(dāng)中并不算特別重要,少了ICMPv4協(xié)議也可以正常通信,但在IPv6當(dāng)中要是沒(méi)有了ICMPv6則無(wú)法正常通信了,所以ICMPv6在IPv6網(wǎng)絡(luò)當(dāng)中非常重要。?
? ? ? ? ICMPv6是IPv6的基礎(chǔ)協(xié)議之一,用于向原節(jié)點(diǎn)傳遞報(bào)文轉(zhuǎn)發(fā)的信息或錯(cuò)誤。
? ? ? ? 協(xié)議類型好(即IPv6 Next Header)為58。
? ? ? ? 在IPv6當(dāng)中,ICMPv6除了提供ICMPv4的對(duì)應(yīng)功能之外,還有其他一些功能的基礎(chǔ),如鄰居發(fā)現(xiàn)、無(wú)狀態(tài)地址配置、重復(fù)地址檢測(cè)、PMTU發(fā)現(xiàn)等。
三、NDP
1、NDP能夠?qū)崿F(xiàn)的功能
- 地址解析-ARP的功能
- DAD-地址沖突檢測(cè)-免費(fèi)ARP功能
- NUD-鄰居不可達(dá)檢測(cè)
- 路由器發(fā)現(xiàn)-生成前綴信息-網(wǎng)關(guān)
2、報(bào)文類型
? ? ? ? 常見的NDP報(bào)文類型有四個(gè)分別為:
- RS(Router Solicitation)路由器請(qǐng)求報(bào)文
- RA(Router Advertisement)路由器通告報(bào)文
- NS(Neighbor Solicitation)鄰居請(qǐng)求報(bào)文
- NA(Neighbor Advertisement)鄰居通告報(bào)文
2、NS和NA
在講NS之前,我們先回顧一下IPv4中ARP是如何去解析對(duì)方的地址的。
首先我們想要去解析對(duì)方的MAC首先得有對(duì)方的三層信息就是IP,發(fā)出一個(gè)ARP的Request廣播報(bào)文來(lái)尋找對(duì)方,對(duì)方在接收到我們的請(qǐng)求報(bào)文之后就會(huì)將自己的MAC地址填進(jìn)去回復(fù)一個(gè)Reply響應(yīng)報(bào)文,當(dāng)我們接收到對(duì)方的響應(yīng)報(bào)文時(shí)就得到了對(duì)方的MAC地址就可以封裝二層數(shù)據(jù)了。
要注意的一點(diǎn)是,在IPv4當(dāng)中使用ARP去請(qǐng)求MAC時(shí)發(fā)送的是一個(gè)廣播報(bào)文,但在IPv6當(dāng)中并沒(méi)有廣播報(bào)文,那我們?cè)诎l(fā)送請(qǐng)求報(bào)文時(shí)目的IP怎么填寫呢?
這里就需要用到我們IPv6詳解當(dāng)中介紹的被請(qǐng)求節(jié)點(diǎn)組播地址了,我們NS在請(qǐng)求對(duì)方MAC的時(shí)候目的IP填寫的就是我們通過(guò)計(jì)算得出的對(duì)方的被請(qǐng)求節(jié)點(diǎn)組播地址。
舉個(gè)例子:
此時(shí)我們讓AR1去請(qǐng)求AR2的MAC,那么就會(huì)發(fā)出這樣的一個(gè)報(bào)文
AR2在接收到這個(gè)NS請(qǐng)求報(bào)文之后,拆包發(fā)現(xiàn)目的MAC為自己的被請(qǐng)求節(jié)點(diǎn)組播地址的MAC,就會(huì)繼續(xù)往上層進(jìn)行拆包,拆完后發(fā)現(xiàn)對(duì)方要請(qǐng)求我的MAC,AR2首先會(huì)將ICMPv6 Option當(dāng)中的Link-layer address(AR1的MAC)與源IP做一個(gè)綁定形成一個(gè)鄰居表,隨后發(fā)送一個(gè)NA報(bào)文給對(duì)方告訴對(duì)方AR2我的MAC是多少。
AR1在收到AR2發(fā)送的NA鄰居通告報(bào)文之后就會(huì)通過(guò)里面的MAC和IPv6地址做一個(gè)綁定形成鄰居表。
3、DAD?
當(dāng)我們?cè)诮涌谏吓渲煤肐Pv6地址并UP之后,會(huì)發(fā)送一份NS報(bào)文,這個(gè)報(bào)文類似于IPv4網(wǎng)絡(luò)當(dāng)中的免費(fèi)ARP。用來(lái)檢測(cè)是否有地址沖突的,假如這個(gè)網(wǎng)絡(luò)當(dāng)中存在地址沖突,對(duì)方就會(huì)回復(fù)一個(gè)NA報(bào)文,本設(shè)備在接收到對(duì)方的NA報(bào)文之后就知道網(wǎng)絡(luò)中已經(jīng)有人使用了這個(gè)地址。
與IPv4不同的是,在IPv4網(wǎng)絡(luò)當(dāng)中如果存在地址沖突但雙方還是可以正常使用該地址的只不過(guò)可能會(huì)將報(bào)文誤發(fā)給對(duì)方,但I(xiàn)Pv6網(wǎng)絡(luò)當(dāng)中如果發(fā)現(xiàn)存在地址沖突,本設(shè)備收到了對(duì)方的NA報(bào)文以后就會(huì)將該地址的狀態(tài)置為DUPLICATE狀態(tài),不能使用該地址。
舉個(gè)例子:
我們將AR2的接口IPv6地址配置與AR1一致,AR2的地址UP的時(shí)候就會(huì)發(fā)送一份NS用來(lái)做DAD地址沖突檢測(cè)
AR1在收到AR2發(fā)送的NS報(bào)文之后就會(huì)回復(fù)一份NA,AR2在收到這份NA報(bào)文之后就知道該地址已經(jīng)被人使用了,會(huì)將該地址置為DUPLICATE狀態(tài)。
4、RS和RA
? ? ? ? ?在IPv6網(wǎng)絡(luò)當(dāng)中我們可以通過(guò)RS和RA報(bào)文來(lái)獲取到前綴信息以及網(wǎng)關(guān)
舉個(gè)例子:
我們讓AR2去獲取IPv6地址前綴,AR2會(huì)發(fā)出一份RS,當(dāng)AR1收到這份RS時(shí),就會(huì)將前綴放入到RA當(dāng)中回復(fù)給AR2,AR2收到RA之后通過(guò)前綴+EUI64計(jì)算出一個(gè)IPv6地址進(jìn)行使用。這就是我們所說(shuō)的即插即用。
AR2的RS報(bào)文
AR1的RA報(bào)文
以上就是本章的全部?jī)?nèi)容了,感謝大家的瀏覽觀看!文章若有錯(cuò)誤或疑問(wèn)可聯(lián)系博主刪除更改。
四、NDP案例
1、地址解析案例?
?