ipv6 无状态地址管理
一、ipv6 無狀態地址管理
與IPv4通過DHCP下發地址方式不同的是,IPv6地址可以不通過DHCP方式獲取。歸功于IPv6所支持的無狀態地址配置機制,由RFC4862定義。
1.1 IPv6的兩種單播地址類型
1)本地鏈路地址
IPv6的地址類型。IPv6單播地址可以分為本地鏈路地址和全局地址。
IPv6本地鏈路地址以fe80::/10開頭,通常由系統自動為每個網絡設備生成。例如下圖中的fe80::250:56ff:fe86:1b10就是IPv6 link local地址。
有了這個地址,在同一個交換機下面的機器就能直接通過這個地址通訊啦,不需要再配置別的地址。
2)全局地址
全局地址是通過IPv6前綴下發所拿到的一個全局可達的IPv6地址,例如下圖中的fd4d:e0f1:f1db::250:56ff:fe86:1b10。有了這個全局IPv6地址,就能跟世界上任何一個IPv6全局地址通訊了,類似于通俗說的公網地址。所以IPv6本地鏈路地址只有本地鏈路可達,而IPv6全局地址則所有IPv6網絡都可達。
1.2 IPv6無狀態地址配置
1)EUI-64網絡唯一號
如果仔細觀察兩個地址,會發現兩個地址的后64位完全一樣,都是250:56ff:fe86:1b10!這可不是巧合,這就是IPv6的一種地址生成機制。后面這串64位的地址叫EUI-64網絡唯一號。這個地址就是通過mac地址和一定的規則變換來的。
轉換規則如下,再加上fe80::/64前綴就是本地鏈路地址fe80::250:56ff:fe86:1b10
2)IPv6無狀態地址配置
既然知道IPv6地址后64bit的網絡唯一號是如何生成的之后,看看這前64bit的前綴是怎么下發的了。首先當這個網絡設備啟動之后,會向路由器發送一個路由請求RS(Router Solicitation)。地址都沒配好呢怎么知道路由器在哪?其實這個請求發往的目標IP地址是FF02::2,這是一個路由器多播地址,是一個約定俗成的地址,如果是一個IPv6路由器,就得監聽這個多播地址。那這個地址對應的mac是33:33:00:00:00:02,這也是根據規定來的,多播地址mac開頭都是33:33,后面則是多播地址的最后32位。路由器受到RS請求之后,會回復一個RA(Router Advertisement)消息,這個消息里面就會帶有一個IPv6地址前綴啦,然后系統會把前綴和EUI64合并生成一個全局IPv6地址。
總結:主機或路由器從RA報文里獲得64位前綴,然后通過EUI-64規范自動生成64bit的接口標識,然后得到IPV6單播地址。默認情況下,路由器發布RA報文是處于抑制狀態(也就是不發送),避免占用鏈路帶寬。需要使用命令undo ipv6 nd ra halt,解除抑制RA報文發送。路由器發現示例:如下圖
1.3 無狀態地址配置兩種情況
主動(RA),被動(RS)
1.3.1 路由器通告RA(router advertisement)
報文:路由器周期組播發送RA報文,報文中會含有網絡的前綴消息,以及其他標志位信息。RA報文type字段值=134.
在R1接口在配置了IPV6單播地址2012::/64,并且開啟接口RA報文。type=134.路由器會周期發送RA報文,里面包含前綴2012::/64。
報文的源IP為AR1的G0/0/0的鏈路本地地址,目的IPV6地址為FF02::1所有節點組播地址;源MAC是AR1的MAC,目的MAC是,目的IP對應的組播MAC(3333-0000-0001)
RA報文中的Flags字段:其中的含義
M位:表示是否需要使用DHCPv6來獲取IPV6單播地址
M=0(默認)表示使用非DHCPv6來獲取IPV6單播地址
M=1,表示使用DHCPv6來獲取IPV6單播地址
O位:表示是否需要使用DHCPv6來獲取其他參數(DNS等等)
O=0(默認)表示不需要使用DHCPv6來獲取其他參數
O=1表示使用DHCPv6獲取其他參數
前綴字段里面的Flags
L位:表示該RA消息前綴是否分配給本地鏈路
L=1(默認)表示該RA消息中前綴是分配給本地鏈路
L=0表示…
A位:表示該前綴能不能用于無狀態自動配置
A=1(默認)表示該前綴可以用于無狀態自動配置
A=0表示該前綴不能被用于無狀態自動配置
以上字段中值都可以通過命令修改
1.3.2 路由器請求RS(router solicitation)
報文:為了盡快獲得前綴進行通信,主機可以發送RS報文來請求,路由器收到后會回復RA報文,RS報文中type字段=133.
RS報文,type=133.。源IP地址為發這個報文的主機鏈路本地地址(前提是通過DAD檢測),目的地址為FF02::1(所以組播節點地址)。產品手冊上為FF02::2
路由器發現示例
源MAC為主機MAC。目的MAC為FF02::1對應的組播MAC:3333-0000-0001.通過RA報文獲取的路由前綴,經過EUI-64后,會對該地址進行DAD檢測,通過了就可以使用,沒通過就需要手工配置。
總結
以上是生活随笔為你收集整理的ipv6 无状态地址管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把代码和环境做成docker镜像_Jen
- 下一篇: 想在社会上混 就记住这20句