要約

  • RFC 5004が既存の外部best pathを残すのは、挑戦側とともにBGP Identifierより前の全比較を通過した場合だけである。残った経路が高速、安全、安価だと認定されたわけではない。
  • Enke ChenとSrihari Sangliは、実ネットワークで観測された振動から狭い抑制規則を作った。その運用価値は、候補の同値性、選択理由、FIB、パケット結果、そして解除条件を別々に記録できるかで決まる。

FIBを書き換える前に理由が尽きた

ボーダールータは外部経路Aで転送している。そこへ外部経路Bが届く。RFC 4271の選択手順をたどると、LOCAL_PREF、AS_PATH、ORIGIN、比較対象となるMED、EBGPかIBGPか、NEXT_HOPまでのIGPコストのいずれにも差がない。それでも一つを選ぶため、手順は広告元speakerのBGP Identifierを比べ、値の小さいBへ移ろうとする。

この四オクテット値は処理を終わらせる識別子であり、経路を測るセンサーではない。帯域、遅延、契約、障害領域、セキュリティ、転送成功を表さない。RFC 6286では、AS内で一意となる非ゼロの符号なし整数であればよく、speakerに割り当てられたIPアドレスである必要もなくなった。数字の大小に経路品質を読み込むことはできない。

ところが、この弱い差でもLoc-RIBとFIBの変更、隣接へのUPDATE、実トラフィックの移動を起こし得る。制御面が決定的に選べたことと、データ面が安全に移れたことは別の事実である。

RFC 5004は、Aが既存の外部best pathであり、通常ならBが選ばれるものの、双方がBGP Identifierの直前まで落ちなかった場合にAを保持する。Aを「より良い」と再評価するのではない。Bが稼働中の状態を動かすだけの意味ある根拠を提示していない、と扱う。

保護されるのは古さではなく限定された同値性

先行条件のどれかが変われば、保持は退かなければならない。LOCAL_PREF、AS_PATH、ORIGIN、適用可能なMED、EBGP/IBGP、IGPコストは従来どおり決定権を持つ。Aのwithdraw、NEXT_HOP到達性の消失、明示方針の変更も同じである。RFC 5004はstaleな経路を新しい証拠より優先する規則ではない。

適用除外も境界を示す。候補のどちらかがBGP Confederation peer由来なら使わない。両peerが同じBGP Identifierを持つ場合も使わない。並行セッションでは、その後のpeer address比較を運用者が意図的な選択装置としている可能性があるためだ。

したがって、機能がenableであることは実行証拠にならない。必要なのは、時点を合わせた二つのAdj-RIB-In、import後の属性、各比較の結果、通常手順ならどこでBへ動いたか、実装が記録したretention理由である。その後にLoc-RIB、FIB、パケット観測をつなぐ。どれか一つを他の代理にしてはならない。

経路表が前後で同じでも、理由は複数ある。Bが来なかった、filterで消えた、LOCAL_PREFで負けた、あるいはRFC 5004が働いた。変化がないという画面だけでは、何も起きなかったのか、起こさない決定があったのか区別できない。

1998年の観測が与えるもの

ChenとSangliは、1998年のBBN/Genuityネットワークで観測されたroute oscillationが着想となり、当時アルゴリズムを実装・配備したと記している。現場の故障から規則が生まれたことを示す強い来歴である。一方、現在の普及率、あらゆるトポロジーでの有効性、すべての振動の原因までは証明しない。

背景には部分的な可視性がある。RFC 4456のroute reflectionはIBGP full meshを不要にし、reflectorが選んだ経路をclientへ再広告する。スケールを得る代わりに、clientはAS内の全外部候補ではなく、通常は選択結果を受け取る。

RFC 5004の例では、この可視性制約とMEDが組み合わさる。新しい外部経路への切替が広告内容を変え、別ルータの判断を変え、その判断が最初の切替条件を崩す。最初の交代がBGP Identifierだけに依存していれば、Aの保持が循環の一手を消せる。

RFC 3345が扱うpersistent oscillationはそれだけではない。route reflectionやconfederationの構造、候補の一部だけで行われるMED比較には、トポロジーや方針による別の対策が必要になる。RFC 5004自身も全例を解決すると主張していない。UPDATE/withdrawの反復は、候補集合を再構成する入口であって診断名ではない。

同じ現在に異なる履歴が入る

設定も現在の候補も同じ二台が、到着順の違いによって別々のincumbentを保持し得る。文書はこの履歴依存を認め、non-determinismと呼ばれることにも触れる。これは無秩序ではなく、強い比較がすべて同値のときに限り、局所的な過去へ決定を委ねる設計である。

多数の外部peerを持つexchange pointでは、意味の薄い最後の比較による転送変更を減らせる。その反面、「同じ設定なら同じ選択」という調査の前提が崩れる。現在のsnapshotに、同値になる前のbest pathを加えなければ説明が閉じない。

全装置で統一した優先を求めるなら、受信AS自身がLOCAL_PREFなどで明記すべきである。適用範囲を理解したMEDも選択肢になる。到着順は経緯の証拠であり、商業方針や回復力の代筆者ではない。

状態を残す方法と、候補を増やす方法

RFC 7911のADD-PATHは可視性側へ資源を使う。方向ごとにcapabilityを交渉し、同じprefixに複数経路をPath Identifier付きで広告できる。Identifierはローカルな意味しか持たず、control-plane restart後に維持されない場合がある。capabilityだけでは、何本送ったか、集合が完全か、best pathやECMPが何かは分からない。

RFC 7964は、全経路または隣接ASごとのGroup BestをADD-PATHで広告し、MEDに関わるpersistent oscillationを抑える方法を示す。可視性は増えるが、メモリ、UPDATE、収束処理も増えるため、可能なら影響prefixに限定する。

RFC 5004は狭い同値条件で既存の一経路を残し、追加状態を抑える。ADD-PATH系は候補を広く伝え、判断材料を増やす。前者は変化の回数、後者は情報不足に予算を付ける。実際の故障機構を示さずに「安定性」だけで選ぶことはできない。

Enke Chenを単独の支配者にしない

Enke ChenはSrihari SangliとRFC 5004を共同執筆した。彼の標準化記録にはroute reflection、BGP Identifierの改訂、ADD-PATH、後年の振動対策もある。一人の技術者を通して、BGPが完全な情報、有限な状態、静かな転送の間をどう調整したかを読める。

ただし、Chenが個別ネットワークの方針を所有するわけではない。外部peerが属性を送り、受信ASがimportとLOCAL_PREFを決め、IGPが内部コストを供給し、実装が順序を実行し、reflectorが見える候補を絞り、FIBとpacketが利用実態を示す。RFCの著者帰属と運用責任は分離しなければならない。

University of Michigan Engineeringの記事は、Chenの本人性、学歴、Internet technologyに関わる経歴を示す日付付き機関資料である。特定ネットワークでの現行配備や責任を証明する資料ではない。

解除できて初めて継続性になる

監査可能な記録は、受信候補、方針適用後属性、比較の最終地点、incumbent-retainedという理由、Loc-RIB/FIB、packet telemetryを同じ時系列で結ぶ。さらに、方針差、withdraw、NEXT_HOP障害、MEDやIGPコストの変化が起きたとき、保持が終わることを試す必要がある。

変化を避ける能力だけでは不十分である。必要な変化を実行できないなら、継続性はロックインへ変わる。RFC 5004の節度は、弱い識別子に強い転送変更を命じさせないことにある。その節度を正当化するのは古さではなく、狭い条件と確実な出口である。

出典