2021-09-19 DHCPv6-PD 機能検証

提供: hkatou_Lab
ナビゲーションに移動 検索に移動

普及期・移行期を迎えている、IPv6 の DHCPv6-PD について検証を実施しました。

このページにラボシナリオとして、コンフィグや確認コマンド、疎通確認のポイントなどをまとめています。

目的

初心者向けに DHCPv6-PD と IPv6 の基礎を学習するための、検証の基本情報を提供します。

無料で入手できるソフトウェアを使用し、金銭の負担を減らします。

DHCPv6-PD のメリット

IPv6 で増大するグローバル ユニキャストアドレスを、DHCPv6-PD ルートに集約できます。

以下に直接接続した場合と、DHCPv6-PD クライアント経由で接続した例を記載します。

L3SW 直接接続
例1. L3SW 直接接続
  • 例 1. は L3SW で PC やサーバ、IP 電話などを /64 で直接収容するケースです
  • PC 1 台はグローバル ユニキャストアドレスとリンクローカルアドレスを持つため、IPv6 ND エントリを最低 2 つ消費します
    • 実際には IPv6 一時使用アドレスも存在するため、2 つでは済みません
  • 上記の例では 4 台存在するため、最低 8 エントリを消費します
PD クライアントによるルート集約
例2. PD クライアントによるルート集約
  • 例 2. は L3SW が PD クライアントに集約ルートとして /56 を割り当てた例です
  • PD ルート + PD-Client のリンクローカルアドレスの 2 つのエントリで済みます
    • ただし、実運用としては PD クライアントにも疎通確認用として /64 でグローバル ユニキャストを持たせたほうが運用しやすいケースも考えられます
  • PD-Client 配下では /56 をサブネット分割し、/64 のネットワークを 16 個作成できます
    • /64 1 つでも、分割して複数持たせても良いです
  • PC などの数が増えても、L3SW のリソースには影響しません
表1. IPv6 ND エントリ数の増加率
台数
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 台につきグローバル ユニキャスト + リンクローカルで最低 2 つのエントリを消費するため、Catalyst 9300 1 台あたり 8,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 メモリを使用しています


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
Diagram
Diagram


IPv6 アドレッシング表

検証に使用するための IPv6 アドレスを、文書用例示アドレスの 2001:DB8::/32 から、サブネット分割して各ホストへ割り当てます。

表2. IPv6 アドレッシング表
文書用例示アドレス 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 用

::8888/128

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

DHCPv6-SV コンフィグ
プロトコル コンフィグ 解説
DHCPv6 サーバ DHCPv6-SV#show run | s ipv6 uni|ipv6 dhcp|Gi.*4|ipv6 local

ipv6 unicast-routing

ipv6 dhcp pool DHCPv6-PD01

prefix-delegation pool PD-POOL01

link-address 2001:DB8:FD7::1/64

dns-server 2001:DB8:4860::8888

domain-name example.com

interface GigabitEthernet4

no ip address

negotiation auto

ipv6 address 2001:DB8:AE86:100::128/64

ipv6 nd ra suppress all

ipv6 dhcp server

no mop enabled

no mop sysid

ipv6 route ::/0 GigabitEthernet4 FE80::AE86:100:1

ipv6 local pool PD-POOL01 2001:DB8:CAFE::/48 56

ipv6 dhcp pool
  • 払い出すプール全体を設定

prefix-delegation pool

  • 払い出すプレフィックス プールを呼び出す

ink-address

  • 払い出し先の問い合わせ元アドレス
  • 通常は DHCPv6 リレーエージェントの送信元を指定

dns-server

  • 払い出す DNS サーバのアドレス

domain-name

  • 払い出すドメイン名

ipv6 local pool

  • 払い出すプールを IOS 内部で持たせる

IPv6 スタティックルーティング

IPv6_Static_Routing
IPv6_Static_Routing

DHCPv6-SV

DHCPv6-SV コンフィグ
プロトコル コンフィグ 解説
IPv6 スタティックルーティング DHCPv6-SV#show run | s ipv6 uni|ipv6 route|Gi.*4

ipv6 unicast-routing

interface GigabitEthernet4

no ip address

negotiation auto

ipv6 address 2001:DB8:AE86:100::128/64

ipv6 nd ra suppress all

ipv6 dhcp server

no mop enabled

no mop sysid

ipv6 route ::/0 GigabitEthernet4 FE80::AE86:100:1

ipv6 route
  • DHCPv6-SV は Core 宛にデフォルトルートを設定
  • OS を統一するため CSR1000V で DHCPv6 サーバを実装していますが、本来はルーティングプロトコルの動作しないサーバ OS が想定されるため、スタティックルーティングとしています

ipv6 address

  • DHCPv6 サーバは DHCPv6 リレーエージェントで指定されるため、固定 IPv6 アドレスを使用します
  • IPv4 DHCP サーバはプライベート アドレスであることが多いですが、IPv6 DHCPv6 サーバはグローバル ユニキャスト アドレスを使用するため、実際にはファイアウォール アプライアンスやサーバ OS の firewalld や iptables などで適切に防御します

Core

Core コンフィグ
プロトコル コンフィグ 解説
IPv6 スタティックルーティング Core#show run | s ipv6 uni|Gi.*3

ipv6 unicast-routing

interface GigabitEthernet3

no ip address

negotiation auto

ipv6 address FE80::AE86:100:1 link-local

ipv6 address 2001:DB8:AE86:100::1/64

ipv6 nd ra suppress all

ipv6 ospf 1 area 0.0.0.0

no mop enabled

no mop sysid

ipv6 address <address> link-local
  • Core は DHCPv6-SV を収容する、ゲートウェイ用インターフェースを設定
  • IPv6 では通常 link-local アドレスをルーティングのネクストホップとして指定

ipv6 nd ra suppress all

  • IPv6 ND ルータ アドバタイズメントを抑制
  • all オプションを付けることで、RS の問い合わせにも応答しなくなる

ipv6 ospf 1 area 0.0.0.0

  • OSPFv3 にこのインターフェースのネットワークを広報するため、エリアを設定

OSPFv3

隣接関係

OSPFv3 Neighbor
OSPFv3 Neighbor

Core

Core コンフィグ
プロトコル コンフィグ 解説
OSPFv3 Core#show run | s Gi.*1|ipv6 uni|ipv6 router|Lo.*0

ipv6 unicast-routing

interface Loopback0

ip address 1.1.1.1 255.255.255.255

ipv6 address 2001:DB8:4860::8888/128

ipv6 enable

ipv6 ospf 1 area 0.0.0.0

interface GigabitEthernet1

no ip address

negotiation auto

ipv6 address FE80::AE86:200:1 link-local

ipv6 address 2001:DB8:AE86:200::1/64

ipv6 ospf 1 area 0.0.0.0

no mop enabled

no mop sysid

ipv6 router ospf 1

router-id 1.1.1.1

passive-interface default

no passive-interface GigabitEthernet1

ipv6 ospf 1 area 0.0.0.0 / no passive-interface GigabitEthernet1
  • Core は Gi1 で Dist と接続、OSPFv3 隣接関係を確立する

passive-interface default

  • Gi3 の DHCPv6-SV とは隣接関係を確立しないために、OSPFv3 で passive-interface default を設定する

Dist

Dist コンフィグ
プロトコル コンフィグ 解説
OSPFv3 Dist#show run | s Gi.*4|ipv6 uni|ipv6 router|Lo.*0

ipv6 unicast-routing

interface Loopback0

ip address 1.1.1.11 255.255.255.255

ipv6 enable

ipv6 ospf 1 area 0.0.0.0

interface GigabitEthernet4

no ip address

negotiation auto

ipv6 address FE80::AE86:200:2 link-local

ipv6 address 2001:DB8:AE86:200::2/64

ipv6 ospf 1 area 0.0.0.0

no mop enabled

no mop sysid

ipv6 router ospf 1

summary-prefix 2001:DB8:CAFE::/48

router-id 1.1.1.11

passive-interface default

no passive-interface GigabitEthernet4

redistribute static

ipv6 ospf 1 area 0.0.0.0 / no passive-interface GigabitEthernet4
  • Dist は Gi4 で Core と接続、OSPFv3 隣接関係を確立する

passive-interface default

  • Gi1 の PD-CL と隣接関係を確立しないために、OSPFv3 で passive-interface default を設定する

ルート集約

Dist

Dist コンフィグ
プロトコル コンフィグ 解説
OSPFv3

ルート集約

Dist#show run | s Gi.*1|ipv6 uni|ipv6 router|Lo.*0

ipv6 unicast-routing

interface Loopback0

ip address 1.1.1.11 255.255.255.255

ipv6 enable

ipv6 ospf 1 area 0.0.0.0

interface GigabitEthernet1

no ip address

negotiation auto

ipv6 address FE80:DB8:FD7::1 link-local

ipv6 address 2001:DB8:FD7::1/64

ipv6 enable

ipv6 nd prefix default no-advertise

ipv6 nd managed-config-flag

ipv6 nd other-config-flag

ipv6 dhcp relay destination 2001:DB8:AE86:100::128

ipv6 dhcp relay source-interface GigabitEthernet1

ipv6 ospf 1 area 0.0.0.0

no mop enabled

no mop sysid

ipv6 router ospf 1

summary-prefix 2001:DB8:CAFE::/48

router-id 1.1.1.11

passive-interface default

no passive-interface GigabitEthernet4

redistribute static

ipv6 ospf 1 area 0.0.0.0
  • OSPFv3 にこのインターフェースのネットワークを広報するため、エリアを設定

summary-prefix

  • Dist は Core に OSPFv3 ルートを広報する際、/56 サブネットルートを集約して、/48 集約ルートで広報

redistribute static

  • PD ルートは Cisco の場合スタティックルートとして登録されるため、再配布を設定することで別の OSPFv3 ルータへルートを配布

DHCPv6-PD リレーエージェント

Dist

Dist コンフィグ
プロトコル コンフィグ 解説
DHCPv6

リレーエージェント

Dist#show run int gi 1

Building configuration...

Current configuration : 406 bytes

!

interface GigabitEthernet1

no ip address

negotiation auto

ipv6 address FE80:DB8:FD7::1 link-local

ipv6 address 2001:DB8:FD7::1/64

ipv6 enable

ipv6 nd prefix default no-advertise

ipv6 nd managed-config-flag

ipv6 nd other-config-flag

ipv6 dhcp relay destination 2001:DB8:AE86:100::128

ipv6 dhcp relay source-interface GigabitEthernet1

ipv6 ospf 1 area 0.0.0.0

no mop enabled

no mop sysid

end

ipv6 address 2001:DB8:FD7::1/64
  • DHCPv6 リレーエージェント link-address に使用す
  • DHCPv6-SV で該当する link-address の Pool からプレフィックスが払い出される
  • 複数の DHCPv6 リレーエージェント機器 (Dist) が存在した場合、DHCPv6 サーバでプールも複数必要なため、リレーエージェントを見分けるための情報として必要

ipv6 nd managed-config-flag

  • ipv6 のアドレス割当を Dist の ND RA (Neighbor Discovery Router Advertisement) から、DHCPv6 サーバへ変更する

ipv6 nd other-config-flag

  • DNS サーバの情報を DHCPv6 サーバに問い合わせる

ipv6 dhcp relay destination

  • DHCPv6-SV のグローバル ユニキャスト アドレスを指定する

ipv6 dhcp relay source-interface

  • DHCPv6-SV にリレーする際の送信元アドレスのインターフェースを指定する
DHCPv6-PD

ルートインジェクション

Dist#show run all | s ipv6 dhcp iapd-route-add

ipv6 dhcp iapd-route-add

ipv6 dhcp iapd-route-add
  • PD が払い出されると、自動でスタティックルートを挿入します
  • デフォルトで有効です

DHCPv6-PD クライアント

PD-CL

PD-CL コンフィグ
プロトコル コンフィグ 解説
DHCPv6-PD

クライアント

PD-CL#show run | s ipv6 uni|Gi.*4

ipv6 unicast-routing

interface GigabitEthernet4

no ip address

negotiation auto

ipv6 address autoconfig default

ipv6 nd ra suppress all

ipv6 dhcp client pd PD-PREFIX

ipv6 dhcp client request vendor

no mop enabled

no mop sysid

ipv6 address autoconfig default
  • ipv6 アドレスを自動設定
  • default オプションを付けるとデフォルトルートとして使用

ipv6 dhcp client pd PD-PREFIX

  • DHCPv6 PD クライアントとして設定
  • PD-PREFIX という名前で、サブネット分割する際の集約プレフィックスを登録

DHCPv6-PD SLAAC ゲートウェイ

PD-CL

PD-CL コンフィグ
プロトコル コンフィグ 解説
DHCPv6-PD

クライアント

PD-CL#show run | s ipv6 uni|ipv6 dhcp pool|Gi.*1

ipv6 unicast-routing

ipv6 dhcp pool SLAAC

import dns-server

import domain-name

interface GigabitEthernet1

no ip address

negotiation auto

ipv6 address PD-PREFIX ::1/64

ipv6 nd other-config-flag

ipv6 dhcp server SLAAC

no mop enabled

no mop sysid

ipv6 dhcp pool
  • DHCPv6-PD で受信した DNS サーバとドメイン名を SLAAC プールで使用

ipv6 address PD-PREFIX ::1/64

  • Gi1 で /56 集約ルートである PD-PREFIX から /64 にサブネット分割し、::1/64 アドレスを割当

IPv6 SLAAC クライアント

SLAAC

SLAAC コンフィグ
プロトコル コンフィグ 解説
IPv6 クライアント SLAAC#show run | s ipv6 uni|Gi.*4

ipv6 unicast-routing

interface GigabitEthernet4

no ip address

negotiation auto

ipv6 address autoconfig default

no mop enabled

no mop sysid

ipv6 address autoconfig default
  • ipv6 アドレスを自動設定
  • default オプションを付けるとデフォルトルートとして使用

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

DHCPv6-SV 確認コマンド
プロトコル show コマンド 確認ポイント
DHCPv6

サーバ

DHCPv6-SV#show ipv6 dhcp binding

Client: FE80::5200:FF:FE04:3

  DUID: 00030001001E14D9FB00

  Username : unassigned

  VRF : default

  Interface : relayed

  IA PD: IA ID 0x000A0001, T1 302400, T2 483840

    Prefix: 2001:DB8:CAFE::/56

            preferred lifetime 604800, valid lifetime 2592000

            expires at Oct 19 2021 12:07 AM (2587060 seconds)

/56 がバインディングテーブルに存在すること
DHCPv6-SV#show ipv6 dhcp pool

DHCPv6 pool: DHCPv6-PD01

  Prefix pool: PD-POOL01

  Link-address prefix: 2001:DB8:FD7::1/64

               preferred lifetime 604800, valid lifetime 2592000

  DNS server: 2001:DB8:4860::8888

  Domain name: example.com

  Active clients: 1

link-address が PD ルートを払い出す Dist のインターフェースアドレスと一致していること

Core

show ipv6 route

Core 確認コマンド
プロトコル show コマンド 確認ポイント
OSPFv3 Core#show ipv6 route ospf

IPv6 Routing Table - default - 7 entries

Codes: C - Connected, L - Local, S - Static, U - Per-user Static route

       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1

       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP

       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination

       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter

       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1

       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations

       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy

       lp - LISP publications, a - Application, m - OMP

O   2001:DB8:FD7::/64 [110/2]

     via FE80::AE86:200:2, GigabitEthernet1

OE2 2001:DB8:CAFE::/48 [110/20]

     via FE80::AE86:200:2, GigabitEthernet1

dist から以下のルートを OSPFv3 で学習していること
  • /64 link-address
  • /48 DHCPv6-PD 集約ルート

/56 の DHCPv6-PD サブネットルートを受信している場合、Dist で集約ルートに失敗しています

Dist

OSPFv3

show ipv6 ospf summary-prefix
Dist 確認コマンド
プロトコル show コマンド 確認ポイント
OSPFv3 Dist#show ipv6 ospf summary-prefix

            OSPFv3 Router with ID (1.1.1.11) (Process ID 1)

2001:DB8:CAFE::/48  Metric 20, External metric type 2, Tag 0

/56 スタティックルートが、集約して /48 で再配布されていること
Dist#show ipv6 route ospf

IPv6 Routing Table - default - 9 entries

Codes: C - Connected, L - Local, S - Static, U - Per-user Static route

       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1

       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP

       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination

       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter

       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1

       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations

       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy

       lp - LISP publications, a - Application, m - OMP

O   2001:DB8:4860::8888/128 [110/1]

     via FE80::AE86:200:1, GigabitEthernet4

O   2001:DB8:AE86:100::/64 [110/2]

     via FE80::AE86:200:1, GigabitEthernet4

O   2001:DB8:CAFE::/48 [254/20]

     via Null0, directly connected

以下を Core から受信していること
  • /64 サーバ収容セグメント
  • /128 インターネット模擬 DNS サーバ IP

以下が Null0 ルートとして登録されていること

  • /48 DHCPv6-PD 集約ルート


/48 DHCPv6-PD 集約ルートは、以下の条件で自動登録されます。

  • /56 で PD ルートを払い出し
  • OSPFv3 で summary-prefix を設定


これは以下の効果があります。

  • OSPFv3 で集約ルートを広報することで、ルーティングテーブルの消費量を削減
  • 存在しない /56 ルート宛のトラフィックを受信した際、ASIC などハードウェア レベルでパケットをドロップ
    • Null0 が存在しない + 該当するトラフィックを受信した場合、デフォルトルートで ping/pong ルーティングによるルーティング ループが発生し、CPU 使用率が高騰します
DHCPv6-PD

リレーエージェント

Dist#show ipv6 dhcp relay binding

Relay Bindings associated with default vrf:

Prefix: 2001:DB8:CAFE::/56 (GigabitEthernet1)

  DUID: 00030001001E14D9FB00

  IAID: 655361

  lifetime: 2592000

  expiration: 01:34:35 UTC Oct 19 2021

Summary:

  Total number of Relay bindings = 1

  Total number of IAPD bindings = 1

  Total number of IANA bindings = 0

  Total number of Relay bindings added by Bulk lease = 0

/56 PD ルートと同じプレフィックスを払い出していること
Dist#show ipv6 route static

IPv6 Routing Table - default - 8 entries

Codes: C - Connected, L - Local, S - Static, U - Per-user Static route

       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1

       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP

       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination

       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter

       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1

       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations

       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy

       lp - LISP publications, a - Application, m - OMP

S   2001:DB8:CAFE::/56 [1/0]

     via FE80::5200:FF:FE04:3, GigabitEthernet1

DHCPv6 Relay された際、スタティックルートが登録されます

PD クライアント宛 /56 スタティックルートが登録されていること

PD-CL

DHCPv6-PD クライアント

PD-CL 確認コマンド
プロトコル show コマンド 確認ポイント
DHCPv6-PD

クライアント

PD-CL#show ipv6 dhcp interface GigabitEthernet 4

GigabitEthernet4 is in client mode

  Prefix State is OPEN (0)

  Information refresh timer expires in 21:20:06

  Renew will be sent in 3d09h

  Address State is IDLE

  List of known servers:

    Reachable via address: FE80:DB8:FD7::1

    DUID: 00030001001E14471B00

    Preference: 0

    Configuration parameters:

      IA PD: IA ID 0x000A0001, T1 302400, T2 483840

        Prefix: 2001:DB8:CAFE::/56

                preferred lifetime 604800, valid lifetime 2592000

                expires at Oct 19 2021 04:09 AM (2582406 seconds)

      DNS server: 2001:4860:4860::8888

      Domain name: example.com

      Information refresh time: 0

  Prefix name: PD-PREFIX

  Prefix Rapid-Commit: disabled

  Address Rapid-Commit: disabled

/56 プレフィックスを受信していること

DNS サーバアドレスが DHCPv6 サーバで設定したものと同一であること

ドメイン名が DHCPv6 サーバで設定したものと同一であること

下位にサブネット分割するための、プレフィックス名があること

PD-CL#show ipv6 interface GigabitEthernet 1 prefix

IPv6 Prefix Advertisements GigabitEthernet1

Codes for 1st column:

       A - Address, P - Prefix-Advertisement, O - Pool

       U - Per-user prefix

Codes for 2nd column and above:

       D - Default

       N - Not advertised, C - Calendar

PD default [LA] Valid lifetime 2592000, preferred lifetime 604800

A 2001:DB8:CAFE::/64 [LA] Valid lifetime 2592000, preferred lifetime 604800

下位側インターフェースに PRE-PREFIX /56 を上位に使用した、/64 プレフィックスを割り当てていること
DHCPv6 サーバ PD-CL#show ipv6 dhcp interface GigabitEthernet 1

GigabitEthernet1 is in server mode

  Using pool: SLAAC

  Preference value: 0

  Hint from client: ignored

  Rapid-Commit: disabled

Gi1 に pool 名を指定した場合、pool 名が出力されます

Automatic で Pool 名を指定しない場合もあります

PD-CL#show ipv6 dhcp pool

DHCPv6 pool: SLAAC

  Imported DNS server: 2001:DB8:4860::8888

  Imported Domain name: example.com

  Active clients: 0

Pool に DHCPv6 サーバから受信した
  • DNS サーバ
  • ドメイン名

が設定されていること

SLAAC

SLAAC 確認コマンド
プロトコル show コマンド 確認ポイント
IPv6 クライアント SLAAC#show ipv6 route

IPv6 Routing Table - default - 4 entries

Codes: C - Connected, L - Local, S - Static, U - Per-user Static route

       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1

       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP

       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination

       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter

       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1

       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations

       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy

       lp - LISP publications, a - Application, m - OMP

ND  ::/0 [2/0]

     via FE80::5200:FF:FE04:0, GigabitEthernet4

NDp 2001:DB8:CAFE::/64 [2/0]

     via GigabitEthernet4, directly connected

L   2001:DB8:CAFE:0:5200:FF:FE05:3/128 [0/0]

     via GigabitEthernet4, receive

L   FF00::/8 [0/0]

     via Null0, receive

IPv6 デフォルトルートを持っていること

PD-CL でサブネット分割されたグローバルユニキャストネットワークアドレスを持っていること

SLAAC#show ip name-servers

2001:DB8:4860::8888

DHCPV6-PD -> PD-CL 経由で DNS サーバを受信できていること

疎通確認

疎通不可の場合、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 で広報しているか


パケットキャプチャ

以下の手順で採取しました。

  1. PD-CL Gi4 を shutdown
  2. write memory
  3. reload
  4. 各所でキャプチャ開始
  5. PD-CL Gi4 no shutdown

再起動しない場合、以前取得していたプレフィックスを再度要求する、rebind メッセージがキャプチャできます。

DHCPv6-SV Gi4 ファイル:DHCPv6-SV Gi4.pcapng

01-DHCPv6 Relay Forward

 1 Frame 1: 231 bytes on wire (1848 bits), 231 bytes captured (1848 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: 2001:db8:fd7::1, Dst: 2001:db8:ae86:100::128
 4 User Datagram Protocol, Src Port: 547, Dst Port: 547
 5 DHCPv6
 6     Message type: Relay-forw (12)
 7     Hopcount: 0
 8     Link address: 2001:db8:fd7::1
 9     Peer address: fe80::5200:ff:fe04:3
10     Relay Message
11         Option: Relay Message (9)
12         Length: 84
13         DHCPv6
14             Message type: Solicit (1)
15             Transaction ID: 0x17cbbf
16             Elapsed time
17                 Option: Elapsed time (8)
18                 Length: 2
19                 Elapsed time: 0ms
20             Client Identifier
21                 Option: Client Identifier (1)
22                 Length: 10
23                 DUID: 00030001001e14d9fb00
24                 DUID Type: link-layer address (3)
25                 Hardware type: Ethernet (1)
26                 Link-layer address: 00:1e:14:d9:fb:00
27             User Class
28                 Option: User Class (15)
29                 Length: 10
30             Vendor Class
31                 Option: Vendor Class (16)
32                 Length: 14
33                 Enterprise ID: ciscoSystems (9)
34                 vendor-class-data: CSR1000V
35             Option Request
36                 Option: Option Request (6)
37                 Length: 8
38                 Requested Option code: Identity Association for Prefix Delegation (25)
39                 Requested Option code: DNS recursive name server (23)
40                 Requested Option code: Domain Search List (24)
41                 Requested Option code: Boot File URL (59)
42             Identity Association for Prefix Delegation
43                 Option: Identity Association for Prefix Delegation (25)
44                 Length: 12
45                 IAID: 000a0001
46                 T1: 0
47                 T2: 0
48     Client Link-Layer Address
49         Option: Client Link-Layer Address (79)
50         Length: 8
51     Interface-Id
52         Option: Interface-Id (18)
53         Length: 5
54         Interface-ID: 0103476931
55     Remote Identifier
56         Option: Remote Identifier (37)
57         Length: 22
58         Enterprise ID: ciscoSystems (9)
59         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

 1 Frame 2: 223 bytes on wire (1784 bits), 223 bytes captured (1784 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: 2001:db8:ae86:100::128, Dst: 2001:db8:fd7::1
 4 User Datagram Protocol, Src Port: 547, Dst Port: 547
 5 DHCPv6
 6     Message type: Relay-reply (13)
 7     Hopcount: 0
 8     Link address: 2001:db8:fd7::1
 9     Peer address: fe80::5200:ff:fe04:3
10     Relay Message
11         Option: Relay Message (9)
12         Length: 114
13         DHCPv6
14             Message type: Advertise (2)
15             Transaction ID: 0x17cbbf
16             Server Identifier
17                 Option: Server Identifier (2)
18                 Length: 10
19                 DUID: 00030001001e14471b00
20                 DUID Type: link-layer address (3)
21                 Hardware type: Ethernet (1)
22                 Link-layer address: 00:1e:14:47:1b:00
23             Client Identifier
24                 Option: Client Identifier (1)
25                 Length: 10
26                 DUID: 00030001001e14d9fb00
27                 DUID Type: link-layer address (3)
28                 Hardware type: Ethernet (1)
29                 Link-layer address: 00:1e:14:d9:fb:00
30             Identity Association for Prefix Delegation
31                 Option: Identity Association for Prefix Delegation (25)
32                 Length: 41
33                 IAID: 000a0001
34                 T1: 302400
35                 T2: 483840
36                 IA Prefix
37                     Option: IA Prefix (26)
38                     Length: 25
39                     Preferred lifetime: 604800
40                     Valid lifetime: 2592000
41                     Prefix length: 56
42                     Prefix address: 2001:db8:cafe::
43             DNS recursive name server
44                 Option: DNS recursive name server (23)
45                 Length: 16
46                  1 DNS server address: 2001:4860:4860::8888
47             Domain Search List
48                 Option: Domain Search List (24)
49                 Length: 13
50                 Domain name suffix search list
51     Interface-Id
52         Option: Interface-Id (18)
53         Length: 5
54         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

 1 Frame 3: 274 bytes on wire (2192 bits), 274 bytes captured (2192 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: 2001:db8:fd7::1, Dst: 2001:db8:ae86:100::128
 4 User Datagram Protocol, Src Port: 547, Dst Port: 547
 5 DHCPv6
 6     Message type: Relay-forw (12)
 7     Hopcount: 0
 8     Link address: 2001:db8:fd7::1
 9     Peer address: fe80::5200:ff:fe04:3
10     Relay Message
11         Option: Relay Message (9)
12         Length: 127
13         DHCPv6
14             Message type: Request (3)
15             Transaction ID: 0x1948ce
16             Elapsed time
17                 Option: Elapsed time (8)
18                 Length: 2
19                 Elapsed time: 0ms
20             Client Identifier
21                 Option: Client Identifier (1)
22                 Length: 10
23                 DUID: 00030001001e14d9fb00
24                 DUID Type: link-layer address (3)
25                 Hardware type: Ethernet (1)
26                 Link-layer address: 00:1e:14:d9:fb:00
27             User Class
28                 Option: User Class (15)
29                 Length: 10
30             Vendor Class
31                 Option: Vendor Class (16)
32                 Length: 14
33                 Enterprise ID: ciscoSystems (9)
34                 vendor-class-data: CSR1000V
35             Option Request
36                 Option: Option Request (6)
37                 Length: 8
38                 Requested Option code: Identity Association for Prefix Delegation (25)
39                 Requested Option code: DNS recursive name server (23)
40                 Requested Option code: Domain Search List (24)
41                 Requested Option code: Boot File URL (59)
42             Server Identifier
43                 Option: Server Identifier (2)
44                 Length: 10
45                 DUID: 00030001001e14471b00
46                 DUID Type: link-layer address (3)
47                 Hardware type: Ethernet (1)
48                 Link-layer address: 00:1e:14:47:1b:00
49             Identity Association for Prefix Delegation
50                 Option: Identity Association for Prefix Delegation (25)
51                 Length: 41
52                 IAID: 000a0001
53                 T1: 0
54                 T2: 0
55                 IA Prefix
56                     Option: IA Prefix (26)
57                     Length: 25
58                     Preferred lifetime: 0
59                     Valid lifetime: 0
60                     Prefix length: 56
61                     Prefix address: 2001:db8:cafe::
62     Client Link-Layer Address
63         Option: Client Link-Layer Address (79)
64         Length: 8
65     Interface-Id
66         Option: Interface-Id (18)
67         Length: 5
68         Interface-ID: 0103476931
69     Remote Identifier
70         Option: Remote Identifier (37)
71         Length: 22
72         Enterprise ID: ciscoSystems (9)
73         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

 1 Frame 4: 223 bytes on wire (1784 bits), 223 bytes captured (1784 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: 2001:db8:ae86:100::128, Dst: 2001:db8:fd7::1
 4 User Datagram Protocol, Src Port: 547, Dst Port: 547
 5 DHCPv6
 6     Message type: Relay-reply (13)
 7     Hopcount: 0
 8     Link address: 2001:db8:fd7::1
 9     Peer address: fe80::5200:ff:fe04:3
10     Relay Message
11         Option: Relay Message (9)
12         Length: 114
13         DHCPv6
14             Message type: Reply (7)
15             Transaction ID: 0x1948ce
16             Server Identifier
17                 Option: Server Identifier (2)
18                 Length: 10
19                 DUID: 00030001001e14471b00
20                 DUID Type: link-layer address (3)
21                 Hardware type: Ethernet (1)
22                 Link-layer address: 00:1e:14:47:1b:00
23             Client Identifier
24                 Option: Client Identifier (1)
25                 Length: 10
26                 DUID: 00030001001e14d9fb00
27                 DUID Type: link-layer address (3)
28                 Hardware type: Ethernet (1)
29                 Link-layer address: 00:1e:14:d9:fb:00
30             Identity Association for Prefix Delegation
31                 Option: Identity Association for Prefix Delegation (25)
32                 Length: 41
33                 IAID: 000a0001
34                 T1: 302400
35                 T2: 483840
36                 IA Prefix
37                     Option: IA Prefix (26)
38                     Length: 25
39                     Preferred lifetime: 604800
40                     Valid lifetime: 2592000
41                     Prefix length: 56
42                     Prefix address: 2001:db8:cafe::
43             DNS recursive name server
44                 Option: DNS recursive name server (23)
45                 Length: 16
46                  1 DNS server address: 2001:4860:4860::8888
47             Domain Search List
48                 Option: Domain Search List (24)
49                 Length: 13
50                 Domain name suffix search list
51     Interface-Id
52         Option: Interface-Id (18)
53         Length: 5
54         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

 1 Frame 14: 146 bytes on wire (1168 bits), 146 bytes captured (1168 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe04:3, Dst: ff02::1:2
 4 User Datagram Protocol, Src Port: 546, Dst Port: 547
 5 DHCPv6
 6     Message type: Solicit (1)
 7     Transaction ID: 0x17cbbf
 8     Elapsed time
 9         Option: Elapsed time (8)
10         Length: 2
11         Elapsed time: 0ms
12     Client Identifier
13         Option: Client Identifier (1)
14         Length: 10
15         DUID: 00030001001e14d9fb00
16         DUID Type: link-layer address (3)
17         Hardware type: Ethernet (1)
18         Link-layer address: 00:1e:14:d9:fb:00
19     User Class
20         Option: User Class (15)
21         Length: 10
22     Vendor Class
23         Option: Vendor Class (16)
24         Length: 14
25         Enterprise ID: ciscoSystems (9)
26         vendor-class-data: CSR1000V
27     Option Request
28         Option: Option Request (6)
29         Length: 8
30         Requested Option code: Identity Association for Prefix Delegation (25)
31         Requested Option code: DNS recursive name server (23)
32         Requested Option code: Domain Search List (24)
33         Requested Option code: Boot File URL (59)
34     Identity Association for Prefix Delegation
35         Option: Identity Association for Prefix Delegation (25)
36         Length: 12
37         IAID: 000a0001
38         T1: 0
39         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

 1 Frame 15: 176 bytes on wire (1408 bits), 176 bytes captured (1408 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80:db8:fd7::1, Dst: fe80::5200:ff:fe04:3
 4 User Datagram Protocol, Src Port: 547, Dst Port: 546
 5 DHCPv6
 6     Message type: Advertise (2)
 7     Transaction ID: 0x17cbbf
 8     Server Identifier
 9         Option: Server Identifier (2)
10         Length: 10
11         DUID: 00030001001e14471b00
12         DUID Type: link-layer address (3)
13         Hardware type: Ethernet (1)
14         Link-layer address: 00:1e:14:47:1b:00
15     Client Identifier
16         Option: Client Identifier (1)
17         Length: 10
18         DUID: 00030001001e14d9fb00
19         DUID Type: link-layer address (3)
20         Hardware type: Ethernet (1)
21         Link-layer address: 00:1e:14:d9:fb:00
22     Identity Association for Prefix Delegation
23         Option: Identity Association for Prefix Delegation (25)
24         Length: 41
25         IAID: 000a0001
26         T1: 302400
27         T2: 483840
28         IA Prefix
29             Option: IA Prefix (26)
30             Length: 25
31             Preferred lifetime: 604800
32             Valid lifetime: 2592000
33             Prefix length: 56
34             Prefix address: 2001:db8:cafe::
35     DNS recursive name server
36         Option: DNS recursive name server (23)
37         Length: 16
38          1 DNS server address: 2001:4860:4860::8888
39     Domain Search List
40         Option: Domain Search List (24)
41         Length: 13
42         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

 1 Frame 16: 189 bytes on wire (1512 bits), 189 bytes captured (1512 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe04:3, Dst: ff02::1:2
 4 User Datagram Protocol, Src Port: 546, Dst Port: 547
 5 DHCPv6
 6     Message type: Request (3)
 7     Transaction ID: 0x1948ce
 8     Elapsed time
 9         Option: Elapsed time (8)
10         Length: 2
11         Elapsed time: 0ms
12     Client Identifier
13         Option: Client Identifier (1)
14         Length: 10
15         DUID: 00030001001e14d9fb00
16         DUID Type: link-layer address (3)
17         Hardware type: Ethernet (1)
18         Link-layer address: 00:1e:14:d9:fb:00
19     User Class
20         Option: User Class (15)
21         Length: 10
22     Vendor Class
23         Option: Vendor Class (16)
24         Length: 14
25         Enterprise ID: ciscoSystems (9)
26         vendor-class-data: CSR1000V
27     Option Request
28         Option: Option Request (6)
29         Length: 8
30         Requested Option code: Identity Association for Prefix Delegation (25)
31         Requested Option code: DNS recursive name server (23)
32         Requested Option code: Domain Search List (24)
33         Requested Option code: Boot File URL (59)
34     Server Identifier
35         Option: Server Identifier (2)
36         Length: 10
37         DUID: 00030001001e14471b00
38         DUID Type: link-layer address (3)
39         Hardware type: Ethernet (1)
40         Link-layer address: 00:1e:14:47:1b:00
41     Identity Association for Prefix Delegation
42         Option: Identity Association for Prefix Delegation (25)
43         Length: 41
44         IAID: 000a0001
45         T1: 0
46         T2: 0
47         IA Prefix
48             Option: IA Prefix (26)
49             Length: 25
50             Preferred lifetime: 0
51             Valid lifetime: 0
52             Prefix length: 56
53             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

 1 Frame 17: 176 bytes on wire (1408 bits), 176 bytes captured (1408 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80:db8:fd7::1, Dst: fe80::5200:ff:fe04:3
 4 User Datagram Protocol, Src Port: 547, Dst Port: 546
 5 DHCPv6
 6     Message type: Reply (7)
 7     Transaction ID: 0x1948ce
 8     Server Identifier
 9         Option: Server Identifier (2)
10         Length: 10
11         DUID: 00030001001e14471b00
12         DUID Type: link-layer address (3)
13         Hardware type: Ethernet (1)
14         Link-layer address: 00:1e:14:47:1b:00
15     Client Identifier
16         Option: Client Identifier (1)
17         Length: 10
18         DUID: 00030001001e14d9fb00
19         DUID Type: link-layer address (3)
20         Hardware type: Ethernet (1)
21         Link-layer address: 00:1e:14:d9:fb:00
22     Identity Association for Prefix Delegation
23         Option: Identity Association for Prefix Delegation (25)
24         Length: 41
25         IAID: 000a0001
26         T1: 302400
27         T2: 483840
28         IA Prefix
29             Option: IA Prefix (26)
30             Length: 25
31             Preferred lifetime: 604800
32             Valid lifetime: 2592000
33             Prefix length: 56
34             Prefix address: 2001:db8:cafe::
35     DNS recursive name server
36         Option: DNS recursive name server (23)
37         Length: 16
38          1 DNS server address: 2001:4860:4860::8888
39     Domain Search List
40         Option: Domain Search List (24)
41         Length: 13
42         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)

 1 Frame 4: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: ::, Dst: ff02::1:ff05:3
 4 Internet Control Message Protocol v6
 5     Type: Neighbor Solicitation (135)
 6     Code: 0
 7     Checksum: 0x821b [correct]
 8     [Checksum Status: Good]
 9     Reserved: 00000000
10     Target Address: fe80::5200:ff:fe05:3
11     ICMPv6 Option (Nonce)
12         Type: Nonce (14)
13         Length: 1 (8 bytes)
14         Nonce: 7dfaf2df2a18

003 : SLAAC ではリンクローカル アドレスが使用できるかまだわからないため、送信元がなし、宛先が ff02::1:2 のルータ宛マルチキャストアドレスになります

Duplicate Address Detection (DAD) が終わったあとに、送信元アドレスが使用可能になります

005 : Neighbor Solicitation メッセージを示しています


02-ICMPv6 Neighbor Advertisement (NA)

 1 Frame 9: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
 2 Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_01 (33:33:00:00:00:01)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::1
 4 Internet Control Message Protocol v6
 5     Type: Neighbor Advertisement (136)
 6     Code: 0
 7     Checksum: 0xe784 [correct]
 8     [Checksum Status: Good]
 9     Flags: 0xa0000000, Router, Override
10         1... .... .... .... .... .... .... .... = Router: Set
11         .0.. .... .... .... .... .... .... .... = Solicited: Not set
12         ..1. .... .... .... .... .... .... .... = Override: Set
13         ...0 0000 0000 0000 0000 0000 0000 0000 = Reserved: 0
14     Target Address: fe80::5200:ff:fe05:3
15     ICMPv6 Option (Target link-layer address : 50:00:00:05:00:03)
16         Type: Target link-layer address (2)
17         Length: 1 (8 bytes)
18         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)

 1 Frame 13: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface -, id 0
 2 Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_02 (33:33:00:00:00:02)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::2
 4 Internet Control Message Protocol v6
 5     Type: Router Solicitation (133)
 6     Code: 0
 7     Checksum: 0xdb1d [correct]
 8     [Checksum Status: Good]
 9     Reserved: 00000000
10     ICMPv6 Option (Source link-layer address : 50:00:00:05:00:03)
11         Type: Source link-layer address (1)
12         Length: 1 (8 bytes)
13         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)

 1 Frame 14: 118 bytes on wire (944 bits), 118 bytes captured (944 bits) on interface -, id 0
 2 Ethernet II, Src: 50:00:00:04:00:00 (50:00:00:04:00:00), Dst: IPv6mcast_01 (33:33:00:00:00:01)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe04:0, Dst: ff02::1
 4 Internet Control Message Protocol v6
 5     Type: Router Advertisement (134)
 6     Code: 0
 7     Checksum: 0x83a4 [correct]
 8     [Checksum Status: Good]
 9     Cur hop limit: 64
10     Flags: 0x40, Other configuration, Prf (Default Router Preference): Medium
11         0... .... = Managed address configuration: Not set
12         .1.. .... = Other configuration: Set
13         ..0. .... = Home Agent: Not set
14         ...0 0... = Prf (Default Router Preference): Medium (0)
15         .... .0.. = Proxy: Not set
16         .... ..0. = Reserved: 0
17     Router lifetime (s): 1800
18     Reachable time (ms): 0
19     Retrans timer (ms): 0
20     ICMPv6 Option (Source link-layer address : 50:00:00:04:00:00)
21         Type: Source link-layer address (1)
22         Length: 1 (8 bytes)
23         Link-layer address: 50:00:00:04:00:00 (50:00:00:04:00:00)
24     ICMPv6 Option (MTU : 1500)
25         Type: MTU (5)
26         Length: 1 (8 bytes)
27         Reserved
28         MTU: 1500
29     ICMPv6 Option (Prefix information : 2001:db8:cafe::/64)
30         Type: Prefix information (3)
31         Length: 4 (32 bytes)
32         Prefix Length: 64
33         Flag: 0xc0, On-link flag(L), Autonomous address-configuration flag(A)
34             1... .... = On-link flag(L): Set
35             .1.. .... = Autonomous address-configuration flag(A): Set
36             ..0. .... = Router address flag(R): Not set
37             ...0 0000 = Reserved: 0
38         Valid Lifetime: 2592000
39         Preferred Lifetime: 604800
40         Reserved
41         Prefix: 2001:db8:cafe::

003 : 送信元が PD-CL のリンクローカルアドレス、宛先が ff02::1 の全ノード宛マルチキャストアドレスになります

005 : Router Advertisement タイプを示しています

010-016 : Other フラグが On

029-041 : 使用可能なプレフィックスを指定

03-DHCPv6 Information Request

 1 Frame 15: 132 bytes on wire (1056 bits), 132 bytes captured (1056 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe05:3, Dst: ff02::1:2
 4 User Datagram Protocol, Src Port: 546, Dst Port: 547
 5 DHCPv6
 6     Message type: Information-request (11)
 7     Transaction ID: 0xc3b690
 8     Elapsed time
 9         Option: Elapsed time (8)
10         Length: 2
11         Elapsed time: 0ms
12     Client Identifier
13         Option: Client Identifier (1)
14         Length: 10
15         DUID: 00030001001ebd296800
16         DUID Type: link-layer address (3)
17         Hardware type: Ethernet (1)
18         Link-layer address: 00:1e:bd:29:68:00
19     User Class
20         Option: User Class (15)
21         Length: 10
22     Vendor Class
23         Option: Vendor Class (16)
24         Length: 14
25         Enterprise ID: ciscoSystems (9)
26         vendor-class-data: CSR1000V
27     Option Request
28         Option: Option Request (6)
29         Length: 10
30         Requested Option code: DNS recursive name server (23)
31         Requested Option code: Domain Search List (24)
32         Requested Option code: Subscriber Identifier (38)
33         Requested Option code: Boot File URL (59)
34         Requested Option code: Vendor-specific Information (17)

003 : SLAAC では NS / NA でリンクローカル アドレスを取得したため、送信元が SLAAC のリンクローカルアドレス、宛先が ff02::2 のルータ宛マルチキャストアドレスになります

005 : Information Request メッセージタイプを示しています

027-034 : DHCPv6 サーバから取得したい情報を示しています M フラグがないため、アドレスは要求していません


04-DHCPv6 Reply

 1 Frame 16: 131 bytes on wire (1048 bits), 131 bytes captured (1048 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: fe80::5200:ff:fe04:0, Dst: fe80::5200:ff:fe05:3
 4 User Datagram Protocol, Src Port: 547, Dst Port: 546
 5 DHCPv6
 6     Message type: Reply (7)
 7     Transaction ID: 0xc3b690
 8     Server Identifier
 9         Option: Server Identifier (2)
10         Length: 10
11         DUID: 00030001001e14d9fb00
12         DUID Type: link-layer address (3)
13         Hardware type: Ethernet (1)
14         Link-layer address: 00:1e:14:d9:fb:00
15     Client Identifier
16         Option: Client Identifier (1)
17         Length: 10
18         DUID: 00030001001ebd296800
19         DUID Type: link-layer address (3)
20         Hardware type: Ethernet (1)
21         Link-layer address: 00:1e:bd:29:68:00
22     DNS recursive name server
23         Option: DNS recursive name server (23)
24         Length: 16
25          1 DNS server address: 2001:4860:4860::8888
26     Domain Search List
27         Option: Domain Search List (24)
28         Length: 13
29         Domain name suffix search list
30             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)

 1 Frame 17: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
 2 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)
 3 Internet Protocol Version 6, Src: ::, Dst: ff02::1:ff05:3
 4 Internet Control Message Protocol v6
 5     Type: Neighbor Solicitation (135)
 6     Code: 0
 7     Checksum: 0xe74d [correct]
 8     [Checksum Status: Good]
 9     Reserved: 00000000
10     Target Address: 2001:db8:cafe:0:5200:ff:fe05:3
11     ICMPv6 Option (Nonce)
12         Type: Nonce (14)
13         Length: 1 (8 bytes)
14         Nonce: 2b53d5943aa1

2001:db8:cafe:0:5200:ff:fe05:3 宛に NS を送信し、使用中のノードがいないか確認します。

06-ICMPv6 Neighbor Advertisement (NA)

 1 Frame 18: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface -, id 0
 2 Ethernet II, Src: 50:00:00:05:00:03 (50:00:00:05:00:03), Dst: IPv6mcast_01 (33:33:00:00:00:01)
 3 Internet Protocol Version 6, Src: 2001:db8:cafe:0:5200:ff:fe05:3, Dst: ff02::1
 4 Internet Control Message Protocol v6
 5     Type: Neighbor Advertisement (136)
 6     Code: 0
 7     Checksum: 0xf316 [correct]
 8     [Checksum Status: Good]
 9     Flags: 0xa0000000, Router, Override
10         1... .... .... .... .... .... .... .... = Router: Set
11         .0.. .... .... .... .... .... .... .... = Solicited: Not set
12         ..1. .... .... .... .... .... .... .... = Override: Set
13         ...0 0000 0000 0000 0000 0000 0000 0000 = Reserved: 0
14     Target Address: 2001:db8:cafe:0:5200:ff:fe05:3
15     ICMPv6 Option (Target link-layer address : 50:00:00:05:00:03)
16         Type: Target link-layer address (2)
17         Length: 1 (8 bytes)
18         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

プロフェッショナルIPv6

Cisco Catalyst 9300 Series Switches Data Sheet

DHCPv6の基本仕様が改定 - RFC 8415

RFC8415 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

RFC6355 Standards Track - Definition of the UUID-Based DHCPv6 Unique Identifier (DUID-UUID)

ケーブル業界のIPv6対応状況

IPv6対応ケーブルインターネットアクセス技術仕様ガイドライン

ネットワークエンジニアとして

DHCPv6 - ウィキペディア

DHCPv6 Relay Agent Notification for Prefix Delegation[1]

  • PD スタティックルート インジェクションのトリガーについて記載あり

RFC 6939 - Client Link-Layer Address Option in DHCPv6 日本語訳


脚注

  1. 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.