要約

  • RFC 7911は、対象アドレスファミリーについて送信と受信の能力が一致した後、各NLRIに4オクテットのPath Identifierを付け、一つのプレフィックスに複数経路を広告できるようにする。
  • 識別子は不透明かつローカルで、優先順位ではない。受信側は最適経路の決定権を保ち、メモリ、処理、再起動、観測の追加コストも引き受ける。

一つの経路は回答であると同時に上限だった

基本BGPは、あるNLRIについて隣接先へ最大一つの経路を広告する。同じプレフィックスの新しい広告は古い広告を暗黙に置き換える。交換は単純になるが、可視性は送信側の選択に縛られる。送られなかった代替経路を受信側が利用することはできない。

ADD-PATHはこの二つを分ける。拡張UPDATEではNLRIの前に4オクテットの識別子を置く。プレフィックスと識別子の組が一つの広告経路を表すため、同じプレフィックスの複数経路が共存できる。同じ組の新広告はその経路だけを置き換え、withdrawalはその組を削除する。広告されていない識別子のwithdrawalは黙って無視する。

識別子の意味は意図的に狭い。広告側が割り当て、その隣接関係だけで有効である。別のスピーカーが再広告するなら独自の識別子を割り当てる。数値が大きいほど良い、古い、安全、または全体で安定しているとは推測できない。これは身元であり判断ではない。

送信側はポリシーに従って見せる候補を選ぶが、受信側は自分の選択処理を続ける。RFCは複数経路を送る際に送信側の最適経路を含めるよう勧める。ただし、その経路を同じ隣接先から学習した場合は除く。「最適」は送信側のローカル結果であり、受信側への命令ではない。

許可は非対称で、アドレスファミリーごとに成立する

ADD-PATHは能力コード69を使う。値にはAFI、SAFI、Send/Receiveの組を一つ以上含める。1は受信、2は送信、3は双方向で、それ以外は理解不能として扱う。

あるファミリーで複数経路を送れるのは、自身が同じAFI/SAFIの送信能力を広告し、隣接先から受信能力を得た場合だけである。逆方向は異なり得る。これはセッション全体のスイッチでも、ソフトウェア名からの推測でもない。ピア、方向、ファミリーの明示的な一致が許可になる。

送信側はより多くの候補を見せる力を得る。受信側は収束やルートリフレクターの多様性など、自ら選ぶ用途に情報を使える。一方、追加経路は状態と処理を消費し、多数のプレフィックスへ多数の経路を送るピアは資源圧力を生み得る。

標準は普遍的な経路数やメモリ予算を定めない。能力交渉は形式を使う許可を示すだけで、ポリシー、転送、復旧の正しさまでは証明しない。

ローカル識別子は再起動後の証拠を難しくする

Path Identifierは制御プレーン再起動後に同じである必要がない。したがって、再起動前後の同じ番号を同じ経路と自動的に見なせない。Graceful Restartでは、転送状態が残る一方で広告と識別子が再構築される可能性がある。

観測には能力交渉の文脈も必要だ。同じUPDATEのバイト列でも、そのファミリーでADD-PATHが交渉済みかにより解釈が変わる。OPENを見逃した受動解析器は識別子をNLRIの一部と誤読し得る。

RFC 7911は符号化、方向、置換、withdrawal、再起動と資源リスクを定義する。RFC 4271は基本モデル、RFC 5492は能力枠組み、IANAはコード69、RFC 4272は既存のBGPリスクを示す。権限、受益者、コストの整理は本稿の分析である。

資料は特定事業者の導入、全ピアに適切な経路数、普遍的な安全閾値を証明しない。識別子を永続的・全域的にもせず、候補増加があらゆるトポロジーを改善するとも保証しない。

情報源