DHCPv6協(xié)議 來源于: https://blog.csdn.net/msdh_it/article/details/75557865 ? 1. 定義 IPv6 動(dòng)態(tài)主機(jī)配置協(xié)議DHCPv6(Dynamic Host Configuration Protocol for IPv6)是針對(duì)IPv6編址方案設(shè)計(jì),為主機(jī)分配IPv6 地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)的一種有狀態(tài)協(xié)議。 2. 目的 IPv6 協(xié)議具有地址空間巨大的特點(diǎn),但同時(shí)長達(dá)128 比特的IPv6 地址又要求高效合理的地址自動(dòng)分配和管理策略。IPv6 無狀態(tài)地址配置方式(參看協(xié)議RFC2462)是目前廣泛采用的IPv6 地址自動(dòng)配置方式。配置了該協(xié)議的主機(jī)只需相鄰路由器開啟IPv6 路由通告功能,即可以根據(jù)通告報(bào)文包含的前綴信息自動(dòng)配置本機(jī)地址。 無狀態(tài)地址配置方案中路由器并不記錄所連接的IPv6 主機(jī)的具體地址信息,可管理性差。而且當(dāng)前無狀態(tài)地址配置方式不能使IPv6 主機(jī)獲取DNS 服務(wù)器的IPv6 地址等配置信息,在可用性上有一定缺陷。對(duì)于互聯(lián)網(wǎng)服務(wù)提供商(ISP)來說,也沒有相關(guān)的規(guī)范指明如何向路由器自動(dòng)分配IPv6 前綴,所以在部署IPv6 網(wǎng)絡(luò)時(shí),只能采用手動(dòng)配置的方法為路由交換設(shè)備配置IPv6 地址。 DHCPv6 技術(shù)解決了這一問題。DHCPv6 屬于一種有狀態(tài)地址自動(dòng)配置協(xié)議。在有狀態(tài)地址配置過程中,DHCPv6 服務(wù)器分配一個(gè)完整的IPv6 地址給主機(jī),并提供DNS 服務(wù)器地址等其他配置信息,這中間可能通過DHCPv6 中繼轉(zhuǎn)發(fā)DHCPv6 報(bào)文,最終服務(wù)器能把分配的IPv6 地址和客戶端的進(jìn)行綁定,從而增強(qiáng)了網(wǎng)絡(luò)的可管理性。 與其他IPv6 地址分配方式(手工配置、通過路由器通告消息中的網(wǎng)絡(luò)前綴無狀態(tài)自動(dòng)配置等)相比,DHCPv6 具有以下優(yōu)點(diǎn): ? 更好地控制IPv6 地址的分配。DHCPv6 方式不僅可以記錄為IPv6 主機(jī)分配的地址,還可以為特定的IPv6 主機(jī)分配特定的地址,以便于網(wǎng)絡(luò)管理。 ? DHCPv6 支持為網(wǎng)絡(luò)設(shè)備分配IPv6 前綴,便于全網(wǎng)絡(luò)的自動(dòng)配置和網(wǎng)絡(luò)層次性管理。 ? 除了為IPv6 主機(jī)分配IPv6 地址/前綴外,還可以分配DNS 服務(wù)器IPv6 地址等網(wǎng)絡(luò)配置參數(shù)。 3. 協(xié)議簡介 動(dòng)態(tài)主機(jī)配置協(xié)議 (DHCP) 曾設(shè)計(jì)用來處理向計(jì)算機(jī)分配 IP 地址和其他網(wǎng)絡(luò)信息,以便計(jì)算機(jī)可以在網(wǎng)絡(luò)上自動(dòng)通信。通過使用 IPv6 網(wǎng)絡(luò),實(shí)際上不需要 DHCP 來配置地址,但是有充分的理由來使用它。DHCP for IPv6 (DHCPv6) 可以向 IPv6 主機(jī)提供有狀態(tài)的地址配置或無狀態(tài)的配置設(shè)置。IPv6 主機(jī)可以使用多種方法來配置地址: 無狀態(tài)地址自動(dòng)配置 用于對(duì)鏈接本地地址和其他非鏈接本地地址兩者進(jìn)行配置,方法是與相鄰路由器交換路由器請(qǐng)求和路由器公告消息。 有狀態(tài)地址自動(dòng)配置 通過使用如 DHCP 的配置協(xié)議,用來配置非鏈接本地地址。 DHCPv6 基本架構(gòu) DHCPv6 基本構(gòu)架如圖3-1所示。 DHCPv6 基本協(xié)議架構(gòu)中,主要包括以下三種角色: ? DHCPv6 Client: DHCPv6 客戶端,通過與DHCPv6 服務(wù)器進(jìn)行交互,獲取IPv6 地址/前綴和網(wǎng)絡(luò)配置信息,完成自身的地址配置功能。 ? DHCPv6 Relay: DHCPv6 中繼代理,負(fù)責(zé)轉(zhuǎn)發(fā)來自客戶端方向或服務(wù)器方向的DHCPv6 報(bào)文,協(xié)助DHCPv6 客戶端和DHCPv6 服務(wù)器完成地址配置功能。一般情況下,DHCPv6 客戶端通過本地鏈路范圍的組播地址與DHCPv6 服務(wù)器通信,以獲取IPv6 地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)。如果服務(wù)器和客戶端不在同一個(gè)鏈路范圍內(nèi),則需要通過DHCPv6 中繼代理來轉(zhuǎn)發(fā)報(bào)文,這樣可以避免在每個(gè)鏈路范圍內(nèi)都部署DHCPv6 服務(wù)器,既節(jié)省了成本,又便于進(jìn)行集中管理。 DHCPv6 基本協(xié)議架構(gòu)中,DHCPv6 中繼代理不是必須的角色。如果DHCPv6 客戶端和DHCPv6 服務(wù)器位于同一鏈路范圍內(nèi),或DHCPv6 客戶端和DHCPv6 服務(wù)器直接通過單播交互完成地址分配或信息配置的情況下,是不需要DHCPv6 中繼代理參與的。只有當(dāng)DHCPv6 客戶端和DHCPv6 服務(wù)器不在同一鏈路范圍內(nèi),或DHCPv6 客戶端和DHCPv6 服務(wù)器無法單播交互的情況下,才需要DHCPv6 中繼代理的參與。 ? DHCPv6 Server: DHCPv6 服務(wù)器,負(fù)責(zé)處理來自客戶端或中繼代理的地址分配、地址續(xù)租、地址釋放等請(qǐng)求,為客戶端分配IPv6 地址/前綴和其他網(wǎng)絡(luò)配置信息。 4. DHCPv6 基本概念 1. 組播地址 ? 在DHCPv6 協(xié)議中,客戶端不用配置DHCPv6 Server 的IPv6 地址,而是發(fā)送目的地址為組播地址的Solicit 報(bào)文來定位DHCPv6 服務(wù)器。 ? 在DHCPv4 協(xié)議中,客戶端發(fā)送廣播報(bào)文來定位服務(wù)器。為避免廣播風(fēng)暴,在IPv6 中,已經(jīng)沒有了廣播類型的報(bào)文,而是采用組播報(bào)文。DHCPv6 用到的組播地址有兩個(gè): ? FF02::1:2(All DHCP Relay Agents and Servers):所有DHCPv6 服務(wù)器和中繼代理的組播地址,這個(gè)地址是鏈路范圍的,用于客戶端和相鄰的服務(wù)器及中繼代理之間通信。所有DHCPv6 服務(wù)器和中繼代理都是該組的成員。 ? FF05::1:3(All DHCP Servers):所有DHCPv6 服務(wù)器組播地址,這個(gè)地址是站點(diǎn)范圍的,用于中繼代理和服務(wù)器之間的通信,站點(diǎn)內(nèi)的所有DHCPv6 服 務(wù)器都是此組的成員。 2. UDP 端口號(hào) ? DHCPv6 報(bào)文承載在UDPv6 上。 ? 客戶端監(jiān)聽的UDP 目的端口號(hào)是546。 ? 服務(wù)器、中繼代理監(jiān)聽的UDP 端口號(hào)是547。 3. DHCP 唯一標(biāo)識(shí)符(DUID) ? lDHCP 設(shè)備唯一標(biāo)識(shí)符DUID(DHCP Unique Identifier),每個(gè)服務(wù)器或客戶端有且只有一個(gè)唯一標(biāo)識(shí)符,服務(wù)器使用DUID 來識(shí)別不同的客戶端,客戶端則使用DUID 來識(shí)別服務(wù)器。 ? l客戶端和服務(wù)器DUID 的內(nèi)容分別通過DHCPv6 報(bào)文中的Client Identifier 和Server Identifier 選項(xiàng)來攜帶。兩種選項(xiàng)的格式一樣,通過option-code 字段的取值來區(qū)分是Client Identifier 還是Server Identifier 選項(xiàng)。 4. 身份聯(lián)盟(IA) ? 身份聯(lián)盟IA(Identity Association)是使得服務(wù)器和客戶端能夠識(shí)別、分組和管理一系列相關(guān)IPv6 地址的結(jié)構(gòu)。每個(gè)IA 包括一個(gè)IAID 和相關(guān)聯(lián)的配置信息。 ? 客戶端必須為它的每一個(gè)要通過服務(wù)器獲取IPv6 地址的接口關(guān)聯(lián)至少一個(gè)IA。客戶端用給接口關(guān)聯(lián)的IA 來從服務(wù)器獲取配置信息。每個(gè)IA 必須明確關(guān)聯(lián)到一個(gè)接口。 ? IA 的身份由IAID 唯一確定,同一個(gè)客戶端的IAID 不能出現(xiàn)重復(fù)。IAID 不應(yīng)因?yàn)樵O(shè)備的重啟等因素發(fā)生丟失或改變。__IA 中的配置信息由一個(gè)或多個(gè)IPv6 地址以及T1 和T2 生存期組成。IA 中的每個(gè)地址都有合法生存期和首選生存期。 ? 一個(gè)接口至少關(guān)聯(lián)一個(gè)IA,一個(gè)IA 可以包含一個(gè)或多個(gè)地址信息。 5. M/O 標(biāo)記 IPv6 主機(jī)自動(dòng)執(zhí)行無狀態(tài)地址自動(dòng)配置,并在相鄰路由器發(fā)送的路由器公告消息中使用基于以下標(biāo)記的配置協(xié)議(如 DHCPv6): 托管地址配置標(biāo)記,也稱為 M 標(biāo)記。路由器通告的RA 報(bào)文中的管理標(biāo)記,當(dāng)M 標(biāo)志位為1 時(shí),表示鏈路上的IPv6 主機(jī)采用DHCPv6 方式獲取IPv6 地址/前綴。其他有狀態(tài)配置標(biāo)記 ,也稱為 O 標(biāo)記。路由器通告的RA 報(bào)文中的其他配置標(biāo)記,當(dāng)O 標(biāo)志位為1 時(shí),表示鏈路上的IPv6 主機(jī)采用DHCPv6 方式獲取除IPv6 地址/前綴以外的其他網(wǎng)絡(luò)配置參數(shù)。 結(jié)合 M 和 O 標(biāo)記的值可以產(chǎn)生以下組合: M 和 O 標(biāo)記均設(shè)置為 0。 此組合對(duì)應(yīng)不具有 DHCPv6 基礎(chǔ)結(jié)構(gòu)的網(wǎng)絡(luò)。主機(jī)使用非鏈接本地地址的路由器公告以及其他方法(如手動(dòng)配置)來配置其他設(shè)置。 M 和 O 標(biāo)記均設(shè)置為 1。 DHCPv6 用于這兩種地址(鏈接本地地址和其他非鏈接本地地址)和其他配置設(shè)置。該組合稱為 DHCPv6 有狀態(tài),其中 DHCPv6 將有狀態(tài)地址分配給 IPv6 主機(jī)。 M 標(biāo)記設(shè)置為 0,O 標(biāo)記設(shè)置為 1。 DHCPv6 不用于分配地址,僅用來分配其他配置設(shè)置。相鄰路由器配置為通告非鏈接本地地址前綴,IPv6 主機(jī)從中派生出無狀態(tài)地址。此組合稱為 DHCPv6 無狀態(tài):DHCPv6 不為 IPv6 主機(jī)分配有狀態(tài)地址,但分配無狀態(tài)配置設(shè)置。 M 標(biāo)記設(shè)置為 1,O 標(biāo)記設(shè)置為 0。 在此組合中,DHCPv6 用于地址配置,但不用于其他設(shè)置。因?yàn)?IPv6 主機(jī)通常需要使用其他設(shè)置(如域名系統(tǒng) (DNS) 服務(wù)器的 IPv6 地址)進(jìn)行配置,所以這是一種不太可能的組合。 類似于 DHCP for IPv4,DHCPv6 基礎(chǔ)結(jié)構(gòu)的組件由下列各項(xiàng)構(gòu)成:請(qǐng)求配置的 DHCPv6 客戶端、提供配置的 DHCPv6 服務(wù)器、以及 DHCPv6 中繼代理(當(dāng)客戶端位于不具備 DHCPv6 服務(wù)器的子網(wǎng)上時(shí),它在客戶端和服務(wù)器之間傳遞信息)。 5. 報(bào)文封裝 DHCPv6 報(bào)文格式如圖5-1 所示。 DHCPv6的封包有兩種結(jié)構(gòu),即在中繼與客戶端上使用的報(bào)文結(jié)構(gòu)有時(shí)是不同的,在客戶端與服務(wù)器端報(bào)文結(jié)構(gòu)如下圖所示: 而在服務(wù)器與中繼代理端交互的報(bào)文結(jié)構(gòu)與客戶端與服務(wù)器端交互的報(bào)文是不同的,某種程度上顯得更為復(fù)雜一些,RFC3315中描述的這種報(bào)文結(jié)構(gòu)如圖: DHCPv6 報(bào)文類型 目前DHCPv6 定義了如下十三種類型報(bào)文,DHCPv6 服務(wù)器和DHCPv6 客戶端之間通過這十三種類型的報(bào)文進(jìn)行通信。下表將對(duì)DHCPv6 和DHCPv4 報(bào)文進(jìn)行類比。 DHCPv6 四個(gè)交互過程中的前兩個(gè)過程的報(bào)文格式: 1.solicit UDP報(bào)文:
client identifier option :客戶端標(biāo)識(shí)。 IA_NA option:包括一個(gè)IP為全0的填充選項(xiàng),IA_NA用于返回SERVER端分配給AP的IP地址。 option 60/17 option:這個(gè)60/17選項(xiàng)填充企業(yè)ID號(hào),SERVER將根據(jù)該ID號(hào)進(jìn)行地址的分配(企業(yè)ID號(hào)長度為四個(gè)字節(jié),類型為unsigned int)。 other options :其它選項(xiàng),比如ORO選項(xiàng)。 2.advertise UDP報(bào)文:
client identifier option:客戶端標(biāo)識(shí)。 server identifier options:服務(wù)器端標(biāo)識(shí)。 IA_NA option:SERVER填充了分配給AP的IP地址。 option 52 option:這個(gè)52選項(xiàng)填充的接口IPv6地址。 options 60/17:返回企業(yè)ID號(hào)信息(企業(yè)ID號(hào)長度為四個(gè)字節(jié),類型為unsigned int) other options:其它選項(xiàng),比如DNS選項(xiàng)。 3. 在request報(bào)文中也封裝option 60/17選項(xiàng) 在reply報(bào)文中也封裝了option 60/17 ,52選項(xiàng)供AP解析,具體格式可以參考solicit/advertise UDP報(bào)文。 6. DHCPv6 工作原理 DHCPv6 自動(dòng)分配分為DHCPv6 有狀態(tài)自動(dòng)分配和DHCPv6 無狀態(tài)自動(dòng)分配。 ? DHCPv6 有狀態(tài)自動(dòng)分配。DHCPv6 服務(wù)器自動(dòng)配置IPv6 地址/前綴,同時(shí)分配DNS、NIS、SNTP 服務(wù)器等網(wǎng)絡(luò)配置參數(shù)。 ? DHCPv6 無狀態(tài)自動(dòng)分配。主機(jī)IPv6 地址仍然通過路由通告方式自動(dòng)生成,DHCP服務(wù)器只分配除IPv6 地址以外的配置參數(shù),包括DNS、NIS、SNTP 服務(wù)器地址等參數(shù)。 DHCPv6 有狀態(tài)自動(dòng)分配 IPv6 主機(jī)在地址分配之前,由IPv6 節(jié)點(diǎn)生成鏈路本地地址并且DAD 通過后,首先有一個(gè)鏈路路由器發(fā)現(xiàn)過程,即IPv6 節(jié)點(diǎn)發(fā)送RS 報(bào)文,鏈路路由器收到RS 報(bào)文后,回應(yīng)RA 報(bào)文。如果IPv6 節(jié)點(diǎn)收到的RA 報(bào)文中M 標(biāo)記為1,O 標(biāo)記位為1,則表示IPv6 節(jié)點(diǎn)通過有狀態(tài)DHCPv6 方式獲取地址和其他配置參數(shù)(例如DNS 服務(wù)器的IPv6 地址等)。 DHCPv6 服務(wù)器為客戶端分配地址/前綴的過程分為兩類: ? DHCPv6 四步交互分配過程 ? DHCPv6 兩步交互快速分配過程 DHCPv6 四步交互 四步交互常用于網(wǎng)絡(luò)中有多個(gè)DHCPv6 服務(wù)器的情況。DHCPv6 客戶端首先通過組播發(fā)送Solicit 報(bào)文來定位可以為其提供服務(wù)的DHCPv6 服務(wù)器,在收到多個(gè)DHCPv6 服務(wù)器的Advertise 報(bào)文后,根據(jù)DHCPv6 服務(wù)器的優(yōu)先級(jí)選擇一個(gè)為其分配地址和配置信息的服務(wù)器,接著通過Request/Reply 報(bào)文交互完成地址申請(qǐng)和分配過程。 DHCPv6 服務(wù)器端如果沒有配置使能兩步交互,無論客戶端報(bào)文中是否包含Rapid Commit選項(xiàng),服務(wù)器都采用四步交互方式為客戶端分配地址和配置信息。 DHCPv6 四步交互地址分配過程如圖6-1 所示。 圖6-1 DHCPv6 四步交互地址分配過程 DHCPv6 四步交互地址分配過程如下: 1. DHCPv6 客戶端發(fā)送Solicit 報(bào)文,請(qǐng)求DHCPv6 服務(wù)器為其分配IPv6 地址和網(wǎng)絡(luò)配置參數(shù)。 2. 如果Solicit 報(bào)文中沒有攜帶Rapid Commit 選項(xiàng),或Solicit 報(bào)文中攜帶RapidCommit 選項(xiàng),但服務(wù)器不支持快速分配過程,則DHCPv6 服務(wù)器回復(fù)Advertise 報(bào)文,通知客戶端可以為其分配的地址和網(wǎng)絡(luò)配置參數(shù)。 3. 如果DHCPv6 客戶端接收到多個(gè)服務(wù)器回復(fù)的Advertise 報(bào)文,則根據(jù)Advertise 報(bào)文中的服務(wù)器優(yōu)先級(jí)等參數(shù),選擇優(yōu)先級(jí)最高的一臺(tái)服務(wù)器,并向所有的服務(wù)器發(fā)送Request 組播報(bào)文,該報(bào)文中攜帶已選擇的DHCPv6 服務(wù)器的DUID。 4. DHCPv6 服務(wù)器回復(fù)Reply 報(bào)文,確認(rèn)將地址和網(wǎng)絡(luò)配置參數(shù)分配給客戶端使用。 DHCPv6 兩步交互 兩步交互常用于網(wǎng)絡(luò)中只有一個(gè)DHCPv6 服務(wù)器的情況。DHCPv6 客戶端首先通過組播發(fā)送Solicit 報(bào)文來定位可以為其提供服務(wù)的DHCPv6 服務(wù)器,DHCPv6 服務(wù)器收到客戶端的Solicit 報(bào)文后,為其分配地址和配置信息,直接回應(yīng)Reply 報(bào)文,完成地址申請(qǐng)和分配過程。 兩步交換可以提高DHCPv6 過程的效率,但在有多個(gè)DHCPv6 服務(wù)器的網(wǎng)絡(luò)中,多個(gè)DHCPv6 服務(wù)器都可以為DHCPv6 客戶端分配IPv6 地址,回應(yīng)Reply 報(bào)文,但是客戶端實(shí)際只可能使用其中一個(gè)服務(wù)器為其分配的IPv6 地址和配置信息。為了防止這種情況的發(fā)生,管理員可以配置DHCPv6 服務(wù)器是否支持兩步交互地址分配方式。 DHCPv6 兩步交互地址分配過程如圖4-4 所示。 DHCPv6 兩步交互地址分配過程 DHCPv6 兩步交互地址分配過程如下: 1. DHCPv6 客戶端在發(fā)送的Solicit 報(bào)文中攜帶Rapid Commit 選項(xiàng),標(biāo)識(shí)客戶端希望服務(wù)器能夠快速為其分配地址和網(wǎng)絡(luò)配置參數(shù)。 2. DHCPv6 服務(wù)器接收到Solicit 報(bào)文后,將進(jìn)行如下處理: ? 如果DHCPv6 服務(wù)器支持快速分配地址,則直接返回Reply 報(bào)文,為客戶端分配IPv6 地址和其他網(wǎng)絡(luò)配置參數(shù),Replay 報(bào)文中也攜帶Rapid Commit 選項(xiàng)。 ? 如果DHCPv6 服務(wù)器不支持快速分配過程,則采用四步交互方式為客戶端分配IPv6 地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)。 DHCPv6 無狀態(tài)自動(dòng)分配 在地址分配前,IPv6 節(jié)點(diǎn)生成鏈路本地地址并且DAD 通過后,首先有一個(gè)鏈路路由器發(fā)現(xiàn)過程。即IPv6 節(jié)點(diǎn)廣播發(fā)送RS 報(bào)文,鏈路路由器收到RS 報(bào)文后,回應(yīng)RA 報(bào)文。 如果IPv6 節(jié)點(diǎn)收到的RA 報(bào)文中M 標(biāo)記為0,O 標(biāo)記為1,則表示IPv6 節(jié)點(diǎn)通過DHCPv6 無狀態(tài)方式獲取配置參數(shù)(包括DNS、SIP、SNTP 等服務(wù)器配置信息,不包括IPv6 地址)。 DHCPv6 無狀態(tài)工作過程如圖4-5 所示。 DHCPv6 無狀態(tài)工作過程如下: 1. DHCPv6 客戶端以組播方式向DHCPv6 服務(wù)器發(fā)送Information-Request 報(bào)文,該報(bào)文中攜帶Option Request 選項(xiàng),指定DHCPv6 客戶端需要從DHCPv6 服務(wù)器獲取的配置參數(shù)。 2. DHCPv6 服務(wù)器收到Information-Request 報(bào)文后,為DHCPv6 客戶端分配網(wǎng)絡(luò)配置參數(shù),并單播發(fā)送Reply 報(bào)文,將網(wǎng)絡(luò)配置參數(shù)返回給DHCPv6 客戶端。 3. DHCPv6 客戶端根據(jù)收到Reply 報(bào)文提供的參數(shù)完成DHCPv6 客戶端無狀態(tài)配置。 4. DHCPv6 PD 服務(wù)器回復(fù)Reply 報(bào)文,確認(rèn)將IPv6 地址前綴分配給DHCPv6 PD 客戶端使用。 DHCPv6 PD 同樣也支持?jǐn)y帶Rapid Commit 選項(xiàng)的兩步交互方式,報(bào)文交互方式參見DHCPv6 兩步交互方式。 7. DHCPv6 PD 工作原理 DHCPv6 前綴代理DHCPv6 PD(Prefix Delegation)是由Cisco 公司提出的一種前綴分配機(jī)制,并在RFC3633 中得以標(biāo)準(zhǔn)化。在一個(gè)層次化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,不同層次的IPv6地址分配一般是手工指定的。手工配置IPv6 地址擴(kuò)展性不好,不利于IPv6 地址的統(tǒng)一規(guī)劃管理。 通過DHCPv6 前綴代理機(jī)制,下游網(wǎng)絡(luò)路由器不需要再手工指定用戶側(cè)鏈路的IPv6 地址前綴,它只需要向上游網(wǎng)絡(luò)路由器提出前綴分配申請(qǐng),上游網(wǎng)絡(luò)路由器便可以分配合適的地址前綴給下游路由器,下游路由器把獲得的前綴(一般前綴長度小于64)進(jìn)一步自動(dòng)細(xì)分成64 前綴長度的子網(wǎng)網(wǎng)段,把細(xì)分的地址前綴再通過路由通告(RA)至與IPv6 主機(jī)直連的用戶鏈路上,實(shí)現(xiàn)IPv6 主機(jī)的地址自動(dòng)配置,完成整個(gè)系統(tǒng)層次的地址布局。 DHCPv6 PD 工作過程如圖4-6 所示。 DHCPv6 PD 四步交互地址分配過程如下: 1. DHCPv6 PD 客戶端發(fā)送Solicit 報(bào)文,請(qǐng)求DHCPv6 PD 服務(wù)器為其分配IPv6 地址前綴。 2. 如果Solicit 報(bào)文中沒有攜帶Rapid Commit 選項(xiàng),或Solicit 報(bào)文中攜帶Rapid Commit 選項(xiàng),但服務(wù)器不支持快速分配過程,則DHCPv6 服務(wù)器回復(fù)Advertise 報(bào)文,通知客戶端可以為其分配的IPv6 地址前綴。 3. 如果DHCPv6 客戶端接收到多個(gè)服務(wù)器回復(fù)的Advertise 報(bào)文,則根據(jù)Advertise 報(bào)文中的服務(wù)器優(yōu)先級(jí)等參數(shù),選擇優(yōu)先級(jí)最高的一臺(tái)服務(wù)器,并向該服務(wù)器發(fā)送Request 報(bào)文,請(qǐng)求服務(wù)器確認(rèn)為其分配地址前綴。 4. DHCPv6 PD 服務(wù)器回復(fù)Reply 報(bào)文,確認(rèn)將IPv6 地址前綴分配給DHCPv6 PD 客戶端使用。 DHCPv6 PD 同樣也支持?jǐn)y帶Rapid Commit 選項(xiàng)的兩步交互方式,報(bào)文交互方式參見DHCPv6 兩步交互方式。 8. DHCPv6 中繼工作原理 DHCPv6 中繼工作過程如圖 所示。DHCPv6 客戶端通過DHCPv6 中繼轉(zhuǎn)發(fā)報(bào)文,獲取IPv6 地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)(例如DNS 服務(wù)器IPv6 地址等)。 DHCPv6 中繼工作交互過程如下: 1. DHCPv6 客戶端向所有DHCPv6 服務(wù)器和DHCPv6 中繼的組播地址FF02::1:2 發(fā)送請(qǐng)求報(bào)文。 2. 根據(jù)DHCPv6 中繼轉(zhuǎn)發(fā)報(bào)文有如下兩種情況: l 如果DHCPv6 中繼和DHCPv6 客戶端位于同一個(gè)鏈路上,即DHCPv6 中繼為DHCPv6 客戶端的第一跳中繼,中繼轉(zhuǎn)發(fā)直接來自客戶端的報(bào)文,此時(shí)DHCPv6中繼實(shí)質(zhì)上也是客戶端的IPv6 網(wǎng)關(guān)設(shè)備。DHCPv6 中繼收到客戶端的報(bào)文后,將其封裝在Relay-Forward 報(bào)文的中繼消息選項(xiàng)(Relay Message Option)中,并將Relay-Forward 報(bào)文發(fā)送給DHCPv6 服務(wù)器或下一跳中繼。 l 如果DHCPv6 中繼和DHCPv6 客戶端不在同一個(gè)鏈路上,中繼收到的報(bào)文是來自其他中繼的Relay-Forward 報(bào)文。中繼構(gòu)造一個(gè)新的Relay-Forward 報(bào)文,并將Relay-Forward 報(bào)文發(fā)送給DHCPv6 服務(wù)器或下一跳中繼。 3. DHCPv6 服務(wù)器從Relay-Forward 報(bào)文中解析出DHCPv6 客戶端的請(qǐng)求,為DHCPv6 客戶端選取IPv6 地址和其他配置參數(shù),構(gòu)造應(yīng)答消息,將應(yīng)答消息封裝在Relay-Reply 報(bào)文的中繼消息選項(xiàng)中,并將Relay-Reply 報(bào)文發(fā)送給DHCPv6 中繼。 4. DHCPv6 中繼從Relay-Reply 報(bào)文中解析出DHCPv6 服務(wù)器的應(yīng)答,轉(zhuǎn)發(fā)給DHCPv6客戶端。DHCPv6 客戶端根據(jù)Advertise 報(bào)文中的服務(wù)器優(yōu)先級(jí)選擇一個(gè)DHCPv6服務(wù)器,后續(xù)從該DHCPv6 服務(wù)器獲取IPv6 地址和其他網(wǎng)絡(luò)配置參數(shù)。 9. IPv6 地址/前綴的分配與更新原則 IPv6 地址分配的優(yōu)先次序 DHCPv6 服務(wù)器按照如下次序?yàn)镈HCPv6 客戶端選擇IPv6 地址/前綴。 1. 選擇IPv6 地址池 DHCPv6 服務(wù)器接口必須綁定IPv6 地址池,DHCPv6 服務(wù)器將選擇該IPv6 地址池為接口下的DHCPv6 客戶端分配地址/前綴。 2. 選擇IPv6 地址/前綴 確定地址池后,DHCPv6 服務(wù)器將按照下面步驟為DHCPv6 客戶端分配IPV6 地址/前綴: a. 如果地址池中為客戶端指定了地址/前綴,優(yōu)先從地址池中選擇與客戶端DUID匹配的地址/前綴分配給客戶端。 b. 如果客戶端報(bào)文中的IA 選項(xiàng)攜帶了有效的地址/前綴,優(yōu)先從地址池中選擇該地址/前綴分配給客戶端。如果該地址/前綴在地址池中不可用,則另外分配一個(gè)空閑地址/前綴給客戶端。如果IPV6 前綴長度比指定分配長度大,則按指定分配長度來分配。 c. 從地址池中選擇空閑地址/前綴分配給客戶端,保留地址(例如RFC 2526 中定義的任播地址)、沖突地址、已被分配的地址不能再分配給客戶端。 d. 如果沒有合適的IPv6 地址/前綴可以分配,則分配失敗。 DHCPv6 地址租約更新 DHCPv6 服務(wù)器為DHCPv6 客戶端分配的地址是有租約的,租約由生命期(包括地址的優(yōu)先生命期和有效生命期構(gòu)成)和續(xù)租時(shí)間點(diǎn)(IA 的T1、T2)構(gòu)成。地址有效生命期結(jié)束后,DHCPv6 客戶端不能再使用該地址。在有效生命期到達(dá)之前,如果DHCPv6 客戶端希望繼續(xù)使用該地址,則需要更新地址租約。 DHCPv6 客戶端為了延長其與IA 關(guān)聯(lián)的地址的有效生命期和優(yōu)先生命期,在T1 時(shí)刻,發(fā)送包含IA 選項(xiàng)的Renew 報(bào)文給服務(wù)器,其中IA 選項(xiàng)中攜帶需要續(xù)租的IA 地址選 項(xiàng)。如果DHCPv6 客戶端一直沒有收到T1 時(shí)刻續(xù)租報(bào)文的回應(yīng)報(bào)文,那么在T2 時(shí)刻,DHCPv6 客戶端通過Rebind 報(bào)文向DHCPv6 服務(wù)器繼續(xù)續(xù)租地址。 T1 時(shí)刻地址租約更新過程如圖 所示。 T1 時(shí)刻地址租約更新過程如下: 1. DHCPv6 客戶端在T1 時(shí)刻(推薦值為優(yōu)先生命期的1/2)發(fā)送Renew 報(bào)文進(jìn)行地址租約更新請(qǐng)求。 2. DHCPv6 服務(wù)器回應(yīng)Reply 報(bào)文。 ? 如果DHCPv6 客戶端可以繼續(xù)使用該地址,則DHCPv6 服務(wù)器回應(yīng)續(xù)約成功的Reply 報(bào)文,通知DHCPv6 客戶端已經(jīng)成功更新地址租約。 ? 如果該地址不可以再分配給該DHCPv6 客戶端,則DHCPv6 服務(wù)器回應(yīng)續(xù)約失敗的Reply 報(bào)文,通知DHCPv6 客戶端不能獲得新的租約。 T2 時(shí)刻地址租約更新過程如圖所示。 T2 時(shí)刻地址租約更新過程如下: 1. DHCPv6 客戶端在T1 時(shí)刻發(fā)送Renew 請(qǐng)求更新租約,但是沒有收到DHCPv6 服務(wù)器的回應(yīng)報(bào)文。 2. DHCPv6 客戶端在T2 時(shí)刻(推薦值為優(yōu)先生命期的0.8 倍),向所有DHCPv6 服務(wù)器組播發(fā)送Rebind 報(bào)文請(qǐng)求更新租約。 3. DHCPv6 服務(wù)器回應(yīng)Reply 報(bào)文。 l 如果DHCPv6 客戶端可以繼續(xù)使用該地址,則DHCPv6 服務(wù)器回應(yīng)續(xù)約成功的Reply 報(bào)文,通知DHCPv6 客戶端已經(jīng)成功更新地址/前綴租約。 l 如果該地址不可以再分配給該DHCPv6 客戶端,則DHCPv6 服務(wù)器回應(yīng)續(xù)約失敗的Reply 報(bào)文,通知DHCPv6 客戶端不能獲得新的租約。 IP 地址預(yù)留 DHCPv6 服務(wù)器支持預(yù)留IPv6 地址,即保留部分IPv6 地址不參與動(dòng)態(tài)分配。比如預(yù)留的IPv6 地址可作為DNS 服務(wù)器的IPv6 地址。
來源于: https://blog.csdn.net/msdh_it/article/details/75557865
|