はじめに
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2025 の 10 日目 (シリーズ 2) として投稿しています。
📅 これまでのカレンダーの一覧
- 2017 年版: https://qiita.com/advent-calendar/2017/cisco
- 2018 年版: https://qiita.com/advent-calendar/2018/cisco
- 2019 年版: https://qiita.com/advent-calendar/2019/cisco
- 2020 年版 (1): https://qiita.com/advent-calendar/2020/cisco
- 2020 年版 (2): https://qiita.com/advent-calendar/2020/cisco2
- 2021 年版 (1): https://qiita.com/advent-calendar/2021/cisco
- 2021 年版 (2): https://qiita.com/advent-calendar/2021/cisco2
- 2022 年版 (1,2): https://qiita.com/advent-calendar/2022/cisco
- 2023 年版: https://qiita.com/advent-calendar/2023/cisco
- 2024 年版: https://qiita.com/advent-calendar/2024/cisco
- 2025 年版: https://qiita.com/advent-calendar/2025/cisco
この記事について
- ひかり電話有り回線や光クロス回線をシスコ機器で収容することについて、歴史的経緯から様々な情報 (できる/できない) が散見されます
- シスコのソフトウェア実装の観点から、無難に動く構成やコンフィグを調査して整理しました
- うまく動かない構成や、その理由も整理します
本記事はシスコのソフトウェア実装の観点から接続可否にかかる技術情報を提供するものであり、法的助言ではありません。機器を通信回線に接続する際には、必ず関連する利用規約や契約上の禁止事項を確認してください。
例えば NTT 東日本の契約約款では技術基準適合認定がある機器以外をつなぐときは申請が必要とされています。L3 スイッチを ONU に直接接続する構成では、当該 L3 スイッチが電気通信事業法に基づく技術基準適合認定(いわゆる T 認証)を取得しているかを確認することをお勧めします。
(参考: Q21-2. スイッチングハブの認証は必要ですか?, 電気通信端末機器技術基準適合認定等制度に関するQ and A)
簡単なまとめ
スイッチ
ここでは自宅ラック勢で見かける代表的な機種のみを記載しており、網羅性はありません。
お使いの機種が掲載されていない場合は、利用している IOS, IOS XE のバージョンを確認し、
以下の うまく動かない理由 セクションで該当する発生条件に当てはまるかを確認してください。
-
Catalyst 3560-X: 回避策が必要 -
Catalyst 3560-CX: 回避策が必要 -
Catalyst 3750-X: 回避策が必要 -
Catalyst 36501
-
Catalyst 38501
-
Catalyst 9200 -
Catalyst 9300
コンフィグ
ひかり電話あり回線もしくは光クロス回線で DHCPv6 によるプレフィックス移譲を受けるための WAN インターフェイスに関する基本設定は以下のとおりです。
! WAN 側インターフェイス(ここでは TenGigabitEthernet1/0/48 と仮定)
interface TenGigabitEthernet1/0/48
description *** WAN ***
no switchport
no ip address
no cdp enable
ipv6 dhcp client request vendor
ipv6 dhcp client vendor-class mac-address
ipv6 dhcp client pd FLETS_PREFIX
ipv6 enable
ipv6 nd autoconfig default-route
ipv6 nd ra suppress all
no lldp transmit
spanning-tree portfast
end
このコンフィグは IOS XE 17.10.1a 以降を前提としています。
これ以外の環境では、後述する回避策等の対応が必要かもしれません。
うまく動かない理由
DHCPv6 Request Message が無視される
発生条件
-
CSCts28315: DHCP-pd reflect the Advertised prefix in Request message が取り込まれていない IOS, IOS XE を使っているとき
- IOS の場合、Catalyst 3560, 3750 等における最新(最終)の IOS 15.2E ブランチでも本改修が含まれていないため、これらの機種では回避策が必須です
- IOS XE の場合、16.9.5 以降, 16.12.2 以降, 17.x 以降では本改修が含まれており問題は発生しません
シスコの Bug Search Tool は不具合に限らず機能拡張も含めて管理しています。
上記リンク先では Cisco Bug と表現されていますが、実際のところ従来から IOS, IOS XE の DHCPv6 クライアントは RFC に準拠して実装されており、CSCts28315 はバグ(不具合)ではなく相互接続性向上のための実装変更に相当します。
問題の内容
フレッツ光クロスで 2023 年 4 月末頃に実施された工事以降、本事象が発生するようになったようです。具体的には、DHCPv6 クライアント (IOS, IOS XE) と DHCPv6 サーバ(網側)のやり取りにおいて、Option 26 (IA Prefix Option) が含まれない Request Message が網側で破棄されてしまい、DHCPv6 クライアントでは正常にプレフィックス移譲を受けることができません。
このとき show ipv6 dhcp interface コマンドでは以下のような出力が得られることがあります。
! DHCPv6 クライアントが設定された WAN 側インターフェイスを TenGigabitEthernet1/0/48 と仮定
#show ipv6 dhcp interface TenGigabitEthernet1/0/48
TenGigabitEthernet1/0/48 is in client mode
Prefix State is REQUEST
回避策
IOS, IOS XE が送信する DHCPv6 Request Message に Option 26 を含めるように設定します。具体的には、インターフェイスコンフィグ ipv6 dhcp client pd hint を使い、Option 26 に設定する IPv6 prefix と prefix length を指定します。
! WAN 側インターフェイス(ここでは TenGigabitEthernet1/0/48 と仮定)
interface TenGigabitEthernet1/0/48
! [2001:db8:feed:feed::/56] は環境ごとに異なる
ipv6 dhcp client pd hint 2001:db8:feed:feed::/56
このコンフィグで設定するべき IPv6 prefix は、DHCPv6 サーバ(網側)から送られてくる Advertise Message に記載されています。Catalyst スイッチ単体で確認するためには debug ipv6 dhcp detail コマンドを使う方法があります。
#terminal monitor
#debug ipv6 dhcp detail
Dec 9 16:43:33.366: IPv6 DHCP: DHCPv6 changes state from IDLE to SOLICIT (START) on TenGigabitEthernet1/0/48
Dec 9 16:43:34.429: IPv6 DHCP: detailed packet contents
Dec 9 16:43:34.429: src FE80::200:5EFF:FE00:5301
Dec 9 16:43:34.429: dst FF02::1:2 (TenGigabitEthernet1/0/48)
Dec 9 16:43:34.429: type SOLICIT(1), xid 4404741
Dec 9 16:43:34.429: option ELAPSED-TIME(8), len 2
Dec 9 16:43:34.429: elapsed-time 0
Dec 9 16:43:34.429: option CLIENTID(1), len 10
Dec 9 16:43:34.429: 0003000100005E005301
Dec 9 16:43:34.429: option USER-CLASS(15), len 10
Dec 9 16:43:34.429: user-class-data-len 8
Dec 9 16:43:34.429: data: ciscopnp
Dec 9 16:43:34.429: option VENDOR-CLASS(16), len 12
Dec 9 16:43:34.429: Enterprise id 9
Dec 9 16:43:34.429: vendor-class-data-len 6
Dec 9 16:43:34.429: data: 0000.5e00.5301
Dec 9 16:43:34.429: option ORO(6), len 10
Dec 9 16:43:34.429: IA-PD,DNS-SERVERS,DOMAIN-LIST,Boot-File-URL,VENDOR-OPTS
Dec 9 16:43:34.430: option IA-PD(25), len 12
Dec 9 16:43:34.430: IAID 0x004E0001, T1 0, T2 0
Dec 9 16:43:34.430: IPv6 DHCP: Sending SOLICIT to FF02::1:2 src FE80::200:5EFF:FE00:5301 on TenGigabitEthernet1/0/48
Dec 9 16:43:34.450: IPv6 DHCP: Received ADVERTISE message
Dec 9 16:43:34.450: IPv6 DHCP: Received ADVERTISE from FE80::200:5EFF:FE00:5302 on TenGigabitEthernet1/0/48
Dec 9 16:43:34.450: IPv6 DHCP: detailed packet contents
Dec 9 16:43:34.450: src FE80::200:5EFF:FE00:5302 (TenGigabitEthernet1/0/48)
Dec 9 16:43:34.450: dst FE80::200:5EFF:FE00:5301 (TenGigabitEthernet1/0/48)
Dec 9 16:43:34.450: type ADVERTISE(2), xid 4404741
Dec 9 16:43:34.450: option CLIENTID(1), len 10
Dec 9 16:43:34.450: 0003000100005E005301
Dec 9 16:43:34.450: option SERVERID(2), len 10
Dec 9 16:43:34.450: 0003000100005E005302
Dec 9 16:43:34.450: option IA-PD(25), len 41
Dec 9 16:43:34.450: IAID 0x004E0001, T1 7200, T2 10800
Dec 9 16:43:34.450: option IAPREFIX(26), len 25
Dec 9 16:43:34.450: preferred 12600, valid 14400, prefix 2001:DB8:FEED:FEED::/56
^^^^^^^^^^^^^^^^^^^^^^^
プレフィックス変更に追従してコンフィグを書き換える必要があります
フレッツ光でユーザに割り当てられる IPv6 プレフィックスは半固定なので、実際には工事等で変化することがあります。
「コンフィグに書かれた IPv6 プレフィックス」と「実際にユーザが使ってよい IPv6 プレフィックス」が一致しなければ正常なプレフィックス移譲を受けられません。
IOS, IOS XE に備わる機能: EEM (Embedded Event Manager) を使えば自動で書き換えることができるかもしれません。EEM はネットワーク機器単体でイベント(トリガ)に応じて自律的に CLI コマンドや Tcl スクリプトを実行することができる仕組みです。
なお、CSCts28315: DHCP-pd reflect the Advertised prefix in Request message が取り込まれた IOS, IOS XE 環境では、Advertise Message の内容を反映した Request Message の Option 26 が自動的に作成されるようになりました。
DHCPv6 Solicit Message が無視される
発生条件
以下いずれかを満たすとき:
- IOS XE 16.9.3 以上かつ 17.10.1 より古いバージョンを使っている
- IOS XE 17.10.1 以降を使っているが、
ipv6 dhcp client vendor-class mac-addressが設定されていない
問題の内容
IOS XE 16.9.1 から Zero Touch Provisioning (ZTP) 機能において DHCPv6 がサポートされたことに伴い、IOS XE 16.9.3 から DHCPv6 クライアント (IOS XE) はデフォルトで DHCPv6 Option 16 (Vendor Class) に Product ID をエンコードした DHCPv6 Solicit Message を送信します。2
一方、フレッツ光の DHCPv6 サーバはこのような DHCPv6 Solicit Message を破棄するようです。結果として、IOS XE 16.9.3 以降の環境では正常にプレフィックス移譲を受けることができません。
この問題に対応するため IOS XE 17.10.1a から新しいコンフィグ ipv6 dhcp client vendor-class mac-address が追加されました。このコンフィグを有効にすることで、DHCPv6 クライアントは DHCPv6 Option 16 に MAC アドレスをエンコードするようになり、フレッツ光の要件を満たすことができます。
より詳しい情報は、Cisco Community の記事「NTT東西フレッツ光に DHCP で接続する場合の設定について(IOS XE 17.10.1a 以降)」をご参照ください。
SD-WAN ルータでは ipv6 dhcp client vendor-class mac-address の設定が正常に反映されない既知の不具合があります。
より詳しい情報は、Cisco Community の記事「XE SD-WAN : On-Site Bootstrap Process で起動すると DHCPv6 で IP アドレスが取得できない」をご参照ください。
よくある質問
筆者は ONU 直下にルータではなく L3 スイッチを接続しているの?
はい、しています。メリット・デメリットがありますが、個人的にはメリットのほうが大きいと感じています。
メリット
- 10Gbps を処理できるルータより 10Gbps を処理できるスイッチのほうが安くて選択肢が多い
- 特に IPv6 で
/56を移譲されれば複数の/64を切り出せるので、1Gbps を処理できるルータをいくつもぶら下げる構成が取りやすい
- 特に IPv6 で
- ONU 直下でパケットキャプチャを取りやすい
- L3 スイッチの単純なルーティングは ASIC で高速に処理される
デメリット
- PPPoE や IPv4 over IPv6 (MAP-E, DS-Lite など) に対応するためには L3 スイッチ配下にルータを設置する必要がある
- 機材が増えるので消費電力が上がる(いずれにしても L3 スイッチは一家に一台以上あるのでは)
- 単一障害点が増える
- ホップ数が増える
- IPv4 だけルータを経由する必要があるので、デフォルトゲートウェイが IPv4 と IPv6 で一致しないヘンテコ構成が推奨?!
- IPv4 だけルータを経由する必要があるので、デフォルトゲートウェイが IPv4 と IPv6 で一致しないヘンテコ構成が推奨?!
筆者はトラブルに巻き込まれた?
ASR1001-X を用意して、いざ回線を接続したところ
DHCPv6 Solicit Message が無視される の対象になることが分かりました。
ASR1001-X における IOS XE の最新(最終)リリースは 17.9.x なので「ものすごく古い IOS XE を使う」か「回線を直収しない」という究極の二択を迫られました ![]()
もちろん新しい機材を買いました ![]()
ルータは? IPoE (IPv4 over IPv6) は?
この記事は標題の通り Layer 3 スイッチ を念頭に執筆していますが、スイッチとルータは共通のネットワーク OS - IOS XE を利用していることがあり、この記事で説明する内容は共通していることがあります。
ただし、Layer 3 スイッチだけでは IPv4 over IPv6 (MAP-E, DS-Lite) サービスを利用することはできません。
ルータでフレッツ回線を収容し、さらに IPv4 over IPv6 を利用したい場合には、以下の記事を参照してください。
免責事項
記載されているサービス名等は、各社の商標または登録商標です。
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、私の所属する組織の意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、私の所属する組織や他の関係者による推奨や表明を目的としたものではありません。各利用者は、本 Web サイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本 Web サイトの利用に関するあらゆる責任から私の所属する組織を免責することに同意したものとします。
-
問題 1 の回避策を設定したうえで、問題 2 の発生条件を満たさないソフトウェア(つまり IOS XE 16.9.3 より前)を使えば、いずれの問題も回避できるかもしれません。しかし、そのようなソフトウェアはいずれもサポート終了日を過ぎています。本記事の対象とするネットワーク機器は必然的にインターネットに接続されることも踏まえて「無難に動く」とは言い難く、これらのプラットフォームは
と記載しました。 ↩ ↩2 -
CSCvk73577: [PnP] upon IOS bootup DHCPv6 client doesn't include DHCPv6 Option 16 in DHCPv6 Solicit message にて実装されました ↩