要約

  • MULTI_EXIT_DISCは、同じ広告ASへの複数リンクのうち望ましい入口を伝える、弱く任意で非transitiveな助言である。小さい値が効くのは、より強いローカル条件が同じ場合だけだ。
  • 受信網はMEDを選択前に削除または変更できる。通常は同じ隣接ASから学習した経路の間だけで値を比較する。
  • 安全な利用には二者間で共有した意味、十分な候補可視性、稼働証拠が要る。別々の網が作った数値を一つの尺度と扱うと、特定トポロジーで不整合や持続的振動を招き得る。

AS 65001とAS 65002が東京と大阪で接続しているとする。同じプレフィックスに対し、65001は大阪でMED 20、東京でMED 80を広告する。他の重要属性が同じなら大阪から受け取りたい、という意味だ。大阪の容量が大きい、内部距離が短い、東京側に作業上の制約があるのかもしれない。

それでも選ぶのは65002である。契約上、大阪経路のLOCAL_PREFを低くしているかもしれない。特定関係のMEDだけを採用し、属性を削除または置換することもできる。判断するルーターに代替が見えていない場合もある。小さい数字は遠隔ポリシーへの書き込みではなく、別に統治されるシステム内で評価される助言だ。

RFC 4271のMULTI_EXIT_DISCはこの節度を表す。4 octetのunsigned numberで、optionalかつnon-transitiveである。他条件が等しければ小さいmetricを優先する。EBGPで受けた値は受信AS内のIBGPへ渡せるが、別の隣接ASへは伝えてはならない。意味を持つ関係の境界で助言が止まる。

受信側の権限も明記される。実装は受信MEDをpreference計算と経路選択より前に削除できるローカル機構を備えなければならず、同じ段階で値を変更してもよい。送信側は自分が広告した値を所有し、受信側はその値を残すか、どんな結果を与えるかを所有する。

弱さは意図的だった。RFC 1773は旧inter-AS metricを選択後段の弱い要因として説明する。遠隔運用者が、受信網のより強い方針に反してトラフィックを吸収または排出させないためである。LOCAL_PREF、AS_PATH長など先行条件はMEDを邪魔する欠陥ではなく、助言を条件付きに保つ権限境界だ。

したがって「最小MEDが必ず勝つ」は誤りである。MED 10でも、MED 100の経路が高いLOCAL_PREFを持つか、先の段階で勝てば敗れる。RFC 8326が保守でMED引き上げを限定的手段とするのも同じ理由だ。代替がLOCAL_PREFやAS_PATH長で先に負けるならトラフィックは動かない。

通常の比較域はさらに狭い。RFC 4271はAS_PATHから判断した同じ隣接ASの経路間だけでMEDを比較する。AS 65001の三つの値は、その三入口を一つの意味で並べられる。AS 65003の値は別トポロジー、費用、契約から作られた可能性が高い。一方の20が他方の40より小さいという共通単位はない。

MEDは全順序を作らない。AとBは同じ隣接ASなのでAの低いMEDで比較されても、BとCが別ASなら後続条件へ進む。A、B、Cがtransitiveな一列になる保証はない。候補のgroup、各groupの勝者、判断点に見える情報が結果を左右する。

IOS XR文書は、隣接ASごとに候補をgroup化し、各groupで最小MEDを選び、その勝者同士で通常選択を続ける動作を説明する。これは単なる内部都合ではない。限定比較域を実装し、候補の順序や完全性が答えに影響し得る理由を示す。

製品によっては異なる隣接AS間でもMEDを比べられる。全数値を同じ競争に入れるため一貫して見えるが、実際は遠隔数値へ与える影響範囲を広げる。Juniperは由来の異なる尺度の広域比較に注意を促し、RFC 3345も一般解として推さない。同じfield widthは同じunitの証拠ではない。

受信組織が共通尺度を作ることはできる。全入站MEDを自分の規則で書き換える、または参加者と同じservice metricを使う合意を結ぶ方法だ。その場合、比較可能性は受信側が与えた意味から生まれる。group、導出、欠落値、優先順位を記録すべきで、Internetから届く4 octetが自動的に単位を共有するわけではない。

MEDの欠落にも明示的方針が要る。任意属性なので一方に値があり、他方にないことがある。製品とpolicyは沈黙を違って解釈し得る。欠落が常に0、最大値、または一社の選択だと推測せず、稼働中の振る舞いを確認する。

候補可視性は判断を変える。full-mesh IBGPは多くの出口をspeakerへ配る。Route ReflectionやConfederationは全候補を全地点へ渡さず負荷を減らす。RFC 4456は、MEDが常に比較可能でなく、NEXT_HOPへのIGP距離もrouterごとに違うため、特定の反射構造がfull meshと異なる選択をし得ると警告する。

階層が危険なのではない。可視性を証拠に含める必要がある。あるreflectorがAとB、別のreflectorがBとCを見て、比較がtransitiveでなければ、各地点の合理的な選択が他地点を成立させた情報を取り消す場合がある。scaleの節約はdecision surfaceも変える。

RFC 3345は、特定のroute-reflectorまたはconfederation構造、部分的で不整合な出口可視性、MED依存選択が重なると持続的振動が起きる条件を示す。その条件下ではdeterministicな現象であり、全構造に生じるわけではない。しかし物理障害のrandom noiseとして片付けることもできない。

対策は権限か可視性を変える。reflector配置の見直し、重要border router間の可視性、入口LOCAL_PREF、MEDの正規化や削除、許可関係の限定、追加path配布などがある。全AS比較は異なるpolicy空間を混ぜ、全面削除は有用な助言を失う。証明された原因に対応する修復を選ぶ。

RFC 5004は関連するが狭い切替を扱う。現在のexternal bestと代替が遅いidentifier比較まで残るとき、現在経路を維持して無益な切替を避けられる。分析例のchurnを止めても、RFC 3345の全振動を解決するとは述べていない。

到着順序にも注意が要る。RFC 4451は、古いpathの保存と経路順序によりMED選択が時間依存になった実装を記録する。安定結果は定義されたinputとpolicyから生じるべきで、どのUPDATEが先にmemoryへ入ったかで変わるべきではない。安定処理の設定も経路単位の検証が必要だ。

証拠はtrafficの前から集める。peerから受けたraw route、group化したneighbor AS、MED有無、post-policy値、LOCAL_PREF、AS_PATH、見える候補集合、best-path reasonを保存する。単一looking glassではなくborderと内部decision pointを比較する。

次にforwardingを確認する。BGP選択は期待するFIB NEXT_HOPを作り、telemetryは対象flowが目的の相互接続を使ったことを示さなければならない。低MED表示は勝利の証明でなく、一つのRIBのbestは別入口のpacket pathを証明しない。静かなlinkは迂回、drop、需要なしのどれでもあり得る。

試験は両方の権限を扱う。限定prefixで送信値を変え、相手の受信と選択を観測する。受信側で削除・書換えしlocal policyを確認する。欠落、同値、先行属性差、複数AS、出口撤回、反射、到着順、rollbackを含める。数字が動くことではなく権限範囲を証明する。

関係合意はcommand syntaxより重要だ。顧客が二つのprivate interconnectでMED採用を期待するなら、prefix、family、link、range、先行LOCAL_PREF、欠落、override権、紛争時telemetryを記録する。文脈がなければwire上で正しくてもservice上は曖昧である。

Heng Luの最小初期仕様はMEDに合う。共通protocolは任意metric、限定伝播、条件付き比較という小さなobjectを提供する。数字がcapacity、cost、policyのどれかまでは決めない。運用し結果を負うnetworkが将来選択を持つ。

running codeの優先が受入試験になる。文書とcommitは意図であり、received attribute、実効rewrite、visible candidate、selection reason、FIB NEXT_HOP、delivered trafficがsystemだ。packetが望む入口を通らなければmetricは実務権限を行使していない。

ここでのdata sovereigntyは遠隔routeの所有ではなく、自分の運用状態を制御する力である。送信側は好む入口を述べ、受信側は契約とriskに合うとき採用する。双方がdecision machineryを渡さないから協調できる。

MEDは双方がその控えめさを理解するとき成功する。小さい数は入口を勧めるが、corridorの存在、内部可視性、強いpolicyの同意、実trafficを保証しない。弱さは未完成の権限ではない。統治せず助言するための安全装置である。

出典