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

提供:hkatou_Lab
2021年9月19日 (日) 13:35時点におけるHkatou (トーク | 投稿記録)による版 (→‎パケットキャプチャ)
ナビゲーションに移動 検索に移動

目的

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

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

DHCPv6-PD のメリット

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

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

L3SW 直接接続
例1. L3SW 直接接続
  • L3SW で PC やサーバ、IP 電話などを直接収容するケースです
  • PC 1 台はグローバル ユニキャストアドレスとリンクローカルアドレスを持つため、IPv6 ND エントリを最低 2 つ消費します
    • 実際には IPv6 一時使用アドレスも存在するため、2 つでは済みません
  • 上記の例では 4 台存在するため、最低 8 エントリを消費します
PD クライアントによるルート集約
例2. PD クライアントによるルート集約
  • L3SW は PD クライアントに集約ルートを割り当てれば良いため、PD ルート + PD クライアントのリンクローカルアドレスの 2 つのエントリで済みます
  • PC などの数が増えても、L3SW のリソースには影響しません

ただし、実運用としては PD クライアントにも /64 でグローバル ユニキャストを持たせたほうが運用しやすいケースも考えられます。

表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 よりもかなり見劣りします。

検証環境

ESXi7.0

EVE-NG Community Edition

Cisco CSR1000V 16.12.04a

  • EVE-NG のテンプレートにある CPU 1 コアだと起動が遅かったため、2 コアに変更

いずれも無料で提供されているソフトウェアです。

構成図

以下の機器をすべて 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 払い出し用

送信元セグメント

サブネット ::/56

/48 プールから分割して

/56 払い出し

::100:/64

DHCPv6

サーバ

収容

セグメント

::200:/64

OSPFv3 P2P リンク

::/64

Dist 用

DHCPv6-SV /48 DHCPv6-PD

Pool を持ち、

/56 で払い出し

::128 - ::1/64 から払い出し依頼があれば、2001:DB8::CAFE::/48 プールから

/56 を払い出す

Core - ::1

GW

::1

OSPFv3

-
Dist /48 OSPF Null0 宛

集約ルート

PD-CL 宛 /56 サブネットの

スタティックルートを持つ

- ::2

OSPFv3

::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 宛デフォルトルートを持ちます

プロトコル別コンフィギュレーション

ここではプロトコル・ホスト別にコンフィギュレーションを簡単に解説します。

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:4860: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#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#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#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 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#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#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#show run int gi1
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 クライアント

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
 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#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 アドレスを割当

SLAAC クライアント

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 オプションを付けるとデフォルトルートとして使用

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 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 がバインディングテーブルに存在すること

show ipv6 dhcp pool

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:4860:4860::8888
  Domain name: example.com
  Active clients: 1

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

Core

show ipv6 route

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 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 で再配布されていること

show ipv6 route ospf
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:AE86:100::/64 [110/2]
     via FE80::AE86:200:1, GigabitEthernet4
O   2001:DB8:CAFE::/48 [254/20]
     via Null0, directly connected
O   2001:4860:4860::8888/128 [110/1]
     via FE80::AE86:200:1, GigabitEthernet4

以下を 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 リレーエージェント

show ipv6 dhcp relay binding
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

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

show ipv6 route static
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

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

PD-CL

DHCPv6-PD クライアント

show ipv6 dhcp interface GigabitEthernet 4
GigabitEthernet4 is in client mode
  Prefix State is OPEN (1)
  Information refresh timer expires in 23:42:19
  Renew will be sent in 3d11h
  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 01:34 AM (2590940 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 サーバで設定したものと同一であること

show ipv6 interface GigabitEthernet 1 prefix
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

DHCPv6 サーバ

show ipv6 dhcp interface GigabitEthernet 1
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 名を指定しない場合もあります

show ipv6 dhcp pool
PD-CL#show ipv6 dhcp pool
DHCPv6 pool: SLAAC
  Imported DNS server: 2001:4860:4860::8888
  Imported Domain name: example.com
  Active clients: 0

Pool に DHCPv6 サーバから受信した

  • DNS サーバ
  • ドメイン名

が設定されていること

SLAAC

show ipv6 route

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

show ip name-servers

SLAAC#show ip name-servers
2001:4860:4860::8888

疎通確認

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 の払い出しの前提条件となります


疎通不可の場合、traceroute で不通となっている箇所を特定し、該当するプロトコルを切り分けて障害箇所を特定します。

PD-CL プロビジョニング疎通確認

DHCPv6 プロビジョニング確認に必要な疎通確認は、以下になります。

PD-CL Gi4 -> DHCPv6-SV : ping 2001:DB8:AE86:100::128

  • 失敗する場合、以下を確認します
    • PD-CL 収容インターフェースのアドレスで、OSPFv3 の広報に失敗していないか
    • PD-CL でデフォルトルートを持っているか

PD-CL サービス疎通確認

サービス確認に必要な疎通確認は、以下になります。

PD-CL Gi4 -> DHCPv6-SV : ping 2001:4860:4860::8888

  • 失敗する場合、以下を確認します
    • PD-CL 収容インターフェースのアドレスで、OSPFv3 の広報に失敗していないか
    • PD-CL でデフォルトルートを持っているか
    • Core で ::8888 のアドレスを OSPFv3 で広報しているか


パケットキャプチャ

追記予定です。

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 : ドメイン検索リスト


Dist Gi4

PD-CL

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