在IPV6的自動配置中,分為兩種技術(shù)
1. 有狀態(tài)地址自動配置
在有狀態(tài)地址自動配置的方式下,服務(wù)器分配一個完整的IPv6地址給主機(jī),并提供DNS服務(wù)器地址和域名等其它配置信息,這中間可能通過中繼代理轉(zhuǎn)交報文,而且最終服務(wù)器能把分配的IPv6地址和客戶端的綁定關(guān)系記錄在案,從而增強(qiáng)了網(wǎng)絡(luò)的可管理性。
地址池的計算,管理全部是服務(wù)器端在做,客戶端只是簡單的從服務(wù)器端取得服務(wù)器端已經(jīng)計算好的地址和其他設(shè)置應(yīng)用到自己身上。
1.1 協(xié)議下客戶端與服務(wù)器端的交互與類似采用如下圖所示的4步交互:
sequenceDiagram
DHCPv6 client->>DHCPv6 server: Solicit
DHCPv6 server->>DHCPv6 client: Advertise
DHCPv6 client->>DHCPv6 server: Request
DHCPv6 server->>DHCPv6 client: Reply
在客戶端發(fā)送消息的時候,報文里面會附帶很多信息說明
查看IPV6詳解卷2-4.2.2 的定義里面
1.1.1 DHCP唯一標(biāo)識符DUID(客戶端和服務(wù)器之間標(biāo)識符的唯一性)1.1.2 身份關(guān)聯(lián)IA( )
這邊的IA_PD就是-PD的方式請求,這時候服務(wù)器就會下發(fā)帶IA_PD的前綴下來,路由器就會把這個前綴設(shè)置到br-lan端口,用來給下一級服務(wù)器分配IP使用。
1.2 快速交互過程
如果客戶端發(fā)送的消息包含快速回復(fù)(Rapid )選項,則服務(wù)器直接回應(yīng)以REPLY消息,其中包含IPv6地址和配置參數(shù),即通過一次消息交換完成配置任務(wù)。由于省去了服務(wù)器選擇過程,使用Rapid 選項要確保同一鏈路只有一個服務(wù)器提供地址服務(wù)。
sequenceDiagram
DHCPv6 client->>DHCPv6 server: Solicit(Contains a Rapid Commit option)
DHCPv6 server->>DHCPv6 client: Reply
1.3 續(xù)約
服務(wù)器分配給客戶端的IPv6地址/前綴具有一定的租借期限。租借期限由有效生命期(Valid )決定。
地址/前綴的租借時間到達(dá)有效生命期后,客戶端不能再使用該地址/前綴。在有效生命期到達(dá)之前,如果客戶端希望繼續(xù)使用該地址/前綴,則需要更新地址/前綴租約。
sequenceDiagram
DHCPv6 client->>DHCPv6 server: Renew(T1)
DHCPv6 server->>DHCPv6 client: Reply
sequenceDiagram
DHCPv6 client->>DHCPv6 server: Renew(T1)
DHCPv6 client->>DHCPv6 server: ...
DHCPv6 client->>DHCPv6 server: Rebind(T2)
DHCPv6 server->>DHCPv6 client: Reply
1.4 地址沖突
如果客戶端發(fā)現(xiàn)服務(wù)器分配的地址已經(jīng)被其它節(jié)點占用,客戶端要向服務(wù)器發(fā)出報文,通知沖突地址的發(fā)生,服務(wù)器回應(yīng)以REPLY消息。
1.5 租約確認(rèn)
客戶端鏈路因某種原因中斷又恢復(fù),或者客戶端連接到新的鏈路以后,客戶端要向服務(wù)器發(fā)送報文希望確定當(dāng)前被分配的地址是否仍然適合連接的鏈路。服務(wù)器回應(yīng)REPLY報文或不作響應(yīng)。
1.6 釋放地址
最后客戶端不再使用分配的地址時,向選定的服務(wù)器發(fā)送消息請求服務(wù)器回收分配的IPv6地址。
1.7 和消息對比 消息描述等效的 消息
要求()
由客戶端發(fā)送以定位服務(wù)器。
公告()
由服務(wù)器對“要求”消息進(jìn)行響應(yīng)時發(fā)送以指明可用性。
請求()
由客戶端發(fā)送以請求來自特定服務(wù)器的地址或配置設(shè)置。
確認(rèn)()
由客戶端發(fā)送給所有服務(wù)器,以確定對于已連接的鏈接客戶端的配置是否有效。
更新(renew)
由客戶端發(fā)送給特定服務(wù)器以延長分配地址的生存期并獲取更新的配置設(shè)置。
重新綁定()
未接收到對“更新”消息的響應(yīng)時由客戶端發(fā)送給任何服務(wù)器。
應(yīng)答(reply)
對要求、請求、更新、重新綁定、信息請求、確認(rèn)、發(fā)布或拒絕消息進(jìn)行響應(yīng)時由服務(wù)器發(fā)送給特定客戶端。
發(fā)布()
由客戶端發(fā)送以指明客戶端不再使用分配的地址。
拒絕()
由客戶端發(fā)送給特定服務(wù)器以指明分配的地址已在使用中。
重新配置()
由服務(wù)器發(fā)送給客戶端以指明該服務(wù)器具有新的或更新的配置設(shè)置。客戶端隨后發(fā)送“更新”或“信息請求”消息。
N/A
信息請求(-)
由客戶端發(fā)送以請求配置設(shè)置(但不包括地址)。
中繼轉(zhuǎn)發(fā)(relay-forw)
由中繼代理發(fā)送以轉(zhuǎn)發(fā)消息給服務(wù)器。中繼轉(zhuǎn)發(fā)包含封裝為 中繼消息選項的客戶端消息。
N/A
中繼應(yīng)答(relay-reply)
由服務(wù)器發(fā)送以通過中繼代理發(fā)送消息給客戶端。中繼應(yīng)答包含封裝為 中繼消息選項的服務(wù)器消息。
N/A
IPv6支持無狀態(tài)的自動分配地址,但這并不意味著DHCP會隨著IPv6的出現(xiàn)以及IPv6設(shè)備的大量部署而退出歷史舞臺。不僅是在這么一個過渡時期,DHCP是不可或缺的,即便是在將來,DHCP仍將發(fā)揮重要作用。思科公司的Droms預(yù)計,大部分的企業(yè)都將花錢來支持。他說:“網(wǎng)管員們都想知道網(wǎng)絡(luò)上連接著什么樣的主機(jī)和設(shè)備,以及這些設(shè)備的地址,因此,他們將希望使用。”
較更為復(fù)雜,也有很多不同的地方,如使用67和68端口,而使用546和547端口;不同的報文結(jié)構(gòu)以及交互方式無狀態(tài)自動地址配置,設(shè)備都要使用DUID來互相認(rèn)證等。但他們的原理類似,具備知識的技術(shù)人員在熟悉IPv6的基礎(chǔ)上可以很快掌握協(xié)議。
2. 中繼工作原理
通過中繼動態(tài)獲取IPv6地址/前綴和其他網(wǎng)絡(luò)配置參數(shù)的過程中,客戶端與服務(wù)器的處理方式與不通過中繼時的處理方式基本相同。圖 7中只說明中繼的轉(zhuǎn)發(fā)過程:
sequenceDiagram
DHCPv6 client->>DHCPv6 realy agent: DHCPv6 message from clint
DHCPv6 realy agent->>DHCPv6 server: Relay-froward
DHCPv6 server->>DHCPv6 realy agent: Realy-Relay
DHCPv6 realy agent->>DHCPv6 client: DHCPv6 message to clint
3. 無狀態(tài)地址自動配置/SLAAC/RA
在無狀態(tài)地址自動配置方式下,網(wǎng)絡(luò)接口接收路由器宣告的全局地址前綴(64位),再結(jié)合接口ID得到一個128位的可聚集全局單播地址(接口地址實際上就是MAC地址,由于MAC地址是48位的,所以這里要用到一個IEEE提供的EUI64轉(zhuǎn)換算法,可以將48位的MAC地址換算為64位)。
首先,為配置接口,主機(jī)需要前綴信息(類似于IPV4地址的網(wǎng)絡(luò)部分),因此它會發(fā)送一條路由器請求(,RS)消息。該消息以組播方式發(fā)送給所有路由器。這實際上是一種消息,并用編號進(jìn)行標(biāo)識,RS消息的類型為133。
路由器使用一條路由器通告(-,RA)消息進(jìn)行應(yīng)答,其中包含請求的前級信息。RA消息也是組播分組,被發(fā)送到表示所有節(jié)點的組播地址,其類型為134。RA消息是定期發(fā)送的,但主機(jī)發(fā)送RS消息后,可立即得到響應(yīng),因此無需等待下一條定期發(fā)送的RA消息,就能獲得所需的信息。
最后主機(jī)向該地址發(fā)送一個鄰居發(fā)現(xiàn)請求( ),如果無響應(yīng),則證明網(wǎng)絡(luò)地址是唯一的。
獲得前綴綴上接口ID證實可用
主機(jī)通過監(jiān)聽路由器通告獲取全局地址前綴(64位)
綴上自己通過MAC地址算出的64位接口ID,得到128位全局IP地址
向改地址發(fā)送一個鄰居發(fā)現(xiàn)請求,如果無響應(yīng)則證實該地址可以用
3.1 RADVD服務(wù)器
以RADVD為代表的無狀態(tài)自動配置不需要消耗很多機(jī)器資源無狀態(tài)自動地址配置,也不像傳統(tǒng)DHCP一樣需要維護(hù)一個本地數(shù)據(jù)庫來維護(hù)地址分配狀態(tài),他只是進(jìn)行廣播前綴地址,客戶端收到這種廣播后再自己使用EUI64算法生成全球唯一的IPv6地址,進(jìn)行自我配置。
因此,RADVD不能進(jìn)行NTP/DNS等其他傳統(tǒng)DHCP服務(wù)器所能進(jìn)行的配置。甚至嚴(yán)格的說,她只進(jìn)行路由廣播,地址都是客戶端自己根據(jù)算法和規(guī)范在配置。
那RA服務(wù)器廣播的ipv6前綴地址是哪里來的?
interface eth0 {
AdvSendAdvert on;
AdvCurHopLimit 64;
MinRtrAdvInterval 198;
MaxRtrAdvInterval 600;
AdvDefaultLifetime 1800;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvDefaultPreference low;
AdvHomeAgentFlag off;
AdvOtherConfigFlag on;
AdvManagedFlag off;
prefix 2016:ac11:5cad:0::/64 {

AdvOnLink on;
AdvAutonomous on;
AdvValidLifetime 2400;
AdvPreferredLifetime 1800;
};
RDNSS fe80::2224:7ff:fe26:3014 {
AdvRDNSSPreference 8;
AdvRDNSSLifetime 1200;
};
};
在搭建isc-dhcp服務(wù)器之后,win直接鏈接到后端可以獲取到ipv6地址
然后把華為路由器鏈接到后端,在把win鏈接到華為路由器后端,發(fā)現(xiàn)路由器一直再發(fā)送ICMPv Type=133給isc-dhcp服務(wù)器,但是isc-dhcp服務(wù)器一直不返回ICMPv 告訴路由器ipv6的前綴。
所以需要再搭建一個radvd的服務(wù)器用來下發(fā)前綴給路由器。
4. RA和的配合使用
由于不能告知客戶端默認(rèn)路由,默認(rèn)路由的廣播只能靠RA,這樣就必須在RA報文里面,不報告“A”(自動配置),只報告“R”(路由前綴),讓客戶端通過去獲取默認(rèn)路由。
服務(wù)器也能提供無狀態(tài)服務(wù),即服務(wù)器不分配IPv6地址,僅需向主機(jī)提供DNS服務(wù)器地址和域名等其它配置信息,主機(jī)IPv6地址仍然通過路由器公告方式自動生成,這樣配合使用就彌補(bǔ)了IPv6無狀態(tài)地址自動配置的缺陷。
客戶端選擇了服務(wù)器以后,向服務(wù)器發(fā)送-報文請求提供相關(guān)配置參數(shù),服務(wù)器收到請求回應(yīng)以REPLY報文提供請求的配置參數(shù)發(fā)送給客戶端。無狀態(tài)服務(wù)允許和有狀態(tài)服務(wù)同時使用,服務(wù)器根據(jù)客戶端的請求類型決定不同的應(yīng)答方式。
因此,為了兼容EUI64算法,Radvd所能進(jìn)行管理的地址段要比小很多,如果你希望這種無序的自動化管理,并且只是配地址,你可以使用Radvd,反過來,你的想重用一個/64的隧道給自己家的設(shè)備都分配IPv6地址什么的,你如果希望為客戶端指定更加詳細(xì)的DNS設(shè)定,NTP設(shè)定等等,你可以考慮+Radvd(),或者一種細(xì)致的地址管理,您應(yīng)該選擇+Radvd()
sequenceDiagram
DHCPv6 client->>DHCPv6 server: Information-request(include an request option)
DHCPv6 server->>DHCPv6 client: Realy(include the requested options)
協(xié)議還提供了前綴代理的擴(kuò)展功能,上游路由器可以自動為下游路由器分派地址前綴,從而實現(xiàn)了層次化網(wǎng)絡(luò)環(huán)境中IPv6地址的自動規(guī)劃,解決互聯(lián)網(wǎng)提供商(ISP)的IPv6網(wǎng)絡(luò)部署問題。