2021-09-19 DHCPv6-PD 機能検証
普及期・移行期を迎えている、IPv6 の DHCPv6-PD について検証を実施しました。
このページにラボシナリオとして、コンフィグや確認コマンド、疎通確認のポイントなどをまとめています。
目的
初心者向けに DHCPv6-PD と IPv6 の基礎を学習するための、検証の基本情報を提供します。
無料で入手できるソフトウェアを使用し、金銭の負担を減らします。
DHCPv6-PD のメリット
IPv6 で増大するグローバル ユニキャストアドレスを、DHCPv6-PD ルートに集約できます。
以下に直接接続した場合と、DHCPv6-PD クライアント経由で接続した例を記載します。

- 例 1. は L3SW で PC やサーバ、IP 電話などを /64 で直接収容するケースです
- PC 1 台はグローバル ユニキャストアドレスとリンクローカルアドレスを持つため、IPv6 ND エントリを最低 2 つ消費します
- 実際には IPv6 一時使用アドレスも存在するため、2 つでは済みません
- 上記の例では 4 台存在するため、最低 8 エントリを消費します

- 例 2. は L3SW が PD クライアントに集約ルートとして /56 を割り当てた例です
- PD ルート + PD-Client のリンクローカルアドレスの 2 つのエントリで済みます
- ただし、実運用としては PD クライアントにも疎通確認用として /64 でグローバル ユニキャストを持たせたほうが運用しやすいケースも考えられます
- PD-Client 配下では /56 をサブネット分割し、/64 のネットワークを 16 個作成できます
- /64 1 つでも、分割して複数持たせても良いです
- PC などの数が増えても、L3SW のリソースには影響しません
台数 | ||||
---|---|---|---|---|
2 | 4 | 8 | 16 | |
L3SW 直接収容 | 4 | 8 | 16 | 32 |
DHCPv6-PD クライアント経由 | 1 | 1 | 1 | 1 |
実際の L3SW の例として Catalyst 9300 の IPv4 ARP エントリは 32,000 ですが、IPv6 ND の場合は半分の 16,000 となります。
机上ではデュアルスタックのホスト 1 台につき IPv4 + IPv6 グローバル ユニキャストでエントリを 2 つ消費するため、Catalyst 9300 1 台あたり 12,000 台が最大収容数と考えられ、IPv4 よりもかなり見劣りします。
DHCPv6-PD のデメリット
- FTTH を想定した場合、ブロードバンドルータの対応機種が限られます
- ARP / IPv6 ND よりも静的よりのプロトコルとなるため、冗長構成はよく検討する必要があります
- IPv6 リナンバリングはまだまだノウハウがありません 移行設計はよく検討する必要があります
検証環境
いずれも無料で提供されているソフトウェアです。
ESXi7.0 無償評価版
- VMware Workstaion でも可能ですが、CPU とメモリの要件が厳しいため、少なくとも 2021 年のノート PC では厳しいでしょう
- hkatou Lab では Supermicro のコンパクトサーバ、E300-9a Atom C3858 12 Core 12 Thread + 64GB メモリを使用しています
- 近年 ESXi は個人が使用するのが難しくなったため、VMware Workstation や Proxmox を使用するのがよいでしょう
EVE-NG Community Edition
- 8 vCPU / 30GB のメモリを割り当てました
Cisco CSR1000V 16.12.04a
- EVE-NG のテンプレートにある CPU 1 コアだと起動が遅かったため、2 コアに変更
- この場合は合計 10 vCPU になります
- 要求される EVE-NG 上の CSR1000V VM のリソースは以下です
- 1 vCPU x 5 台 = 5 vCPU
- 4GB メモリ x 5 台 = 20GB
- IOS-XE 上では 1.8GB ほどフリーに見えるため、2.5GB / VM = 12.5GB 程度の割当でもいけそうです
構成図
以下の機器をすべて CSR1000V で構築します。
- DHCPv6 サーバ : DHCPv6-SV
- Core ルータ : Core
- Distribution ルータ : Dist
- DHCPv6-PD クライアント : PD-CL
- SLAAC クライアント : SLAAC

IPv6 アドレッシング表
検証に使用するための IPv6 アドレスを、文書用例示アドレスの 2001:DB8::/32 から、サブネット分割して各ホストへ割り当てます。
文書用例示アドレス 2001:DB8::/32 | |||||
---|---|---|---|---|---|
サブネット | 2001:DB8:CAFE::/48
DHCPv6-PD 払い出しプール |
2001:DB8:AE86::/48
機器間収容セグメント |
2001:DB8:FD7::/48
DHCPv6-PD 払い出し用 送信元セグメント |
2001:DB8:4860::
インターネット模擬 セグメント | |
サブネット | ::/56
/48 プールから分割して /56 払い出し |
::100:/64
DHCPv6 サーバ 収容 セグメント |
::200:/64
OSPFv3 P2P リンク |
::/64
Dist 用 |
Core 用 |
DHCPv6-SV | ローカルプールを設定
/48 DHCPv6-PD Pool を持ち、 /56 で払い出し |
Gi4
::128 |
- | リンクアドレスである Dist ::1/64 から払い出し依頼があれば、2001:DB8::CAFE::/48 プールから/56 を払い出す | - |
Core | - | Gi3
::1 GW |
Gi1
::1 OSPFv3 |
- | Lo0
::8888/128 |
Dist | /48 OSPF Null0 宛
集約ルート PD-CL 宛 /56 サブネットの スタティックルートを持つ |
- | Gi4
::2 OSPFv3 |
Gi4
::1/64 DHCPv6-PD が払い出す基準となる、 リンクアドレス |
- |
PD-CL | /56 を PD ルートとして持つ
SLAAC-CL へ /64 サブネットを提供 |
- | - | - | - |
SLAAC-CL | PC のステートレス DHCPv6 を模擬 | - | - | - | - |
ホストリスト・役割
DHCPv6-SV
- DHCPv6 サーバを動作させ、PD クライアントである PD-CL にプレフィックスを払い出します
Core
サーバ収容
- DHCPv6 サーバを収容します
インターネット模擬
- インターネット模擬となる、宛先 IP アドレスを Loopback アドレスとして持ちます
ダウンリンク
- OSPFv3 で Dist とルーティングを行います
Dist
アップリンク
- OSPFv3 で Core とルーティングを行います
ダウンリンク
- PD-CL の DHCPv6 Router Solicitation に対して、リレーエージェントで DHCPv6 サーバに転送します
- リレーエージェントが動作すると、対応するスタティックルートがインジェクション (挿入) されます
PD-CL
アップリンク
- Dist に Router Solicitation で PD ルートを要求します
ダウンリンク
- Dist から受信した /56 PD ルートを、/64 にサブネット分割して GW を提供します
SLAAC
- /64 サブネット分割されたグローバル ユニキャストアドレスと、PD-CL 宛デフォルトルートを持ちます
プロトコル別コンフィギュレーション
ここではプロトコル・ホスト別にコンフィギュレーションを簡単に解説します。
自分でコンフィグを組んでみたい人向けに、デフォルトでは表示しません。
このページのリファレンスに記載した、Cisco のサイトを参考に設定してみると良いでしょう。
DHCPv6 サーバ
DHCPv6-SV
IPv6 スタティックルーティング

DHCPv6-SV
Core
OSPFv3
隣接関係

Core
Dist
ルート集約
Dist
DHCPv6-PD リレーエージェント
Dist
DHCPv6-PD クライアント
PD-CL
DHCPv6-PD SLAAC ゲートウェイ
PD-CL
IPv6 SLAAC クライアント
SLAAC
IPv6 SLAAC クライアントのバッドプラクティス
RA に M フラグの存在しない PD-CL に対し、ipv6 address dhcp を設定しないこと
- M フラグ = アドレス or プレフィックスをルータ RA -> DHCPv6 サーバからの払い出しに変更する機能
動作確認 - ホスト別 show コマンドリスト
DHCPv6-SV
- show ipv6 dhcp binding
- show ipv6 dhcp pool
Core
- show ipv6 route
Dist
- show ipv6 ospf summary-prefix
- show ipv6 dhcp relay binding
- show ipv6 route static
PD-CL
- show ipv6 dhcp interface GigabitEthernet 4
- show ipv6 interface GigabitEthernet 1 prefix
- show ipv6 dhcp interface GigabitEthernet 1
- show ipv6 dhcp pool
SLAAC
- show ipv6 route
- show ip name-servers
動作確認 - show コマンド
DHCPv6-SV
show ipv6 dhcp binding
Core
show ipv6 route
Dist
OSPFv3
show ipv6 ospf summary-prefix
PD-CL
DHCPv6-PD クライアント
SLAAC
疎通確認
疎通不可の場合、traceroute で不通となっている箇所を特定し、該当するプロトコルを切り分けて障害箇所を特定します。
Dist プロビジョニング用疎通確認
DHCPv6 プロビジョニングに必要な疎通確認は、以下になります。
Dist Gi4 -> DHCPv6-SV : ping 2001:DB8:AE86:100::128
- 失敗する場合、Core と接続する OSPFv3 P2P アドレスで、OSPFv3 の広報に失敗していないか確認します
Dist Gi1 -> DHCPv6-SV : ping 2001:DB8:AE86:100::128 source Gi1
- 失敗する場合、PD-CL 収容インターフェースのアドレスで、OSPFv3 の広報に失敗していないか確認します
- DHCPv6 の払い出しの前提条件となります
PD-CL / SLAAC プロビジョニング疎通確認
DHCPv6 プロビジョニング確認に必要な疎通確認は、以下になります。
PD-CL / SLAAC Gi4 -> DHCPv6-SV : ping 2001:DB8:AE86:100::128
- 失敗する場合、以下を確認します
- PD-CL 収容インターフェースのアドレスで、OSPFv3 の広報に失敗していないか
- PD-CL でデフォルトルートを持っているか
PD-CL / SLAAC サービス疎通確認
サービス確認に必要な疎通確認は、以下になります。
PD-CL / SLAAC Gi4 -> Core Lo0 : ping 2001:DB8:AE86:100::128
- 失敗する場合、以下を確認します
- PD-CL 収容インターフェースのアドレスで、OSPFv3 の広報に失敗していないか
- PD-CL でデフォルトルートを持っているか
- Core で ::8888 のアドレスを OSPFv3 で広報しているか
パケットキャプチャ
以下の手順で採取しました。
- PD-CL Gi4 を shutdown
- write memory
- reload
- 各所でキャプチャ開始
- PD-CL Gi4 no shutdown
再起動しない場合、以前取得していたプレフィックスを再度要求する、rebind メッセージがキャプチャできます。
DHCPv6-SV Gi4 ファイル:DHCPv6-SV Gi4.pcapng
01-DHCPv6 Relay Forward
Frame 1: 231 bytes on wire (1848 bits), 231 bytes captured (1848 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:02:00:02 (50:00:00:02:00:02), Dst: 50:00:00:01:00:03 (50:00:00:01:00:03)
Internet Protocol Version 6, Src: 2001:db8:fd7::1, Dst: 2001:db8:ae86:100::128
User Datagram Protocol, Src Port: 547, Dst Port: 547
DHCPv6
Message type: Relay-forw (12)
Hopcount: 0
Link address: 2001:db8:fd7::1
Peer address: fe80::5200:ff:fe04:3
Relay Message
Option: Relay Message (9)
Length: 84
DHCPv6
Message type: Solicit (1)
Transaction ID: 0x17cbbf
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
User Class
Option: User Class (15)
Length: 10
Vendor Class
Option: Vendor Class (16)
Length: 14
Enterprise ID: ciscoSystems (9)
vendor-class-data: CSR1000V
Option Request
Option: Option Request (6)
Length: 8
Requested Option code: Identity Association for Prefix Delegation (25)
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Boot File URL (59)
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 12
IAID: 000a0001
T1: 0
T2: 0
Client Link-Layer Address
Option: Client Link-Layer Address (79)
Length: 8
Interface-Id
Option: Interface-Id (18)
Length: 5
Interface-ID: 0103476931
Remote Identifier
Option: Remote Identifier (37)
Length: 22
Enterprise ID: ciscoSystems (9)
Remote-ID: 020000000000000a00030001001ee5c71700
003 : Dist の Gi1 2001:db8:fd7::1 を送信元 IPv6 , DHCPv6-SV の Gi4 2001:db8:ae86:100::128 を宛先 IPv6 に指定しています
006 : Relay Forward メッセージを示しています
009 : PD-CL Gi4 Link-local アドレス
020-026 : DUID は DHCPv6 のクライアント固有識別子を示す DUID Type が 3 になっており、リンクレイヤーアドレスを元にしてアドレスやプレフィックスを払い出す DUID-LL を意味する (RFC8415)
026 : DHCPv6-PD クライアントの MAC アドレス
035-41 : 取得したい アドレス or プレフィックス、DNS サーバ IP など
042-47 : RFC3633 IA-PD (Identity Association for Prefix Delegation) オプション
02-DHCPv6 Relay Reply
Frame 2: 223 bytes on wire (1784 bits), 223 bytes captured (1784 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:01:00:03 (50:00:00:01:00:03), Dst: 50:00:00:02:00:02 (50:00:00:02:00:02)
Internet Protocol Version 6, Src: 2001:db8:ae86:100::128, Dst: 2001:db8:fd7::1
User Datagram Protocol, Src Port: 547, Dst Port: 547
DHCPv6
Message type: Relay-reply (13)
Hopcount: 0
Link address: 2001:db8:fd7::1
Peer address: fe80::5200:ff:fe04:3
Relay Message
Option: Relay Message (9)
Length: 114
DHCPv6
Message type: Advertise (2)
Transaction ID: 0x17cbbf
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 302400
T2: 483840
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 604800
Valid lifetime: 2592000
Prefix length: 56
Prefix address: 2001:db8:cafe::
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:4860:4860::8888
Domain Search List
Option: Domain Search List (24)
Length: 13
Domain name suffix search list
Interface-Id
Option: Interface-Id (18)
Length: 5
Interface-ID: 0103476931
003 : DHCPv6-SV の Gi4 2001:db8:ae86:100::128 を送信元 IPv6 , Dist の Gi1 2001:db8:fd7::1 を宛先 IPv6 に指定しています
006 : Relay-Reply メッセージを示しています
009 : PD-CL Gi4 Link-local アドレス
029 : DHCPv6-PD クライアントの MAC アドレス
030-42 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス、DNS サーバ IP など
043-46 : DNS サーバ
047-50 : ドメイン検索リスト
03-DHCPv6 Relay Forward
Frame 3: 274 bytes on wire (2192 bits), 274 bytes captured (2192 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:02:00:02 (50:00:00:02:00:02), Dst: 50:00:00:01:00:03 (50:00:00:01:00:03)
Internet Protocol Version 6, Src: 2001:db8:fd7::1, Dst: 2001:db8:ae86:100::128
User Datagram Protocol, Src Port: 547, Dst Port: 547
DHCPv6
Message type: Relay-forw (12)
Hopcount: 0
Link address: 2001:db8:fd7::1
Peer address: fe80::5200:ff:fe04:3
Relay Message
Option: Relay Message (9)
Length: 127
DHCPv6
Message type: Request (3)
Transaction ID: 0x1948ce
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
User Class
Option: User Class (15)
Length: 10
Vendor Class
Option: Vendor Class (16)
Length: 14
Enterprise ID: ciscoSystems (9)
vendor-class-data: CSR1000V
Option Request
Option: Option Request (6)
Length: 8
Requested Option code: Identity Association for Prefix Delegation (25)
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Boot File URL (59)
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 0
T2: 0
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 0
Valid lifetime: 0
Prefix length: 56
Prefix address: 2001:db8:cafe::
Client Link-Layer Address
Option: Client Link-Layer Address (79)
Length: 8
Interface-Id
Option: Interface-Id (18)
Length: 5
Interface-ID: 0103476931
Remote Identifier
Option: Remote Identifier (37)
Length: 22
Enterprise ID: ciscoSystems (9)
Remote-ID: 020000000000000a00030001001ee5c71700
01-Relay Forward と 02-Relay Reply で交渉した結果、クライアントが要求した内容を示します。
003 : Dist の Gi1 2001:db8:fd7::1 を送信元 IPv6 , DHCPv6-SV の Gi4 2001:db8:ae86:100::128 を宛先 IPv6 に指定しています
006 : Relay Forward メッセージを示しています
009 : PD-CL Gi4 Link-local アドレス
020-026 : DUID は DHCPv6 のクライアント固有識別子を示す DUID Type が 3 になっており、リンクレイヤーアドレスを元にしてアドレスやプレフィックスを払い出す DUID-LL を意味する (RFC8415)
026 : DHCPv6-PD クライアントの MAC アドレス
035-41 : 取得したい アドレス or プレフィックス、DNS サーバ IP など
049-61 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス
04-DHCPv6 Relay Reply
Frame 4: 223 bytes on wire (1784 bits), 223 bytes captured (1784 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:01:00:03 (50:00:00:01:00:03), Dst: 50:00:00:02:00:02 (50:00:00:02:00:02)
Internet Protocol Version 6, Src: 2001:db8:ae86:100::128, Dst: 2001:db8:fd7::1
User Datagram Protocol, Src Port: 547, Dst Port: 547
DHCPv6
Message type: Relay-reply (13)
Hopcount: 0
Link address: 2001:db8:fd7::1
Peer address: fe80::5200:ff:fe04:3
Relay Message
Option: Relay Message (9)
Length: 114
DHCPv6
Message type: Reply (7)
Transaction ID: 0x1948ce
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 302400
T2: 483840
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 604800
Valid lifetime: 2592000
Prefix length: 56
Prefix address: 2001:db8:cafe::
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:4860:4860::8888
Domain Search List
Option: Domain Search List (24)
Length: 13
Domain name suffix search list
Interface-Id
Option: Interface-Id (18)
Length: 5
Interface-ID: 0103476931
03-Relay Forward に対し、実際に割り当てるアドレス・プレフィックスを 04 で返信します。
003 : DHCPv6-SV の Gi4 2001:db8:ae86:100::128 を送信元 IPv6 , Dist の Gi1 2001:db8:fd7::1 を宛先 IPv6 に指定しています
006 : Relay-Reply メッセージを示しています
009 : PD-CL Gi4 Link-local アドレス
029 : DHCPv6-PD クライアントの MAC アドレス
030-42 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス
043-46 : DNS サーバ
047-50 : ドメイン検索リスト
PD-CL ファイル:PD-CL Gi4 capture.pcapng
DHCPv6 M / O フラグを両方 On にして、プレフィックスと DNS サーバを DHCPv6 サーバから取得するキャプチャです。
01-DHCPv6 Solicit
Frame 14: 146 bytes on wire (1168 bits), 146 bytes captured (1168 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:04:00:03 (50:00:00:04:00:03), Dst: IPv6mcast_01:00:02 (33:33:00:01:00:02)
Internet Protocol Version 6, Src: fe80::5200:ff:fe04:3, Dst: ff02::1:2
User Datagram Protocol, Src Port: 546, Dst Port: 547
DHCPv6
Message type: Solicit (1)
Transaction ID: 0x17cbbf
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
User Class
Option: User Class (15)
Length: 10
Vendor Class
Option: Vendor Class (16)
Length: 14
Enterprise ID: ciscoSystems (9)
vendor-class-data: CSR1000V
Option Request
Option: Option Request (6)
Length: 8
Requested Option code: Identity Association for Prefix Delegation (25)
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Boot File URL (59)
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 12
IAID: 000a0001
T1: 0
T2: 0
003 : PD-CL ではリンクローカル アドレスしか持っていないため、送信元がリンクローカル、宛先が ff02::1:2 のルータ宛マルチキャストアドレスになります
006 : Solicit メッセージを示しています
012-018 : DUID は DHCPv6 のクライアント固有識別子を示す DUID Type が 3 になっており、リンクレイヤーアドレスを元にしてアドレスやプレフィックスを払い出す DUID-LL を意味する (RFC8415)
018 : DHCPv6-PD クライアントの MAC アドレス
027-33 : 取得したい アドレス or プレフィックス、DNS サーバ IP など
034-39 : RFC3633 IA-PD (Identity Association for Prefix Delegation) オプション
02-DHCPv6 Advertise
Frame 15: 176 bytes on wire (1408 bits), 176 bytes captured (1408 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:03:00:00 (50:00:00:03:00:00), Dst: 50:00:00:04:00:03 (50:00:00:04:00:03)
Internet Protocol Version 6, Src: fe80:db8:fd7::1, Dst: fe80::5200:ff:fe04:3
User Datagram Protocol, Src Port: 547, Dst Port: 546
DHCPv6
Message type: Advertise (2)
Transaction ID: 0x17cbbf
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 302400
T2: 483840
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 604800
Valid lifetime: 2592000
Prefix length: 56
Prefix address: 2001:db8:cafe::
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:4860:4860::8888
Domain Search List
Option: Domain Search List (24)
Length: 13
Domain name suffix search list
003 : PD-CL ではリンクローカル アドレスしか持っていないため、宛先が PD-CL リンクローカル、送信元がルータのリンクローカルになります
006 : Advertise メッセージを示している
021 : DHCPv6-PD クライアントの MAC アドレス
022-34 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス
035-38 : DNS サーバ
039-42 : ドメイン検索リスト
03-DHCPv6 Request
Frame 16: 189 bytes on wire (1512 bits), 189 bytes captured (1512 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:04:00:03 (50:00:00:04:00:03), Dst: IPv6mcast_01:00:02 (33:33:00:01:00:02)
Internet Protocol Version 6, Src: fe80::5200:ff:fe04:3, Dst: ff02::1:2
User Datagram Protocol, Src Port: 546, Dst Port: 547
DHCPv6
Message type: Request (3)
Transaction ID: 0x1948ce
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
User Class
Option: User Class (15)
Length: 10
Vendor Class
Option: Vendor Class (16)
Length: 14
Enterprise ID: ciscoSystems (9)
vendor-class-data: CSR1000V
Option Request
Option: Option Request (6)
Length: 8
Requested Option code: Identity Association for Prefix Delegation (25)
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Boot File URL (59)
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 0
T2: 0
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 0
Valid lifetime: 0
Prefix length: 56
Prefix address: 2001:db8:cafe::
01-Solicit と 02-Advertise で交渉した結果、クライアントが要求する内容を示します。
003 : PD-CL ではリンクローカル アドレスしか持っていないため、送信元がリンクローカル、宛先が ff02::1:2 のルータ宛マルチキャストアドレスになります
006 : Request メッセージを示しています
013-018 : DUID は DHCPv6 のクライアント固有識別子を示す DUID Type が 3 になっており、リンクレイヤーアドレスを元にしてアドレスやプレフィックスを払い出す DUID-LL を意味する (RFC8415)
018 : DHCPv6-PD クライアントの MAC アドレス
027-33 : 取得したい アドレス or プレフィックス、DNS サーバ IP など
041-53 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス
04-DHCPv6 Reply
Frame 17: 176 bytes on wire (1408 bits), 176 bytes captured (1408 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:03:00:00 (50:00:00:03:00:00), Dst: 50:00:00:04:00:03 (50:00:00:04:00:03)
Internet Protocol Version 6, Src: fe80:db8:fd7::1, Dst: fe80::5200:ff:fe04:3
User Datagram Protocol, Src Port: 547, Dst Port: 546
DHCPv6
Message type: Reply (7)
Transaction ID: 0x1948ce
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14471b00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:47:1b:00
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 41
IAID: 000a0001
T1: 302400
T2: 483840
IA Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 604800
Valid lifetime: 2592000
Prefix length: 56
Prefix address: 2001:db8:cafe::
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:4860:4860::8888
Domain Search List
Option: Domain Search List (24)
Length: 13
Domain name suffix search list
03-Request に対し、実際に割り当てられたアドレス・プレフィックスを 04 で受信。
003 : PD-CL ではリンクローカル アドレスしか持っていないため、宛先が PD-CL リンクローカル、送信元がルータのリンクローカルになります
006 : Reply メッセージを示しています
021 : DHCPv6-PD クライアントの MAC アドレス
022-34 : RFC3633 IA-PD オプション 取得したい アドレス or プレフィックス
035-38 : DNS サーバ
039-42 : ドメイン検索リスト
SLAAC ICMPv6 NS / NA ファイル:SLAAC Gi4 capture.pcapng
IPv6 ND RA で DHCPv6 サーバではなく、PD-CL ルータからアドレスを払い出す SLAAC クライアントのキャプチャです。
ここのみ SLAAC を再起動して取得しています。
- DHCPv6-PD の払い出しと、別の処理で行われるため
01-ICMPv6 Neighbor Solicitation (NS)
Frame 4: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_ff:05:00:03 (33:33:ff:05:00:03)
Internet Protocol Version 6, Src: ::, Dst: ff02::1:ff05:3
Internet Control Message Protocol v6
Type: Neighbor Solicitation (135)
Code: 0
Checksum: 0x821b [correct]
[Checksum Status: Good]
Reserved: 00000000
Target Address: fe80::5200:ff:fe05:3
ICMPv6 Option (Nonce)
Type: Nonce (14)
Length: 1 (8 bytes)
Nonce: 7dfaf2df2a18
003 : SLAAC ではリンクローカル アドレスが使用できるかまだわからないため、送信元がなし、宛先が ff02::1:2 のルータ宛マルチキャストアドレスになります
Duplicate Address Detection (DAD) が終わったあとに、送信元アドレスが使用可能になります
005 : Neighbor Solicitation メッセージを示しています
02-ICMPv6 Neighbor Advertisement (NA)
Frame 9: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::1
Internet Control Message Protocol v6
Type: Neighbor Advertisement (136)
Code: 0
Checksum: 0xe784 [correct]
[Checksum Status: Good]
Flags: 0xa0000000, Router, Override
1... .... .... .... .... .... .... .... = Router: Set
.0.. .... .... .... .... .... .... .... = Solicited: Not set
..1. .... .... .... .... .... .... .... = Override: Set
...0 0000 0000 0000 0000 0000 0000 0000 = Reserved: 0
Target Address: fe80::5200:ff:fe05:3
ICMPv6 Option (Target link-layer address : 50:00:00:05:00:03)
Type: Target link-layer address (2)
Length: 1 (8 bytes)
Link-layer address: 50:00:00:05:00:03 (50:00:00:05:00:03)
003 : SLAAC ではリンクローカル アドレスが使用できるかまだわからないため、送信元がルータのリンクローカルアドレス、宛先が ff02::1 の全ノード宛マルチキャストアドレスになります
005 : Neighbor Advertisement を示しています
009-013 : ルータ + 上書きフラグをセット
SLAAC ICMPv6 RS / RA
01-ICMPv6 Router Solicitation (RS)
Frame 13: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_02 (33:33:00:00:00:02)
Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::2
Internet Control Message Protocol v6
Type: Router Solicitation (133)
Code: 0
Checksum: 0xdb1d [correct]
[Checksum Status: Good]
Reserved: 00000000
ICMPv6 Option (Source link-layer address : 50:00:00:05:00:03)
Type: Source link-layer address (1)
Length: 1 (8 bytes)
Link-layer address: 50:00:00:05:00:03 (50:00:00:05:00:03)
003 : SLAAC では NS / NA でリンクローカル アドレスを取得したため、送信元が SLAAC のリンクローカルアドレス、宛先が ff02::2 のルータ宛マルチキャストアドレスになります
005 : Router Solicitation タイプを示しています
01-ICMPv6 Router Advertisement (RA)
Frame 14: 118 bytes on wire (944 bits), 118 bytes captured (944 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:04:00:00 (50:00:00:04:00:00), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::5200:ff:fe04:0, Dst: ff02::1
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Checksum: 0x83a4 [correct]
[Checksum Status: Good]
Cur hop limit: 64
Flags: 0x40, Other configuration, Prf (Default Router Preference): Medium
0... .... = Managed address configuration: Not set
.1.. .... = Other configuration: Set
..0. .... = Home Agent: Not set
...0 0... = Prf (Default Router Preference): Medium (0)
.... .0.. = Proxy: Not set
.... ..0. = Reserved: 0
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Source link-layer address : 50:00:00:04:00:00)
Type: Source link-layer address (1)
Length: 1 (8 bytes)
Link-layer address: 50:00:00:04:00:00 (50:00:00:04:00:00)
ICMPv6 Option (MTU : 1500)
Type: MTU (5)
Length: 1 (8 bytes)
Reserved
MTU: 1500
ICMPv6 Option (Prefix information : 2001:db8:cafe::/64)
Type: Prefix information (3)
Length: 4 (32 bytes)
Prefix Length: 64
Flag: 0xc0, On-link flag(L), Autonomous address-configuration flag(A)
1... .... = On-link flag(L): Set
.1.. .... = Autonomous address-configuration flag(A): Set
..0. .... = Router address flag(R): Not set
...0 0000 = Reserved: 0
Valid Lifetime: 2592000
Preferred Lifetime: 604800
Reserved
Prefix: 2001:db8:cafe::
003 : 送信元が PD-CL のリンクローカルアドレス、宛先が ff02::1 の全ノード宛マルチキャストアドレスになります
005 : Router Advertisement タイプを示しています
010-016 : Other フラグが On
029-041 : 使用可能なプレフィックスを指定
03-DHCPv6 Information Request
Frame 15: 132 bytes on wire (1056 bits), 132 bytes captured (1056 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_01:00:02 (33:33:00:01:00:02)
Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::1:2
User Datagram Protocol, Src Port: 546, Dst Port: 547
DHCPv6
Message type: Information-request (11)
Transaction ID: 0xc3b690
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001ebd296800
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:bd:29:68:00
User Class
Option: User Class (15)
Length: 10
Vendor Class
Option: Vendor Class (16)
Length: 14
Enterprise ID: ciscoSystems (9)
vendor-class-data: CSR1000V
Option Request
Option: Option Request (6)
Length: 10
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Subscriber Identifier (38)
Requested Option code: Boot File URL (59)
Requested Option code: Vendor-specific Information (17)
003 : SLAAC では NS / NA でリンクローカル アドレスを取得したため、送信元が SLAAC のリンクローカルアドレス、宛先が ff02::2 のルータ宛マルチキャストアドレスになります
005 : Information Request メッセージタイプを示しています
027-034 : DHCPv6 サーバから取得したい情報を示しています M フラグがないため、アドレスは要求していません
04-DHCPv6 Reply
Frame 16: 131 bytes on wire (1048 bits), 131 bytes captured (1048 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:04:00:00 (50:00:00:04:00:00), Dst: 50:00:00:05:00:03 (50:00:00:05:00:03)
Internet Protocol Version 6, Src: fe80::5200:ff:fe04:0, Dst: fe80::5200:ff:fe05:3
User Datagram Protocol, Src Port: 547, Dst Port: 546
DHCPv6
Message type: Reply (7)
Transaction ID: 0xc3b690
Server Identifier
Option: Server Identifier (2)
Length: 10
DUID: 00030001001e14d9fb00
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:14:d9:fb:00
Client Identifier
Option: Client Identifier (1)
Length: 10
DUID: 00030001001ebd296800
DUID Type: link-layer address (3)
Hardware type: Ethernet (1)
Link-layer address: 00:1e:bd:29:68:00
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:4860:4860::8888
Domain Search List
Option: Domain Search List (24)
Length: 13
Domain name suffix search list
List entry: example.com.
003 : SLAAC では NS / NA でリンクローカル アドレスを取得したため、送信元が PD-CL のリンクローカルアドレス、宛先が SLAAC のリンクローカルアドレスになります
005 : Reply メッセージタイプを示しています
027-034 : DHCPv6 サーバから取得したい情報を示しています 03 の Information Request に M フラグがないため、アドレスは要求していません O フラグは On のため、DNS サーバの情報を返しています
05-ICMPv6 Neighbor Solicitation (NS)
Frame 17: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_ff:05:00:03 (33:33:ff:05:00:03)
Internet Protocol Version 6, Src: ::, Dst: ff02::1:ff05:3
Internet Control Message Protocol v6
Type: Neighbor Solicitation (135)
Code: 0
Checksum: 0xe74d [correct]
[Checksum Status: Good]
Reserved: 00000000
Target Address: 2001:db8:cafe:0:5200:ff:fe05:3
ICMPv6 Option (Nonce)
Type: Nonce (14)
Length: 1 (8 bytes)
Nonce: 2b53d5943aa1
2001:db8:cafe:0:5200:ff:fe05:3 宛に NS を送信し、使用中のノードがいないか確認します。
06-ICMPv6 Neighbor Advertisement (NA)
Frame 18: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: 2001:db8:cafe:0:5200:ff:fe05:3, Dst: ff02::1
Internet Control Message Protocol v6
Type: Neighbor Advertisement (136)
Code: 0
Checksum: 0xf316 [correct]
[Checksum Status: Good]
Flags: 0xa0000000, Router, Override
1... .... .... .... .... .... .... .... = Router: Set
.0.. .... .... .... .... .... .... .... = Solicited: Not set
..1. .... .... .... .... .... .... .... = Override: Set
...0 0000 0000 0000 0000 0000 0000 0000 = Reserved: 0
Target Address: 2001:db8:cafe:0:5200:ff:fe05:3
ICMPv6 Option (Target link-layer address : 50:00:00:05:00:03)
Type: Target link-layer address (2)
Length: 1 (8 bytes)
Link-layer address: 50:00:00:05:00:03 (50:00:00:05:00:03)
05 の 1 秒後に、使用中のノードがいないため、2001:db8:cafe:0:5200:ff:fe05:3 を SLAAC で使用します。
リファレンス
Cisco機器を用いた DHCP によるIPアドレス自動取得動作の確認と解説 (DHCPv6-PD)
CSR1000V IPv6 Access Services: DHCPv6 Prefix Delegation
DHCPv6 using the Prefix Delegation Feature Configuration Example
Cisco Catalyst 9300 Series Switches Data Sheet
RFC8415 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
RFC6355 Standards Track - Definition of the UUID-Based DHCPv6 Unique Identifier (DUID-UUID)
IPv6対応ケーブルインターネットアクセス技術仕様ガイドライン
DHCPv6 Relay Agent Notification for Prefix Delegation[1]
- PD スタティックルート インジェクションのトリガーについて記載あり
RFC 6939 - Client Link-Layer Address Option in DHCPv6 日本語訳
RFC 7653 - DHCPv6 Active Leasequery
Juniper Networks アクティブなリースクエリによるシャーシレベルの冗長性
- DHCPv6 リレーエージェント間でリース情報を動悸できる機能らしい
脚注
- ↑ IPv6 routes are added when the relay agent relays a RELAY-REPLY packet, and IPv6 routes are deleted when the prefix delegation lease time expires or the relay agent receives a release message.