DHCPv6
DHCPv6
- DHCP基于UDP:546(S)547(C)
有狀态自動配置設定:DHCPv6配置設定IP/字首、DNS等 RA M=1 O=1
無狀态自動配置設定:SLAAC配置設定IP/字首,DHCPv6配置設定DNS等 RA M=0 O=1
DUID(DHCPv6 Unique Identifier唯一辨別符)
- Server和Client互相辨別對方
DUID生成方式:
LL方式(Link-Layer):通過接口MAC位址生成
LLT方式:通過接口MAC+系統時間生成(重新開機裝置DUID改變)
IA(Identity Association身份聯盟)
Client把需要配置設定IPv6位址的接口關聯IA,DHCPv6伺服器向IA配置設定位址等
IA有 唯一的IAID
續租時間T1(預設0.5*優選生存期)
續租時間T2(預設0.8*優選生存期)
DHCPv6封包
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR50MFRUT10kaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwQDO0QDNxQTMzIDOwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
msg-type: 1=Solicit(索求)
2=Advertise
3=Request
7=Reply
11=Information-Request
12=Relay-Forw(中繼轉發)
13=Relay-Reply(中繼應答)
transaction-id: 互動ID,Client每次随機生成ID發送封包,Server使用相同ID回複。
Server端主動發起封包的互動ID=0
DHCPv6有狀态自動配置設定
普通模式(4次互動,和DHCPv4過程類似)
Solicit不攜帶rapid commit(快速模式)或Server不支援rapid commit,采用4次互動
C、S之間通過DUID唯一辨別
PC接口關聯IA,Server向IA配置設定參數
快速模式(2次互動,rapid commit)
- 快速模式隻适用于僅一個DHCP伺服器的情況
C發送Solicit封包中采用rapid commit
S支援rapid commit,直接回複Reply(攜帶配置設定的參數)
DHCPv6無狀态自動配置設定
C已經通過SLAAC擷取了IPv6位址,
Information Request請求DNS等參數
DHCPv6中繼
- 注意:Server必須擁有去往Client-Relay網段的路由
- 關于RA消息的配置都在Relay右邊接口上(RA消息是發給主機的)
DHCPv6 PD(字首代理Prefix Delegation)
PD Server配置設定的字首≤64bit
PD Client向Server提出字首配置設定申請,PD Server配置設定字首。
Client再将字首自動劃分為不同的/64網段,使用RA消息通告給不同Vlanif,PC使用無狀态自動配置(64位字首+EUI-64)全自動生成IPv6位址。
- 當字首改變時,主機的字首也跟着改變。
DHCPv6配置
[Server] ipv6
dhcp enable //全局使能IPv6、DHCP功能
[Server] dhcpv6 pool 1 //建立DHCPv6位址池1
address prefix 2000::/64 //可配置設定的位址段
excluded-address 2000::1 //将自己接口需要配置的位址除外
dns-server 2000::8
[Server-G] ipv6 enable
ipv6 address 2000::1/64 //接口配置IP(用于啟動link-local和Client建立鄰居)
dhcpv6 server 1 [rapid-commit] //調用位址池1(可選開啟快速模式)
undo ipv6 nd ra halt //啟用RA消息(華為預設不發RA)
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag // RA消息中,M、O位置1
- 這3條指令,在模拟器上不配置,可配置設定到IPv6位址。但實際中,由于不同廠家裝置不同,需要配置。MO=11表示路由器采用DHCP配置設定IP、且使用DHCP配置設定其他參數
- [R] address prefix xxx如果改成prefix-delegation 2000::/48,就可以把R配置成DHCPv6 PD Server
[Client] ipv6
dhcp enable
[C-G] ipv6 enable
ipv6 address auto link-local //路由器先需要配置link-local建立IPv6鄰居
ipv6 address auto dhcp [rapid-commit]
- 簡言之,DHCPv6配置設定位址之前,需要路由器之間通過Link-local建立鄰居(Link-local可auto配置,也可通過普通IP激活)
- Client接口上即使有了IPv6位址,還能通過DHCP繼續配置設定
DHCPv6中繼配置
思路: 1. 位址池在R1上,R1-G0/0/0調用全局位址池
2. R2作為中繼,G0/0/1上開啟DHCPv6-Relay
3. R1-G0/0/0、R2-G0/0/1開啟RA消息,M、O置位
4. DHCPv6基于ICMPv6基于IPv6,R3-R1需要路由互通
- R上全局使能IPv6&DHCP功能、接口使能IPv6配置省略
[R1] dhcpv6 pool 1
address prefix 2000:23::/64
excluded-address 2000:23::1
ipv6 route-static 2000:23:: 64 2000:12::2
[R1-G0/0/0] ipv6 address 2000:12::1/64 //不需要RA
ipv6 address FE80::1 link-local
dhcpv6 server 1
[R2-G0/0/0] ipv6 address 2000:12::2/64
ipv6 address FE80::2 link-local
[R2-G0/0/1] ipv6 address 2000:23::1/64
ipv6 address FE80::2 link-local
undo ipv6 nd ra halt
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
dhcpv6 relay destination 2000:12::1
[R3-G0/0/1] ipv6 address auto link-local
ipv6 address auto dhcp
[R3] ipv6 route-static 2000:12:: 64 G0/0/1 FE80::2
DHCPv6 PD配置
思路:
- PD Server和PD Client之間是依賴DHCPv6配置設定位址字首段prefix-delegation(一定範圍内的字首,通常最大掩碼=64位)
- PD Client左邊接口作為DHCPv6 Client,接收PD字首,并自定義名稱A
- PD Client右邊接口使用A字首,配置IP
- R6因為有了64位字首資訊,無狀态自動配置IP
- R4→R5作為DHCPv6配置設定位址字首段,開啟RA,M、O置位
- R5→R4需要通告字首資訊,開啟RA
- R4-R6不需要路由互通
[R4] dhcpv6 pool 1 //IPv6、dhcp全局、接口開啟配置省略
prefix-delegation 2000:56::/60 64 //DHCPv6位址池配置設定60-64位的位址字首段給R5
[R4-G0/0/0] ipv6 address 2000:45::4/64
ipv6 address FE80::4 link-local
dhcpv6 server 1
- dhcpv6 server 1指令後沒有加allow-hint,字首段沒有意義,作為64位字首使用
[R5-G0/0/0] ipv6 address 2000:45::5/64
ipv6 address FE80::5 link-local
dhcpv6 client pd AA //接收PD字首位址段,并起名AA
- AA後面不加hint參數時,字首段沒有意義,AA作為64位字首使用
[R5-G0/0/1] ipv6 address AA ::5/64
ipv6 address auto link-local
undo ipv6 nd ra halt //R6需要無狀态自動配置,開RA
- ★★★R5-R6鍊路上的Link-local必須啟用,不然鍊路協定=down,AA::5配不上
[R6-G0/0/0] ipv6 address auto link-local
ipv6 address auto global
PD Client上檢視收到的字首資訊 [R] display dhcpv6 client prefix
DHCPv6 PD配置(hint參數自定義字首)
R4配置設定的字首段為2000::56:1/48 64(規定長度不超16位)
R5可以在48-64位掩碼中,任選長度,假設選了48位,則R5可配置設定的48-64位中的子網,即2000::56:1:XXXX::/64
配置,在上例基礎上新增(修改):
[R4] dhcpv6 pool 1
prefix-delegation 2000:56:1::/48 64
[R4-G0/0/0] dhcpv6 server 1 allow-hint //PD伺服器允許hint
[R5-G0/0/0] dhcpv6 client pd BB hint ::/48 //PD用戶端自定義字首采用48位掩碼
[R5-G0/0/1] ipv6 address BB ::1234:0:0:0:5/64 //1234為R5配置設定的子網
最終,R6的G0/0/0通過無狀态自動配置得到IPv6位址=
2000:56:1:1234:EUI-64