付録 E. 実装の問題 (Implementation Issues)
この付録では、さまざまな実装の問題について説明し、近隣探索の実装者にガイダンスを提供します。
E.1. リンク層アドレスの変更 (Link-Layer Address Changes)
ノードのリンク層アドレスが変更される場合、いくつかの問題が発生します:
問題: 他のノード上のキャッシュされたエントリが無効になる 解決策: 未要請の Neighbor Advertisement を送信して近隣のキャッシュを更新
問題: 更新のタイミングによりパケット損失が発生する可能性 解決策: 複数の未要請の NA を送信(最大 MAX_NEIGHBOR_ADVERTISEMENT)
E.2. 重複アドレス検出のタイミング (Duplicate Address Detection Timing)
問題: DAD 中の競合状態
- 2つのノードが同時に同じアドレスに対して DAD を実行する可能性
- 両方がアドレスが利用可能であると結論付ける可能性
解決策:
- DAD を開始する前にランダムな遅延を使用(最大 MAX_RTR_SOLICITATION_DELAY)
- DAD の失敗を適切に処理し、異なるアドレスで再試行
E.3. Router Advertisement のタイミング (Router Advertisement Timing)
問題: 複数のルータ間での RA 送信の調整 解決策:
- RA 間隔にランダムジッターを使用
- ランダムな遅延で RS に応答(0 から MAX_RA_DELAY_TIME)
E.4. 近隣キャッシュサイズ (Neighbor Cache Size)
問題: 近隣キャッシュエントリのメモリが限られている 解決策:
- ガベージコレクションを実装(最初に STALE エントリを削除)
- REACHABLE エントリを優先
- Least Recently Used (LRU) エビクションポリシーを使用
E.5. 宛先キャッシュ管理 (Destination Cache Management)
問題: 宛先キャッシュが非常に大きくなる可能性 解決策:
- エージングとサイズ制限を実装
- 最初に期限切れの PMTU 情報を持つエントリを削除
- 近隣キャッシュのクリーンアップと統合
E.6. マルチキャストグループ管理 (Multicast Group Management)
問題: solicited-node マルチキャストグループの管理 解決策:
- アドレスが追加/削除されるときにグループに参加/脱退
- 同じ solicited-node グループにマップされる複数のアドレスを処理
E.7. パフォーマンス最適化 (Performance Optimization)
同時アドレス解決:
- 複数のアドレス解決を並行して処理
- 解決中にパケットをキューに入れる
Fast Path 処理:
- REACHABLE 近隣に最適化(最も一般的なケース)
- 頻繁に使用される宛先キャッシュエントリをキャッシュ
E.8. セキュリティ実装 (Security Implementation)
SEND 統合:
- 混合 SEND/非 SEND 環境を優雅に処理
- セキュリティポリシーの設定オプションを提供
レート制限:
- ND メッセージのフラッディングから保護
- 近隣キャッシュエントリ作成率を制限