原文鏈接:https://blog.csdn.net/kdb_viewer/article/details/83310904
一、DHCPv4 vs DHCPv6
1. 相同點
使用DHCP client, DHCP relay and DHCP server概念
使用scopes and leases概念
使用4個消息包的完整交互 (DHCP for IPv4使用Discover/Offer/Request/Acknowledge (DORA), DHCPv6使用Solicit/Advertise/Request/Reply (SARR))
使用DHCP options為終端節點提供附加信息(DHCPv6的type code長度為16-bit)
支持Rapid Commit功能
2. 差異點
標識客戶端方式:DHCPv6使用DHCP Unique Identifiers (DUIDs) (RFC 6355),DHCPv4使用MAC地址.
消息類型名稱不同,大部分功能類似
DHCPv4基於IPv4包傳輸,DHCPv6基於IPv6包傳輸
DHCPv6使用ICMPv6 Router Advertisement (RA)和IPv6多播消息,DHCPv4使用廣播的IPv4消息
DHCPv6中client與relay/server(RFC 6939)通信時使用link-local地址, DHCPv4使用unsolicited廣播地址
監聽的UDP端口不同, DHCPv4 relay/server監聽udp端口67 client監聽udp端口68, relay/server監聽udp端口547 client監聽udp端口546
DHCPv6 servers提供隨機的接口標識符 (避免攻擊者偵查), DHCPv4提供scope/pool中的下一個IPv4地址
DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
DHCPv4為客戶端提供默認網關地址,DHCPv6不包含這個option,IPv6節點通過ICMPv6 RA消息學習到first hop路由器地址
DHCPv4地址池可能耗盡; DHCPv6網段通常為64位耗盡可能性接近0
DHCPV6相關術語:
DUID
一個角色的DHCP唯一識別符
IA (Identity association)
分配給客戶端的地址集合,有相關的IAID,只保存一種類型的地址,比如temporary地址,每個客戶端可能有多個IA,每個網卡一個。
IAID (Identity association identifier)
每個客戶端中的IA不允許存在重復IAID
IA_NA (Identity association for non-temporary addresses)
存儲非臨時地址的IA
IA_TA (Identity association for temporary addresses)
存儲臨時地址的IA
IA_PD (Identity association for prfix delegation)
分配給客戶端的前綴集合,有相關的IAID,每個請求路由器可能有多個IA,每個網卡一個。
binding
分配給某個客戶端的地址和配置信息的集合,以三元組<DUID,IA-type, IAID>標識。
DHCP domain
DHCP服務器管理的link范圍。
DHCP realm
DHCP domain的標識
All_DHCP_Relay_Agents_and_Servers (FF02::1:2)
所有中繼與服務器監聽的組播地址,被客戶端使用
All_DHCP_Servers (FF05::1:3)
所有服務器監聽,當中繼不知道服務器單播地址時會使用
Requesting router
作為DHCP客戶端,請求前綴分配
Delegating router
作為DHCP服務器,響應前綴分配請求
DHCPV6消息類型:
編號 消息類型 發起方 描述 對應v4包類型
1 Solicit client 定位服務器 Discover
2 Advertise server 響應Solict,表明可達性 Offer
3 Request client 向指定的服務器請求地址與配置 Request
4 Confirm client 發送給所有服務器確認客戶端的配置相對當前鏈路是否合法。 Request
5 Renew client 向指定服務器延長地址租賃時間和更新配置信息 Request
6 Rebind client Renew失敗后,發送給所有服務器 Request
7 Reply server 發送給指定客戶端,響應Solicit/Request/Renew/Rebind/Information-Request/Confirm/Release/Decline消息 Ack
8 Release client 釋放地址 Release
9 Decline client 發送給指定服務器,表明地址已經被使用 Decline
10 Reconfigure server 表明服務器有配置變更,客戶端接收后發送Renew或 Information-Request來請求新的配置 N/A
11 Information-Request client 請求配置信息,不包括IP Inform
12 Relay-Forward relay agent 中繼轉發給服務器,客戶端消息包含在Relay-Message option中 N/A
13 Relay-Reply server 服務器響應中繼,客戶端消息包含在Relay-Message option中 N/A
關於IA:
一、介紹
IA是一個結構體,服務器和客戶機用來標識、分組和管理一組相關 IPv6 地址。
每個IA只和一個網口關聯。
客戶端負責創建IA並指定IAID, 請求服務器為IA分配地址。
每個IA包含一個IAID和相關的配置信息:
IAID相對該客戶端必須唯一,且一致,不能因為重啟等操作產生變化。
配置信息包含一至多個IPv6地址,IA的T1與T2,每個地址包含prefered lifetime和valid lifetime.
二、選擇分配給IA的地址機制
客戶端連接的link
直接收到客戶端的包,源地址為link-local地址,與服務器接收消息的網卡在同一link上
收到中繼轉發包,與包中的link-address option標識的網卡在同一link上
直接收到客戶端的包,源地址非link-local地址,與包中源地址在同一link上
客戶端的DUID
客戶端提供的其它信息
中繼提供的其它信息
三、臨時地址分配
與非臨時地址分配沒區別,每個IA_TA為link上的每個前綴最多包含一個臨時地址,IA_TA與IA_TA的IAID空間獨立,值可以相同。