要約

  • RFC 2439は不安定さを受信ルーターのローカル状態にした。撤回は経路の評価値を上げ、指数減衰はそれを下げる。抑制しきい値と再利用しきい値が、経路をいつ使えなくし、いつ再び使えるかをそれぞれ決める。
  • 後の運用経験は、通常収束中でも接続性の高いプレフィックスが不利になり得ることを示した。RFC 7196は抑制を一律に否定せず、より慎重なしきい値と、実際には抑制せず計算だけを行う任意のモードを勧めた。

経路の過去が現在の判断に残る

1990年代、BGP UPDATEは到達可能な宛先を知らせるだけではなかった。大量の更新は受信ルーターや、転送された広告を受けるピアの処理能力も消費する。RFC 2439は、比較的安定した経路の収束を遅らせずに、繰り返す変化を減らそうとした。1998年のStandards Track文書は、すでに商用実装と導入例があったと記している。これは当時についての記述であり、現在の設定状況を示すものではない。RFC 2439 RFC 2439登録情報

中心的な変更は、ルーターが最新のUPDATEだけでなく、経路の履歴も保持することだった。外部ピアから経路を受け取るルーターは、経路の識別単位に対してfigure of meritを持てる。到達可能から到達不能への移行ごとにペナルティが加わり、経路が安定している間は値が指数関数的に低下する。この点数は断線やピアの悪意を診断するものではない。ルーターが最近観測した変化を表し、経路を使うか広告するかに影響するローカルな判断材料である。RFC 2439

その結果、到達性の回復と経路の再利用可能性の間に時間差が生まれた。cutoff、つまり抑制しきい値は経路をいつ保留するかを決める。より低いreuseしきい値は、保留された経路がいつ選択に戻れるかを決める。最大保留時間は抑制の上限を設ける。到達性、累積ペナルティ、抑制状態、最良経路選択は関連しているが、同一の事実ではない。ピアが再び広告した後も、受信ルーターが経路を抑制中という場合がある。RFC 2439

履歴に応じた記憶であり、一律の待ち時間ではない

RFC 2439は、安定性に応じた抑制と固定間隔の広告制御を区別した。BGPのMinimum Route Advertisement Intervalは更新を時間的に調整する。一方、フラップ抑制は特定経路の過去の変化を使う。値がcutoffに届かなければ経路を使い続けられる。いったん抑制されると、減衰した値がreuseしきい値を下回るまで使えない。したがって、変化した経路すべてに同じ待ち時間が適用されるわけではない。RFC 2439 BGP-4

各パラメーターの役割も異なる。half-lifeは経路が到達可能な状態で値が下がる速さを定める。到達不能時には別の減衰率、または減衰なしを選べる。cutoffを高くすれば、抑制までにより多くの変化を許容する。reuseしきい値を下げれば、復帰に必要な安定期間は長くなる。RFC 2439の例では、特定の値を前提に二、三度の撤回で抑制され、その後、広告が安定してからhalf-lifeの約1.5〜2.5倍が経過して再利用されることがある。これは条件付きの例であり、全ルーターに共通する保証ではない。RFC 2439

適用場所にも境界があった。RFC 2439は外部ピアから受信する更新を対象とし、iBGPで学習した経路や選択後の経路を抑制するとループを招くおそれがあると警告した。経路識別には少なくともNLRIを含め、既定ではAS_PATHも含める設計だった。宛先プレフィックスだけに結び付けたペナルティと、その宛先への特定パスに結び付けたペナルティは同じではない。RFC 2439

実装によって費用を負担する主体が変わる

2006年の運用レビューRFC 4277は、調査対象となった当時の実装が、RFC 2439の要件に反してNLRIやAS_PATHごとに履歴を保存していなかったと報告した。経路が密に結ばれたネットワークでは、宛先全体を過度に抑制し、最悪の場合は一度の障害でも抑制する可能性があり、その悪影響は観測済みだという。これは当該レビューの限定された報告で、すべての実装に当てはまるとは限らない。同じRFCは、持続するエラーに対するピアセッションのdampingも別に論じている。これは個別経路のフラップ抑制とは異なる。RFC 4277 RFC 2439

2014年のRFC 7196は別の費用を指摘した。経路やピアが多いトポロジーでは通常の収束でもUPDATEが増え、接続性の高いサイトが不利になることがある。引用された一週間の測定では、cutoff 6,000は2,000と比べて抑制されたプレフィックスを90%減らし、dampingなしに比べUPDATE率を推定19%削減した。12,000では抑制プレフィックスが0.22%、時間当たりの平均UPDATE減少が11%だった。これは引用された観測期間の結果であり、一般的な予測ではない。RFC 7196

RFC 7196は、破壊性を抑えつつやや積極的に使うなら少なくとも6,000、保守的に使うなら12,000を勧めた。同時に運用中の設定を壊さないよう、実装が既存の設定可能な既定値を変更すべきでないとも述べた。また、経路を実際には抑制せず、抑制対象の計算だけを行うテストモードも認めている。2014年の答えは、dampingを一律に有害と断定することでも、どのトポロジーにも通用する数字を示すことでもなく、測定して調整することだった。RFC 7196

この歴史は「dampingを有効にしてから無効にした」という単純な話ではない。RFC 2439は経路の過去を再利用判断に持ち込んだ。RFC 4277は実装が保持する経路識別の粗さがペナルティを広げ得ることを示した。RFC 7196は通常収束と接続性の高さも、抑制の前に測定すべき費用として扱った。dampingの点数は物理故障、悪意ある起点、あるいはサービス全体の停止を証明しない。RFC 2439 RFC 4277 RFC 7196 Scalable Routing Design Principles RFC 2439 Datatracker

出典