要約

  • RFC 3626 のリンク、近傍、2 ホップ、MPR セレクター、トポロジーの各タプルには有効時間がある。期限内の記録はプロトコル上利用可能だが、物理リンクを連続観測しているわけではない。
  • 経路の説明には、最後の HELLO、残存有効時間、MPR 計算、TC の版、経路表への反映、次ホップ解決、パケットの通過、アプリケーション応答を分けた証拠が必要である。

消えない記録は安定をつくる

HELLO が一度欠けただけで近傍を削除すれば、無線ネットワークの経路は激しく揺れる。RFC 3626 はその事態を避けるため、受信した情報に有効時間を与える。保持時間は更新間隔より長く設定され、通常の損失をまたいでタプルを生かす。

運用上は正しい選択である。同時に、記録と現実の間に意図的な時間差を置く選択でもある。リンクが物理的には変化しても、最後の観測から期限までは「対称リンク」の記録が残ることがある。

RFC 3626 は 2003 年 10 月に公表された、移動アドホックネットワーク向け Optimized Link State Routing Protocol の Experimental 仕様であり、インターネット標準ではない。OLSR はプロアクティブに状態を配り、MPR を使って制御トラフィックを減らす。その設計は、時刻を含まない緑色表示がどれほど危ういかも教える。

「有効」は、定められた時間契約の内側にあるという意味である。「現在存在する」は、別の観測が必要な主張だ。

HELLO は局所の時計を動かす

HELLO は各インターフェースで局所的にブロードキャストされ、転送されない。ノードはそれを使ってリンクを検出し、1 ホップと 2 ホップの近傍を更新し、willingness を知り、MPR の選択を伝える。

リンクが対称と判断されると、対応する時刻が更新される。期限が切れれば非対称として扱われ、さらに情報が失効すれば削除される。2 ホップや MPR セレクターにもそれぞれ終了時刻がある。

ここで重要なのは、すべてのノードが同じ瞬間を共有するわけではないことだ。HELLO は局所受信であり、損失、ジッター、処理時刻によって各ノードの期限はずれる。同じ物理事象から、しばらく異なる近傍表が生まれ得る。

したがって障害記録には「リンクが消えた時刻」だけでなく、誰が最後に何を受信し、どの有効時間を計算し、いつ非対称化し、どの経路がその間依存したかを残す必要がある。

MPR は期限つきのグラフから選ばれる

各ノードは、対称な 1 ホップ近傍から MPR を選ぶ。選ばれた近傍の先にある対称近傍を合わせ、厳密な 2 ホップ近傍をすべて覆う必要がある。小さな集合ほどオーバーヘッドは減るが、最小であること自体は必須ではない。

MPR_COVERAGE は複数の中継による被覆を求めることもできる。しかしその数は、現在の近傍表上の候補数である。複数候補が同じ干渉源や電源、ソフトウェア障害を共有していれば、独立した耐障害性にはならない。

willingness も選択を左右する。WILL_NEVER は選択されず、WILL_ALWAYS は初期集合に入る。これは資源方針を示す自己申告であり、能力試験ではない。古い HELLO に含まれた高い willingness が期限内に残れば、その値も選択に影響し続ける。

MPR の証拠には、計算時のインターフェース、1 ホップと 2 ホップの集合、各タプルの年齢、willingness の由来、候補評価、選択結果を結びつけるべきだ。最終集合だけでは、正しかったか再現できない。

シーケンス番号は年齢そのものではない

OLSR はパケット、メッセージ、広告近傍集合にシーケンス番号を使う。有限ビットの番号が折り返しても、新旧を比較できる規則がある。古い情報や順序の入れ替わりを拒否するための仕組みだ。

しかし「別の記録より新しい」は「今の物理状態を表す」と同義ではない。最新の TC を受け取った直後にも、発信元の無線条件は変わり得る。シーケンスは記録間の順位を証明し、記録と現実の距離を測らない。

監視画面が番号だけを見て「最新」と表示すると、利用者は現在性まで保証されたと誤解する。必要なのは、発信時刻または受信時刻、残りの有効時間、期待更新間隔、欠落回数、依存する経路の表示である。

TC は時間差を全体へ配る

MPR に選ばれたノードは TC を生成し、少なくとも自分を選択した近傍へのリンクを広告する。TC は MPR によってネットワークへフラッディングされ、各受信者のトポロジー集合に期限つきで保存される。

広告集合が変わると ANSN が更新される。メッセージサイズの制約があれば、一つの集合を複数 TC に分割できる。更新期間の中で全体が完成すればよい。

一つのパケットを全体と見なすことはできないし、一つの受信者のトポロジーを全ノードの合意と見なすこともできない。証拠は、発信元、ANSN、全断片、受信インターフェース、有効時間、受理判断、完成したトポロジー版を束ねる必要がある。

HELLO の局所的な時間差は、MPR 選択と TC を通じて共有経路の差へ拡大する。これは異常とは限らない。分散プロトコルの通常の途中状態である。問題は、途中状態を完成済みの現実として報告することだ。

duplicate set は一地点の記憶である

同じ制御メッセージを何度も処理しないため、ノードは発信元とメッセージ番号などを duplicate set に保存する。該当エントリがあれば、規則に従って再処理や再送を省ける。

これは「このノードがこのメッセージ識別子を既に記録した」という証拠だ。下流全体の受信確認ではない。ある枝で重複が見え、別の枝では最初の一通さえ届かないことがある。

重複数を健全性指標にするなら、受信と再送判断を代表ノードで結びつけなければならない。エントリがない場合も、新規、損失、期限切れのどれかを区別する必要がある。

削減された送信が本当に不要だったかは、削減後の到達観測でしか分からない。

経路表にはさらに別の時計がある

RFC 3626 は、OLSR 自体がデータパケットを転送するのではなく、基盤となる OS の経路表を保守すると明記する。トポロジーから計算した結果が、OS への指示に変わる地点だ。

トポロジーが期限内でも、経路計算とカーネル反映の間には時間がある。表に載っても次ホップ解決が失敗することがある。制御ブロードキャストを扱うノードがユニキャストデータを転送しない場合も、RFC の安全性検討に明示されている。

経路の証拠は、元になったトポロジー版、計算時刻、OS 更新結果、実際の表、次ホップ、インターフェース観測を分ける。さらにパケットの損失、重複、順序、遅延を測り、最後にアプリケーション応答を確認する。

「有効な経路表」は制御面の状態であり、パケットが通った時刻の証言ではない。

HNA の期限は権限を作らない

HNA により、ノードは OLSR 外のインターフェースに接続されたネットワークを広告できる。受信側はゲートウェイ、ネットワーク、マスク、期限を保存し、経路へ取り込む。HNA は TC のような ANSN の取消しではなく、期限で消える。

期限内であることは、そのプレフィックスを広告する権限の証拠ではない。発信者が本物でも、外部経路が現在到達可能とは限らない。誰がどの範囲を広告できるか、どの証拠で受け入れるか、いつ撤回するかを別の方針として定めなければならない。

記録は「誰がいつまで何を主張したか」を正確に残せる。記録そのものは、その主張の principal を生み出せない。

認証にも時間境界がある

RFC 3626 は専用の安全機構を規定せず、トポロジー漏えい、偽 HELLO・TC・HNA、なりすまし、改変、不転送、誤った MPR 選択、再送攻撃を挙げ、認証を推奨する。

制御メッセージ全体の認証と、広告された個々のリンクの妥当性は別である。正しい署名は資格情報とバイト列を結ぶが、隣接関係や外部プレフィックス権限を確認しない。過去に正しかった署名つきメッセージの再送には時間的な防御が要る。

後続 RFC は一般メッセージ形式、近傍発見、完全性保護、脅威分析を整備し、OLSRv2 は flooding MPR と routing MPR を分けた。この分離は、制御の配送と経路の構築が別の責務であることを明瞭にする。どちらもアプリケーションの時刻を所有しない。

現在を証明する最後の観測

有効時間は、ネットワークを安定させるために古い観測を一定期間使う契約である。契約を否定する必要はない。必要なのは、契約の範囲を超えて「現在の真実」と呼ばないことだ。

HELLO は最後の局所観測を、MPR は選択を、TC は受信した広告を、経路表は OS の指示を証明する。パケット観測はデータ面を、アプリケーション応答は利用者が買った結果を証明する。

時刻と所有者を分けて記録すれば、古い情報は管理可能な不確実性になる。分けなければ、緑の表が現実より長く生きる。

情報源