IPv6 auto config原理詳解之-----前綴公告

轉載自:http://www.2cto.com/net/201108/99970.html

Technorati 標籤: IPv6,IPv6 prefix,IPv6 auto config
人們常說,IPv6的一大特性就是移動性。

那麼對於IP終端來說,如何去理解他的移動性呢?

其實就是IPv6的無狀態自動配置。

前段時間有幸一個同事給我演示了一下這個功能,但是更多的疑問產生了。

IPv4中,比如說電腦,在網卡中設置自動獲取IP地址和DNS.那麼就可以自動從DHCP服務器上面獲得IP地址和DNS還有網關了。

下面是IPv4的設置界面:

clip_image002

 

那麼按照這個邏輯,IPv6就應該是沒有這些選項,最終達到即插即用的目的嘛?答案是否,下面的截圖IPv6也有:

clip_image004

 

那麼爲什麼還需要自動配置?

意義在哪裏?

如何實現呢?

帶着這些問題,我們慢慢來看看IPv6這個自動配置auto config到底是個什麼原理。

RFC2462上面寫到,無狀態自動配置是IPv6最有吸引力和最有用的新特性之一。他允許本地鏈路上得節點根據路由器在本地鏈路上公告信息自己配置單播IPv6地址。

PS:路由器可是不能用無狀態自動配置來實現,無狀態自動配置僅僅適用於IP終端.這點一定要記得。

所以換句話說,路由器上面是不能實現這個功能的,這個是RFC上面定義的。沒有原因。可能主要的目的是統一規劃,方便管理的目的。

clip_image006

 

這個就是從auto config延伸出來的幾個子工作機制。

第一個知識點是前綴公告。

前綴公告是無狀態自動配置中的初始機制。前綴公告機制使用路由器公告信息ICMPv6 type=134和所有節點的多播地址FF02::1,路由器公告機制在本地鏈路上週期性的發送到所有節點的多播地址。

clip_image008

 

在CISCO路由器上面公告IPv6前綴.

只要在接口上面配置了一個本地站點或者全球可聚合單播IPv6地址還有掩碼,實際上就啓用了cisco路由器上面的IPv6前綴公告。

IPv6前綴公告原理:

路由器週期性的發送ICMPv6 type=134的路由器前綴公告,用她得本地鏈路地址link-local FE80::250:3EFF:FEE4:4C00作爲源,所有節點的多播地址FF02::1作爲目的。

路由器公告消息公告的前綴是FEC0:0:0:1::/64,生存週期首選無窮大.

當本地鏈路多播地址FF02::1的節點A和B得到路由器公告消息,可以自己配置他們的IPv6地址.

clip_image010

 

這裏我犯了一個錯誤,感覺這個是IPv6 前綴通告是配置了地址以後就自己有的一個機制。

實驗結果並不是這樣,我在R1和R2之間抓包,沒有抓到ICMPv6 type = 134的報文,然後我又在網上查閱相關資。

爲什麼會這樣,因爲我忽略了一點很重要的,自動配置這個功能是僅僅限於路由器對PC終端之間的行爲,路由器都不能支持這個auto config,所以爲什麼路由器要發前綴通告給鄰居直連路由器呢?

後來我用路由器直連PC,得到了我想要的結果,PC自動獲取到了IP地址,並且前綴和2012::/64是一樣的.

:) 到這個時候我的心才穩下來。呵呵。下面是詳細的實驗結果:

clip_image012

 

在R1上面,用命令show ipv6 interface giga 1/0 prefix:

可以看到,R1有一個AD,是自己的前綴2012::/64:

clip_image014

 

呵呵,特意把giga 1/0的配置也show出來,2012::/64就是接口1/0的前綴。

在cisco上面,默認情況下有效生存期是30天.首選生存期是7天(604800s).

然後我做了一個實驗,用邁普的路由器連接一個PC.

然後在PC機上面使能IPv6的功能(xp需要安裝相關IPv6協議,默認是沒有的,win7默認就加載了IPv6的協議棧了)

圖譜圖:

MAIPU router------------PC

後來在PC上面成功獲取到了IP地址,前綴爲2012::/64,可以ping通路由器接口FE0 : 2012::1

我在路由器上面FE0配置的地址是:2012::1/64.

最後在PC機上獲得的地址是:

 clip_image016

clip_image018

 

在PC機接電腦以前,我就一直用wireshark進行抓包。抓到了ICMPv6 type=134的報文,下面是報文的具體格式:

clip_image020

 

當然也可以用一個命令來修改前綴公告:

ipv6 nd prefix.

clip_image022

 

還有一個小功能就是在接口上面禁止路由器公告。

在cisco 2011年1月的IOS上面,這個命令有點不一樣:

clip_image024

 

命令是: ipv6 nd ra suppress.

而以前老得IOS上面,命令卻是:

clip_image026

 

其實無所謂,我們關注的是原理,命令行只是實現原理的一個手段罷了。

其實這裏關於auto config還有幾個參數,下面把幾個參數都融合進行了一個接口中。

clip_image028

 

關於DAD和前綴重新編址,將在後續的文檔中做實驗進行驗證。

發佈了66 篇原創文章 · 獲贊 34 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章