要約

  • RFC 4429はOptimistic状態を導入し、DAD中でもアドレスを限定的に利用できるようにした。
  • Neighbor Discoveryの送信規則とOverrideフラグの制限により、暫定的なノードが既存の到達性情報を壊しにくくした。
  • 重複の証拠が届けばアドレスは削除される。RFC 7527は反射されたプローブの識別だけを改善する。

Tentativeの先にある中間状態

通常のDADでは、Tentativeアドレスは検査中の通常通信に利用できない。RFC 4429はその間に別の状態を置いた。アドレスはインターフェースに設定され、リンク上の一意性を確認している間も制限付きで使える。送信元選択ではDeprecatedに近く扱われ、適切な別アドレスが優先される。検査が成功すれば、通常のPreferredまたはDeprecatedのライフサイクルへ移る。

つまり、通信の開始と所有権の確定を切り離したのである。リンク層アドレスを既に知っているルーター経由では送信できるが、ローカルな隣接ノードの確定済み所有者のようには振る舞えない。

Optimisticとして設定する判断にも前提がある。ホストはルーターのリンク層アドレスを既に把握し、制約付きの転送経路を利用できなければならない。その情報を規則に反せず取得・利用できない場合、アドレスはTentativeのままとなり、通常のDAD完了を待つ。

早期利用に付随する制約

OptimisticアドレスをNeighbor Solicitationの送信元にはできない。Router Solicitationは非Optimisticまたは未指定の送信元を使う。Optimistic送信元を使う場合、Source Link-Layer Addressオプションを含めてはならない。また、そのアドレスに対するNeighbor AdvertisementではOverrideビットをクリアする。

隣接ノードのリンク層アドレスが不明なら、Optimisticアドレスからアドレス解決を始めない。デフォルトルーター経由で転送し、Redirectを待つか、DAD終了まで保留する。条件を満たせなければアドレスはTentativeのままで、通常のDADに戻る。

重複は撤回を引き起こす

未指定アドレスから試験対象を指定したNeighbor Solicitationを受け取れば、重複の証拠である。ノードは応答せず、アドレスを削除する。その前に送ったパケットが誤配送され、接続が失敗する可能性は残る。したがってRFC 4429は、ランダム性などから一意性を見込める識別子での利用を想定し、手動入力アドレスには勧めていない。

自分のプローブが戻ってきたら

RFC 7527は、DADのNeighbor Solicitationが送信元へループバックされ、重複と誤認される問題を扱う。各プローブに新しいnonceを付けて保存し、同じnonceが戻れば反射と判定して探査を続ける。これは観測結果の分類を改善する仕組みであり、早期利用を一意性の証明に変えるものではない。

出典