1 DHCPv6概述
即插即用和自動配置是IPv6的一大優(yōu)勢,是目前研究的熱點之一。與IPv4相對應(yīng),IPv6中的“被動”地址分配協(xié)議是動態(tài)主機(jī)配置協(xié)議DHCPv6。
DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的動態(tài)主機(jī)配置協(xié)議)是針對IPv6編址方案設(shè)計的,為主機(jī)分配IPv6前綴、IPv6地址和其他網(wǎng)絡(luò)配置參數(shù)的協(xié)議。
與其他IPv6地址分配方式(手工配置、通過路由器公告消息中的網(wǎng)絡(luò)前綴無狀態(tài)自動配置等)相比,DHCPv6具有以下優(yōu)點:
1.不僅可以分配IPv6地址,還可以分配IPv6前綴,便于全網(wǎng)絡(luò)的自動配置和管理。
2.更好地控制地址的分配。通過DHCPv6不僅可以為主機(jī)分配的地址/前綴,還可以為特定主機(jī)分配特定的地址/前綴,以便于網(wǎng)絡(luò)管理。
除了IPv6前綴、IPv6地址外,還可以為主機(jī)分配DNS服務(wù)器、域名等網(wǎng)絡(luò)配置參數(shù)。
因為DHCPv6利用了IPv6協(xié)議某些內(nèi)在增強(qiáng)功能,所以與DHCPv4有一些顯著的不同,概述如下:
1.DHCP Client一經(jīng)引導(dǎo),就有了一個本地鏈路IP地址,DHCP Client可利用它與DHCP Server或DHCP Relay通信。
2.DHCP Client用組播地址與DHCP Server通信,而不是廣播地址。
3.IPv6允許每個接口使用多個IP地址,所以DHCPv6在請求時可以提供多個地址。
4.沒有BOOTP兼容性要求。
5.可以使用information-request/reply消息完成簡單配置。
6.Client可以發(fā)送多個互不相關(guān)請求給同一或不同的Server。
7.Server使用reconfigure消息通知Client重配置網(wǎng)絡(luò)參數(shù)。
2 DHCPv6協(xié)議的實現(xiàn)過程
2.1 DHCPv6地址/前綴分配過程
DHCPv6服務(wù)器為客戶端分配地址/前綴的過程分為兩類:
-交互兩個消息的快速分配過程
-交互四個消息的分配過程
交互兩個消息的快速分配過程
圖2-1:地址/前綴快速分配過程
(1)DHCPv6客戶端在發(fā)送的Solicit消息中攜帶Rapid Commit選項,標(biāo)識客戶端希望服務(wù)器能夠快速為其分配地址/前綴和網(wǎng)絡(luò)配置參數(shù);
(2)如果DHCPv6服務(wù)器支持快速分配過程,則直接返回Reply消息,為客戶端分配IPv6地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)。如果DHCPv6服務(wù)器不支持快速分配過程,則采用交互四個消息的分配過程為客戶端分配IPv6地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)。
交互四個消息的分配過程
圖2-2:交互四個消息的分配過程
交互四個消息分配過程的簡述如下表:
步驟
發(fā)送的消息
說明
1
Solicit
DHCPv6客戶端發(fā)送該消息,請求DHCPv6服務(wù)器為其分配IPv6地址/前綴和網(wǎng)絡(luò)配置參數(shù)。
2
Advertise
如果Solicit消息中沒有攜帶Rapid Commit選項,或Solicit消息中攜帶Rapid Commit選項,但服務(wù)器不支持快速分配過程,則DHCPv6服務(wù)器回復(fù)該消息,通知客戶端可以為其分配的地址/前綴和網(wǎng)絡(luò)配置參數(shù)。
3
Request
如果DHCPv6客戶端接收到多個服務(wù)器回復(fù)的Advertise消息,則根據(jù)消息接收的先后順序、服務(wù)器優(yōu)先級等,選擇其中一臺服務(wù)器,并向該服務(wù)器發(fā)送Request消息,請求服務(wù)器確認(rèn)為其分配地址/前綴和網(wǎng)絡(luò)配置參數(shù)。
4
Reply
DHCPv6服務(wù)器回復(fù)該消息,確認(rèn)將地址/前綴和網(wǎng)絡(luò)配置參數(shù)分配給客戶端使用。
表2-1:交互四個消息分配過程
DHCPv6服務(wù)器分配給客戶端的IPv6地址/前綴具有一定的租借期限。租借期限由有效生命期(Valid Lifetime)決定。地址/前綴的租借時間到達(dá)有效生命期后,DHCPv6客戶端不能再使用該地址/前綴。在有效生命期到達(dá)之前,如果DHCPv6客戶端希望繼續(xù)使用該地址/前綴,則需要更新地址/前綴租約。
圖2-3:通過Renew更新地址/前綴租約
如圖2-3所示,地址/前綴租借時間到達(dá)時間T1(推薦值為首選生命期Preferred Lifetime的一半)時,DHCPv6客戶端會向為它分配地址/前綴的DHCPv6服務(wù)器單播發(fā)送Renew報文,以進(jìn)行地址/前綴租約的更新。如果客戶端可以繼續(xù)使用該地址/前綴,則DHCPv6服務(wù)器回應(yīng)續(xù)約成功的Reply報文,通知DHCPv6客戶端已經(jīng)成功更新地址/前綴租約;如果該地址/前綴不可以再分配給該客戶端,則DHCPv6服務(wù)器回應(yīng)續(xù)約失敗的Reply報文,通知客戶端不能獲得新的租約。
圖2-4:通過Rebind更新地址/前綴租約
如圖2-4所示,如果在T1時發(fā)送的Renew請求更新租約,但是沒有收到DHCPv6服務(wù)器的回應(yīng)報文,則DHCPv6客戶端會在T2(推薦值為首選生命期的0.875倍)時,向所有DHCPv6服務(wù)器組播發(fā)送Rebind報文請求更新租約。如果客戶端可以繼續(xù)使用該地址/前綴,則DHCPv6服務(wù)器回應(yīng)續(xù)約成功的Reply報文,通知DHCPv6客戶端已經(jīng)成功更新地址/前綴租約;如果該地址/前綴不可以再分配給該客戶端,則DHCPv6服務(wù)器回應(yīng)續(xù)約失敗的Reply報文,通知客戶端不能獲得新的租約;如果DHCPv6客戶端沒有收到服務(wù)器的應(yīng)答報文,則到達(dá)有效生命期后,客戶端停止使用該地址/前綴。
2.3DHCPv6無狀態(tài)配置過程
DHCPv6無狀態(tài)配置簡介
DHCPv6可以向IPv6主機(jī)提供有狀態(tài)的地址配置或無狀態(tài)的配置設(shè)置。
無狀態(tài)地址自動配置用于對鏈接本地地址和其他非鏈接本地地址兩者進(jìn)行配置,方法是與相鄰路由器交換路由器請求和路由器公告消息。
有狀態(tài)地址自動配置通過使用如DHCP的配置協(xié)議,用來配置非鏈接本地地址。
IPv6主機(jī)自動執(zhí)行無狀態(tài)地址自動配置,并在相鄰路由器發(fā)送的路由器公告消息中使用基于以下標(biāo)記的配置協(xié)議(如DHCPv6):
托管地址配置標(biāo)記,也稱為M標(biāo)記。設(shè)置為1時,此標(biāo)記指示主機(jī)使用配置協(xié)議來獲取有狀態(tài)地址。
結(jié)合M和O標(biāo)記的值可以產(chǎn)生以下組合:
組合
意義
MO=00
此組合對應(yīng)不具有DHCPv6基礎(chǔ)結(jié)構(gòu)的網(wǎng)絡(luò)。主機(jī)使用非鏈接本地地址的路由器公告以及其他方法(如手動配置)來配置其他設(shè)置。
MO=11
DHCPv6用于這兩種地址(鏈接本地地址和其他非鏈接本地地址)和其他配置設(shè)置。該組合稱為DHCPv6有狀態(tài),其中DHCPv6將有狀態(tài)地址分配給IPv6主機(jī)。
MO=01
DHCPv6不用于分配地址,僅用來分配其他配置設(shè)置。相鄰路由器配置為通告非鏈接本地地址前綴,IPv6主機(jī)從中派生出無狀態(tài)地址。此組合稱為DHCPv6無狀態(tài):DHCPv6不為IPv6主機(jī)分配有狀態(tài)地址,但分配無狀態(tài)配置設(shè)置。
MO=10
在此組合中,DHCPv6用于地址配置,但不用于其他設(shè)置。因為IPv6主機(jī)通常需要使用其他設(shè)置(如域名系統(tǒng)(DNS)服務(wù)器的IPv6地址)進(jìn)行配置,所以這是一種不太可能的組合。
表2-2:MO標(biāo)記值的組合描述
DHCPv6服務(wù)器可以為已經(jīng)具有IPv6地址/前綴的客戶端分配其他網(wǎng)絡(luò)配置參數(shù),該過程稱為無狀態(tài)配置。
DHCPv6無狀態(tài)配置是指設(shè)備通過地址無狀態(tài)自動配置獲取IPv6地址后,利用DHCPv6服務(wù)器獲得除地址以外的其他網(wǎng)絡(luò)配置參數(shù),如DNS服務(wù)器、域名等。在DHCPv6無狀態(tài)配置過程中,DHCPv6服務(wù)器不需要保存客戶端的狀態(tài)信息,因此稱為DHCPv6無狀態(tài)配置。
設(shè)備通過地址無狀態(tài)自動配置功能成功獲取IPv6地址,且接收到的RA(Router Advertisement,路由器通告)報文中的M標(biāo)志位(Managedaddress configuration flag,托管地址配置標(biāo)志位)為0,O標(biāo)志位(Other stateful configuration flag, 其他配置標(biāo)志位)為1,則設(shè)備會自動啟動DHCPv6無狀態(tài)配置功能,以獲取除地址以外的其他網(wǎng)絡(luò)配置參數(shù)。
DHCPv6無狀態(tài)配置過程
圖2-5:DHCPv6無狀態(tài)配置工作過程
DHCPv6無狀態(tài)配置的具體過程為:
(1) 客戶端以組播的方式向DHCPv6服務(wù)器發(fā)送information-request報文,該報文中攜帶Option request選項,指定客戶端要從服務(wù)器獲取的配置參數(shù)。
(2) 服務(wù)器收到information-Request報文后,為客戶端分配網(wǎng)絡(luò)配置參數(shù),并單播發(fā)送Reply報文將網(wǎng)絡(luò)配置參數(shù)返回給客戶端。
(3) 客戶端檢查Reply報文中提供的信息,如果與information-Request報文中請求的配置參數(shù)相符,則按照Reply報文中提供的參數(shù)進(jìn)行網(wǎng)絡(luò)配置;否則,忽略該參數(shù)。如果接收到多個Reply報文,客戶端將選擇最先收到的Reply報文,并根據(jù)該報文中提供的參數(shù)完成客戶端無狀態(tài)配置。
2.4 DHCPv6中繼工作過程
圖2-6:DHCPv6中繼的工作過程
通過DHCPv6中繼動態(tài)獲取IPv6地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)的過程中,DHCPv6客戶端與DHCPv6服務(wù)器的處理方式與不通過DHCPv6中繼時的處理方式基本相同。圖2-6中只說明DHCPv6中繼的轉(zhuǎn)發(fā)過程
(1) DHCPv6客戶端向所有DHCPv6服務(wù)器和中繼的組播地址FF02::1:2發(fā)送請求;
(2) DHCPv6中繼接收到請求后,將其封裝在Reply-forward報文的中繼消息選項(Relay Message Option)中,并將Relay-forward報文發(fā)送給DHCPv6服務(wù)器;
(3) DHCPv6服務(wù)器從Relay-forward報文中解析出客戶端的請求,為客戶端選取IPv6地址和其他參數(shù),構(gòu)造應(yīng)答消息,將應(yīng)答消息封裝在Relay-reply報文的中繼消息選項中,并將Relay-reply報文發(fā)送給DHCPv6中繼;
(4) DHCPv6中繼從Relay-Reply報文中解析出服務(wù)器的應(yīng)答,轉(zhuǎn)發(fā)給DHCPv6客戶端;
DHCPv6客戶端根據(jù)DHCPv6服務(wù)器分配的IPv6地址/前綴和其他參數(shù)進(jìn)行網(wǎng)絡(luò)配置。
2.5 DHCPv6網(wǎng)絡(luò)組成DHCPv6采用客戶機(jī)/服務(wù)器(C/S-Client/Server)工作模式,因此,其基本組成為兩部分,即DHCPv6 Server及DHCPv6 Client。但是,在某些場合,為了避免在每個通信子網(wǎng)都設(shè)置DHCPv6 Server而又能實現(xiàn)通信子網(wǎng)間的DHCPv6 Client客戶實現(xiàn)動態(tài)配置,需要增加DHCPv6中繼代理(DHCPv6 RELAY AGENT)來收集相關(guān)信息,并在DHCPv6服務(wù)器與客戶機(jī)之間中繼和回傳(Echo)相關(guān)信息。相關(guān)協(xié)議規(guī)定:是否支持中繼代理人功能是DHCPv6服務(wù)器的可選擇的功能。
圖2-7:DHCPv6網(wǎng)絡(luò)組成
1.DHCPv6 Server的功能
DHCPv6 Server負(fù)責(zé)為DHCPv6客戶端分配IPv6地址、IPv6前綴和其他網(wǎng)絡(luò)配置參數(shù)的設(shè)備。DHCPv6服務(wù)器不僅可以為DHCPv6客戶端分配IPv6地址,還可以為其分配IPv6前綴。如圖2-2所示,DHCPv6服務(wù)器為DHCPv6客戶端分配IPv6前綴后,DHCPv6客戶端(當(dāng)其為網(wǎng)絡(luò)路由器時)向所在網(wǎng)絡(luò)發(fā)送包含該前綴信息的RA(Router Advertisement)消息,以便網(wǎng)絡(luò)內(nèi)的主機(jī)根據(jù)該前綴自動配置IPv6地址。它遵照DHCPv6接受并響應(yīng)客戶的配置請求,完成地對IP地址與其他參數(shù)的分配及回收管理,對配置信息、安全信息等進(jìn)行管理,完成對配置信息進(jìn)行監(jiān)視以及其它網(wǎng)絡(luò)管理系統(tǒng)的協(xié)調(diào)工作。在選擇支持DHCPv6中繼代理選項時,還需要監(jiān)視和接收中斷信息,實現(xiàn)跨網(wǎng)配置。
2.DHCPv6 Client的功能
DHCPv6 Client是能動態(tài)獲取IPv6地址、IPv6前綴或其他網(wǎng)絡(luò)配置參數(shù)的設(shè)備。它遵照DHCPv6向Server組播配置請求,根據(jù)多個Server的應(yīng)答,選擇性地向某Server作肯定性確認(rèn),完成系統(tǒng)配置后利用新配置進(jìn)行活動;對可重用配置信息,在使用期限到達(dá)后釋放相應(yīng)的資源。
3.DHCPv6 RELAY的功能
為了DHCPv6 Client使用別的子網(wǎng)上的DHCPv6 Server而設(shè)置的,在無DHCPv6 Server的子網(wǎng)中,它扮演服務(wù)器代理和配置信息中繼設(shè)備的功能。