原理:
IPv6中IPv4中DHCP很大的差别,主要是因為IPv6中不僅僅是可以通過DHCPv6或者IP位址,還可以通過RA/RD封包從自己最近的路由器擷取IP位址。 DHCPv6可以向IPv6主機提供有狀态的位址配置或無狀态的配置設定:
無狀态位址自動配置用于對連結本地位址和其他非連結本地位址兩者進行配置,方法是與相鄰路由器交換路由器請求和路由器公告消息。
有狀态位址自動配置通過使用如DHCP的配置協定,用來配置非連結本地位址。
IPv6主機自動執行無狀态位址自動配置,并在相鄰路由器發送的路由器公告消息中使用基于以下标記的配置協定(如DHCPv6):
托管位址配置标記,也稱為M标記。設定為1時,此标記訓示主機使用配置協定來擷取有狀态位址。其他有狀态配置标記,也稱為O标記。設定為1時,此标記訓示主機使用配置協定來擷取其他配置設定。結合M和O标記的值可以産生以下組合:
MO=00(無DHCPv6)
此組合對應不具有DHCPv6基礎結構的網絡。主機使用非連結本地位址的路由器公告以及其他方法(如手動配置)來配置其他設定。
MO=11
DHCPv6用于這兩種位址(連結本地位址和其他非連結本地位址)和其他配置設定。該組合稱為DHCPv6有狀态,其中DHCPv6将有狀态位址配置設定給IPv6主機。
MO=01
DHCPv6不用于配置設定位址,僅用來配置設定其他配置設定。相鄰路由器配置為通告非連結本地位址字首,IPv6主機從中派生出無狀态位址。此組合稱為DHCPv6無狀态:DHCPv6不為IPv6主機配置設定有狀态位址,但配置設定無狀态配置設定。
MO=10(X,沒有這樣使用)
在此組合中,DHCPv6用于位址配置,但不用于其他設定。因為IPv6主機通常需要使用其他設定(如域名系統(DNS)伺服器的IPv6位址)進行配置,是以這是一種不太可能的組合。
DHCPv6無狀态過程如下:
用戶端以多點傳播的方式向DHCPv6伺服器發送information-request封包,該封包中攜帶Option request選項,指定用戶端要從伺服器擷取的配置參數。
伺服器收到information-Request封包後,為用戶端配置設定網絡配置參數,并單點傳播發送Reply封包将網絡配置參數傳回給用戶端。
用戶端檢查Reply封包中提供的資訊,如果與information-Request封包中請求的配置參數相符,則按照Reply封包中提供的參數進行網絡配置;否則,忽略該參數。如果接收到多個Reply封包,用戶端将選擇最先收到的Reply封包,并根據該封包中提供的參數完成用戶端無狀态配置。
DHCPv6中繼工作原理:
DHCPv6用戶端向所有DHCPv6伺服器和中繼的多點傳播位址FF02::1:2發送請求;
DHCPv6中繼接收到請求後,将其封裝在Reply-forward封包的中繼消息選項(Relay Message Option)中,并将Relay-forward封包發送給DHCPv6伺服器;
DHCPv6伺服器從Relay-forward封包中解析出用戶端的請求,為用戶端選取IPv6位址和其他參數,構造應答消息,将應答消息封裝在Relay-reply封包的中繼消息選項中,并将Relay-reply封包發送給DHCPv6中繼;
DHCPv6中繼從Relay-Reply封包中解析出伺服器的應答,轉發給DHCPv6用戶端;
DHCPv6用戶端根據DHCPv6伺服器配置設定的IPv6位址/字首和其他參數進行網絡配置。
中繼+有狀态位址配置實驗:
前提:
保證Relay與使用者相連網段能和Sever互通,因為他們是用這兩個IP位址進行通信的,是以需要配置對應的全球單點傳播位址和動态路由,這裡省略。
Sever上主要配置:
dhcpv6 pool guest //配置位址池,與中繼g0/0/1接口在同一網段
address prefix 2001::/64
excluded-address 2001::1
dns-server 3000::1
interface GigabitEthernet0/0/0 //進入接口下使用位址池
ipv6 enable
ipv6 address 2002::1/64
dhcpv6 server guest
中繼上主要配置:
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address 2002::2/64
interface GigabitEthernet0/0/1
ipv6 enable
ipv6 address 2001::1/64
ipv6 nd autoconfig managed-address-flag //設定M位,表示位址和字首由DHCP伺服器配置設定