NDキャッシュが更新されない原因とは?【IPv6通信断の典型パターンと対処法】

  • URLをコピーしました!

IPv6環境で発生する通信トラブルの中でも、
最も気づきにくく、切り分けが難しいのが ND(Neighbor Discovery)キャッシュの更新不良です。

「IPv6だけ通信できない」 「切替後に一部通信が止まる」 「時間が経つと突然直る」

このような症状は、
NDキャッシュが正しく更新されていない可能性が高いです。

本記事では、
NDキャッシュが更新されない原因と、その見抜き方・対処法を 実務目線で整理します。

目次

NDキャッシュとは

NDキャッシュは、IPv6における
「IPv6アドレス ⇔ MACアドレス」の対応表です。

ARPキャッシュと違い、NDキャッシュは
状態遷移(State Machine)で管理されます。

NDキャッシュの代表的な状態

状態意味
REACHABLE通信可能と確認済み
STALE有効だが再確認待ち
DELAY再確認を遅延中
PROBENS送信中
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キャッシュ状態を見る癖を付けることで、 切り分け速度は一気に上がります。

目次