IPv6 組網中是如何發現鄰居的?IPv6 地址配置方式 SLAAC 和 DHCPv6 又是啥?
本期給大家分享IPv6相關知識。
ICMPv6協議概述
- ICMPv6是IPv6中重要的基礎協議之一;
- lCMPv6主要用于網絡診斷、傳遞錯誤信息、鄰居發現、組播發現、IPv6無狀態地址配置等;
以下是ICMPv6報文的基本格式:
- Type字段定義了ICMPv6報文的消息類型;
- Code字段取決于Type值,可將ICMPv6報文細分為更具體的用途。
l以下是ICMPv6報文的一些重要的用途和分類,其中鄰居發現是最重要的部分,是IPv6鄰居節點互相通信的基礎。
確定鄰居鏈路層地址
- 鄰居發現的第一個作用是確定鄰居的鏈路層地址。IPv6協議體系淘汰了ARP,而使用ICMPv6來發現鄰居的鏈路層地址;
- 確定鄰居鏈路層地址通過NS和NA交互實現,其中NS即NeighborSolicitation(鄰居發現),NA即NeighborAdvertisement(鄰居公告);
確定鄰居鏈路層地址的工作流程如下:
重復地址檢測
- 鄰居發現的另一個作用是重復地址檢測(Duplicate Address Detection,簡稱DAD);
- 重復地址檢測也是通過NS和NA交互實現;
重復地址檢測的工作原理如下:
路由器發現
- 通過鄰居發現報文,還可以發現網絡中的路由器;
- 路由器發現通過RA和RS交互實現,其中RA即RouterSolicitation(路由器發現),RS即RouterAdvertisement(路由器公告)
路由器發現的工作原理如下:
IPv6地址自動配置
- IPv6地址自動配置可以分為無狀態地址自動配置(SLAAC)和有狀態地址自動配置(DHCPv6);
- 使用無狀態地址自動配置還是有狀態地址自動配置由服務器決定;
- 客戶端通過服務器回復的RA報文中的M、O標志位決定使用無狀態還是有狀態地址配置;
- 由于IPv6地址資源充足,在實際應用中終端獲取到的都是IPv6公網地址。
(1) SLAAC:無狀態地址自動配置
無狀態地址自動配置協議( Stateless Address Autoconfiguration,簡稱SLAAC)適用于服務器不需要嚴格控制客戶端所使用IPv6地址的場景。
無狀態地址自動配置協議通過RA和RS交互實現,詳細流程如下:
(2) DHCPv6:有狀態地址自動配置
Dynamic Host Configuration Protocol for IPv6 ,簡稱DHCPv6 ,是專用于IPv6地址自動配置的協議,通過DHCPv6獲取IPv6地址也稱為有狀態地址自動配置。
DHCPv6定義了多種報文類型(Msg-type),最重要的地址申請主要由Solicit、Advertise、Request、Reply四種類型的報文交互實現。
有狀態地址自動配置適用于服務器需要對客戶端使用的IPv6地址進行嚴格控制的場景;
有狀態地址自動配置地址獲取主要通過DHCPv6交互實現,其中也涉及到路由器發現和重復地址檢測的過程,其主要流程如下: