要約

  • BGP MED は任意・非推移で、意図的に弱い指標である。低い値が作用するのは、受信側ポリシーが残した候補集合の中だけだ。
  • UPDATE や looking glass に狙った値が見えても、関連ルーターの経路選択、FIB への反映、本番フローの入口変更は証明できない。
  • 必要なのは、広告、import policy、比較候補、best path、転送状態、観測期間内のトラフィック測定を結んだ記録である。

数字だけが下がった保守窓

仮想的な保守場面を考えよう。二つある相互接続の片方で MED を下げる。ルートコレクターには新しい値が現れ、withdraw もない。低い数字は決定的に見え、変更を閉じかける。ところがインターフェースカウンターでは、受信トラフィックの大半が依然として別拠点に入っている。

これは BGP が MED を無視した証拠ではない。受信側が別の LOCAL_PREF を設定した、短い AS_PATH を優先した、import 時に MED を統一した、同じ隣接 AS の経路だけを比較した、あるいはルーターごとに候補が違った可能性がある。観測した UPDATE が証明するのは、一つの speaker が一つの属性を示したことだけだ。遠隔ネットワーク全体の判断やパケット移動ではない。

優先度の材料であって命令ではない

RFC 4271 は MULTI_EXIT_DISC を、同じ隣接 AS への複数の入口・出口を区別するための、任意かつ非推移な 4 オクテット符号なし指標と定義する。他の要因がすべて等しい場合に、低い値を優先すべきだとする。この条件が契約である。属性は必須ではなく、別の隣接 AS へは伝播せず、通常は同一隣接 AS から学習した経路間だけで比較される。より強いポリシーが先に候補を落とすこともある。

判断主体は受信ネットワークだ。RFC 4271 は MED を削除するローカル機構を求め、選択前の値変更も認めている。相手は値を受け入れ、置換し、差を消せる。送信側は希望を表明できるが、相手の選路権を得るわけではない。

MED が無い経路にも明示的な規則が要る。現行基本仕様は所定の比較で最小値として扱う。RFC 4451 は過去の仕様と実装が異なる扱いをした事実を記し、多くの運用者が入口で固定値へ正規化する理由を説明する。50 と 100 の表示だけでは、MED 無しの候補と書き換え地点が欠けている。

候補集合こそ分母である

MED はその比較段階まで残った経路にしか効かない。低い値でも LOCAL_PREF、パス長、その他のポリシーに先に負け得る。基本規則では、異なる隣接 AS からの経路は同じ MED 比較に入らない。AS をまたぐ比較を有効にすると前提が変わり、互換性のない指標空間を混ぜる恐れがある。

RFC 4451 は運用差が広いと警告する。route reflector や confederation では、MED 規則に全順序がない問題が表れ、持続的な経路振動につながり得る。必要な証拠は単一ルートの画面ではない。判断するルーターの完全な候補、前段を通過した属性、各ノードの選択が揃っているかである。

best path から実パケットまで

best path は広告より強い証拠だが、まだトラフィック記録ではない。next hop が FIB に入る必要があり、ECMP やフロー単位の処理は負荷を分ける。観測中に需要も変わる。withdraw、session reset、トポロジー変更が MED 編集と同時に流量を動かす場合もある。

推論の段階を分ける。広告は送信内容、import は受理・変更内容、decision state は一台の選択、FIB は実装内容、カウンターや flow sample は一定期間のパケット経路を示す。前の事実に次の事実の証明力を持たせてはならない。

RFC 4451 は時間的限界も示す。IGP metric 由来の MED は内部変動を BGP update churn に広げる。session reset で広告値と流量パターンが変わることもある。reset 前や一台の reflector で得た保証は永続しない。

情報源