インフラ・DevOps
BGP ORIGIN属性の操作とそのインターネットへの影響
BGP ORIGIN attribute manipulation and its impact on the Internet (blog.cloudflare.com)
要約
Cloudflareの調査によると、インターネットのルーティングプロトコルであるBGPにおいて、ORIGIN属性の約70%が本来の設定値から変更されていることが判明しました。この属性はルーティングの優先順位に影響を与えるため、その操作はインターネット上のトラフィック転送方法に重大な影響を及ぼしています。この現象は、ネットワーク事業者がトラフィックを自社ネットワークに誘導し、収益を増やすための手段として行われていると分析されています。
全文翻訳
Border Gateway Protocol (BGP) は、インターネットの事実上のルーティングプロトコルです。これは、自律システム (AS) によって表されるエンティティが、インターネット上でトラフィックを送受信する方法を表現するための組み込みメカニズムを提供します。そのようなメカニズムの1つがパス属性であり、関連するルートに不可欠なルーティング情報とメタデータを運びます。パス選択アルゴリズムは、これらのパス属性の一部を決定論的なシーケンスで処理して、特定のプレフィックスの最適なパスを計算します。
インターネット上の独自の立場を利用して、BGPのよく知られた必須属性の1つであるORIGIN属性について調査しました。ORIGINは、すべてのBGPプレフィックスアナウンスに存在する必要があり、オリジナルのASによって設定された後、他のルーターによって変更されるべきではありません。私たちの独自の実験で見つかったことは、多数の観測点からの観測されたパスの約70%が、オリジナルのASによって設定された値とは異なるORIGIN値を持っているということでした。このORIGIN属性の操作は、本稿で探求するように、インターネット上のトラフィック転送方法に重大な影響を与えます。
BGP ORIGINとその運用履歴
ORIGIN属性は、ルートがBGPにどのように注入されたかを示します。これは、ルートをアナウンスしたASを示すオリジンASとは混同しないでください。3つの可能な値があります。
(0) IGP: ルートがオリジナルのASの内部にあることを示します。
(1) EGP: 古いExterior Gateway Protocol (EGP) を介して学習されたルートを示す歴史的な値であり、廃止されており、現代のインターネットで使用されることを意図していません。
(2) INCOMPLETE: ルートが不明または外部ソースから学習されたことを示します。
RIPE RISおよびRouteViewsのすべての公開BGPコレクターからの全観測可能ルートのうち、89.8%がORIGINをIGPに設定し、3.5%がEGPに、6.7%がINCOMPLETEに設定されています。前述のように、EGPは完全に廃止されるべきものであり、INCOMPLETEは全ルートの少数派を占めています。これらの数値は、IGPが圧倒的に最も一般的なORIGINの値である一方で、10%以上のルートがルーティング決定に影響を与える可能性のあるEGPまたはINCOMPLETEの値を持っていることを示唆しています。
BGPパス選択プロセスの1部として、ルーターは、2つのルートが同じローカル優先度とAS_PATH長を持つ場合、ORIGINを評価し、より低いORIGIN値を持つパスを選択してインストールします。
パス選択決定とは別に、RFC4271がORIGINについて次のように述べていることに注意する価値があります。
ORIGIN属性は、関連するルーティング情報をオリジネートするスピーカーによって生成されます。その値は、他のスピーカーによって変更されるべきではありません。
ORIGIN属性を変更しないようにというガイダンスがありますが、ルート選択プロセスでの早期評価のため、この属性はASがルートの優先順位を変更し、トラフィックを自社ネットワークを通過させたり、回避させたりするための魅力的なオプションとなっています。例えば、以下の図では、AS64501はORIGINをINCOMPLETEに設定してプレフィックスをアナウンスし、それを両方の顧客であるAS64502およびAS64503に伝播します。通常、両者は自身のASをAS_PATHにプリペンドし、共通の顧客であるAS64504にアナウンスを転送し、INCOMPLETE値を維持するはずです。しかし、自社のルートが競合他社よりも選択される可能性を高めるために、AS64503はORIGINをIGPに変更します。その結果、AS64504はプレフィックスに対して同じAS_PATH長の2つのルートを受け取りますが、AS64503からのルートは優先されるIGP値を持っています。したがって、AS64504はAS64503を経由するルートを選択してAS64501にトラフィックを送信し、そのプロバイダーへのトラフィックと収益を増加させます。
不正確だがより好ましいORIGINへのこの単純な変更により、トランジットプロバイダーはトラフィックを引き付け、利益を得ることができます。
ネットワークオペレーターコミュニティは、トランジットプロバイダーがより多くのトラフィックをリンクに引き付けるためにORIGIN属性をIGPに書き換えているという現実に静かに受け入れてきました。しかし、RIPE 91会議でのJames Bensleyが、主要ネットワークによるこの操作技術の広範な採用を初めてスポットライトを当てました。LACNIC 45会議でのCelsa Sánchezによるフォローアッププレゼンテーションは、LACNIC(ラテンアメリカおよびカリブ海)地域におけるこの行動の影響を調査しました。公開開示はこの慣行を抑制するはずですが、ルート選択が収益主導の軍拡競争であるという現実を浮き彫りにしています。競合他社がRFCコンプライアンスを再開するのを待つのではなく、ネットワークオペレーターは、競争条件を平等にするために、ORIGINの書き換えに迅速に頼る可能性が高いです。インターネット全体でこのますます一貫性のないORIGINの取り扱いは、その廃止を推奨する、現在失効しているインターネットドラフトの作成につながりました。この現象の範囲を明らかにし、そのアクターとその意図を追跡するために、独自の実験を実施し、次のセクションで結果を共有します。
ORIGIN属性操作の分析
私たちの実験では、すべてのピアリングロケーションからBGP Anycastを使用して、3つのIPv4および3つのIPv6プレフィックスを、それぞれ異なるORIGIN値(IGP/EGP/INCOMPLETE)でアナウンスしました。グローバルな伝播を確認した後、プレフィックスを撤回してパスハンティングプロセスをトリガーし、テストプレフィックスへのパスを増やして、変更されたORIGINを検出する機会を増やしました。以下の図に示すように、BGPKITツールキットを使用して、RIPE RISおよびRouteViewsのすべての公開BGPコレクターからのMulti-threaded Routing Toolkit (MRT) ダンプ、およびボーダールーターから収集したローカルBMPデータからのUpdateメッセージを解析しました。ルーティングテーブルのスナップショットであるRIBダンプではなくUpdateを分析することを選択したのは、アナウンスフェーズと撤回フェーズの両方で可能な限り多くのルートを取得するためです。BGP分析の根本的な困難は、単一のルーティングアナウンスに対するインターネット上のすべてのASに対する可視性の欠如です。このギャップは、ハイパースケーラーやCDNが従来のトランジットルートをバイパスして直接ローカルピアリングを優先することによって推進される、インターネットの現代的なフラット化によってさらに広がっています。その結果、公開モニターは特定のプレフィックスのBGPトポロジーの大部分を見逃しており、ASプロパティに関する推論には常に固有の不確実性が伴います。
2ホップAS_PATHでのORIGINリライターの発見
まず、2つのASのみを持つAS_PATH、「ASX AS13335」に焦点を当てました。ここで、ASXを直接ピアと呼びます。ルーターを特定のORIGINを持つアナウンスを伝播するように設定したため、異なるORIGINを観測した場合、ASXが新しい値に変更したはずだと確信できます。以下の表は、IPv4の352の直接ピアの操作動作を示しています。「Advertised ORIGIN」列は、3つのプレフィックスそれぞれに対してアドバタイズされている値を示し、右側の列は直接ピアASで観測されたORIGIN値を示しています。
Advertised ORIGIN (IPv4) | Observed ORIGIN at direct peer
-----------------------|--------------------------------------------------
IGP | IGP: 345, EGP: 3, INCOMPLETE: 4, IGP + EGP: 0, IGP + INCOMPLETE: 0
EGP | IGP: 32, EGP: 313, INCOMPLETE: 4, IGP + EGP: 3, INCOMPLETE: 0
INCOMPLETE | IGP: 32, EGP: 3, INCOMPLETE: 314, IGP + EGP: 0, IGP + INCOMPLETE: 3
2つの興味深い観察に言及したいと思います。第一に、3つのASが、元の値に関係なく、ORIGINをEGPまたはINCOMPLETEに変更しており、これらのルートを優先度を下げる試みをしている可能性があります。これらのASの1つのネットワークエンジニアに連絡したところ、ピアまたはプロバイダーから受信したルートに対してORIGINをEGPに書き換えている(顧客のルートよりも優先度を下げるため)ことを確認しました。第二に、非IGPプレフィックスの場合、3つのASが元の値とIGPの両方(上記の最も右の2つの列)を持つルートを伝播しています。ルートのコミュニティやAGGREGATORなどの他の属性に基づいて、これらのASは複数のピアリングロケーションで私たちのルートを受信し、おそらく優先されるポイントを介してトラフィックを転送するためにORIGINをIGPに更新していると推測されます。後者のASと、一貫してIGPに書き換えているASを組み合わせると、直接ピアの約10%がORIGIN属性をIGPに変更していることがわかります。tes