IPv6環境で発生する通信トラブルの中でも、
最も気づきにくく、切り分けが難しいのが ND(Neighbor Discovery)キャッシュの更新不良です。
「IPv6だけ通信できない」 「切替後に一部通信が止まる」 「時間が経つと突然直る」
このような症状は、
NDキャッシュが正しく更新されていない可能性が高いです。
本記事では、
NDキャッシュが更新されない原因と、その見抜き方・対処法を 実務目線で整理します。
NDキャッシュとは
NDキャッシュは、IPv6における
「IPv6アドレス ⇔ MACアドレス」の対応表です。
ARPキャッシュと違い、NDキャッシュは
状態遷移(State Machine)で管理されます。
NDキャッシュの代表的な状態
| 状態 | 意味 |
|---|---|
| REACHABLE | 通信可能と確認済み |
| STALE | 有効だが再確認待ち |
| DELAY | 再確認を遅延中 |
| PROBE | NS送信中 |
| INCOMPLETE | 解決失敗 |
INCOMPLETE / STALE のまま更新されない場合、 通信断が発生します。
原因① ICMPv6が遮断されている
NDは ICMPv6 を使います。
以下が遮断されると、NDは機能しません。
- Neighbor Solicitation(NS)
- Neighbor Advertisement(NA)
- Router Advertisement(RA)
FWやACLで ICMPv6 を制限すると、 NDキャッシュは永遠に更新されません。
原因② 非対称ルーティング
IPv6では、戻りパケットが別経路になると、
NAが正しく返らないケースがあります。
- ECMP
- FW二台構成
- ポリシールーティング
ND更新失敗は、
非対称構成の副作用として現れやすいです。
原因③ ND Inspection / RA Guard の誤設定
セキュリティ対策として導入される以下機能は、
誤設定するとNDを破壊します。
- ND Inspection
- RA Guard
- MLD Snooping
「IPv6だけ通らない」場合は、 L2制御を疑うのが鉄則です。
原因④ MACアドレス変更・移動
仮想環境・冗長構成では、
MACアドレスが短時間で変わることがあります。
- HSRP/VRRP切替
- VM移動
- NICフェイルオーバー
NDキャッシュが古いMACを保持したまま更新されないと、 通信は即座に失敗します。
原因⑤ NDキャッシュ保持時間が長すぎる
一部OS・機器では、
NDキャッシュの有効時間が非常に長く設定されています。
結果として、
古いエントリを使い続ける状態になります。
切り分け手順(実務向け)
① NDキャッシュ確認
ip -6 neigh show
INCOMPLETE / STALE が続いていないか確認します。
② ICMPv6疎通確認
ping6 -c 3 <相手IPv6>
③ パケットキャプチャ
NS / NA が送受信されているかを確認します。
対処方法
- FWで ICMPv6 を明示的に許可
- ND Inspection / RA Guard 設定見直し
- 非対称ルーティングの是正
- NDキャッシュクリア
NDキャッシュクリア例(Linux)
ip -6 neigh flush all
設計での再発防止ポイント
- ICMPv6は制御プレーンと理解する
- IPv6冗長構成は対称経路を基本とする
- L2セキュリティ機能は慎重に適用
まとめ
NDキャッシュ更新不良は、
「IPv6のARPトラブル」ではありません。
ICMPv6・経路設計・L2制御が複合的に絡む IPv6特有の障害です。
IPv6通信断を見たら、 NDキャッシュ状態を見る癖を付けることで、 切り分け速度は一気に上がります。



