7/22/2017

BGPのMore Specific経路について

ジェフ・ヒューストンのブログより。More Specific経路の有益性を示し、最悪の場合でも他の人には無害だと結論。

Border Gateway Protocol(BGP)は、文字通りインターネットをつなげる接着剤の役目を果たすルーティング・プロトコルである。パブリック・インターネットは5万8千のネットワーク(BGPでは自律システム(AS)と呼んでいる)から構成されており、その多くが非常に小規模で、一部地理的範囲とユーザ数の双方の観点で非常に大規模なネットワークがある。BGPは、これらのネットワークを共有ネットワークマップの形で結合するために使用される。この仮想マップは基本的に到達可能な宛先に向けられるパケットを意図した宛先により近づくように渡す方法を各ASに伝える。BGPは各宛先により近い単なる機能的な適合性(functional adequacy)よりも少しでも良いことをしようとする。BGPは、このASレベルでの転送先決定は各宛先の全ての可能な転送先決定の中で最良であるようマップを構築しようとするので、意図された宛先へのパスは、AS間という単位で可能な限り短く、それと同時に各コンポーネント・ネットワークのトラフィック処理ポリシーと整合性が取れている。

BGPは今や非常に古くなったベルマン・フォードの距離ベクトル分散ルーティング・プロトコルの実例である。BGPの基本原理はシンプルだ: 各ルータは、隣接するネイバーASに知っている全ての経路を伝え、各ルータはそれぞれの宛先に到達するのに最適なネイバーASであると考えるものを選択する。BGPで何が最適かを定義するものもシンプルである: BGPは、宛先に到達するAS中継ホップ数が最も少ないネイバーASを経由するパスを選択するBGPの詳細はここにある。

BGPプロトコルの宛先の最適なネットワークパスの定義は、通過するネットワークが最小数のネイバーASだが、これはネットワーク運用の観点で、あるいはユーザの観点から真の最適パスは、必ずしも同じメトリックに基づいていない。ネットワーク事業者は、他のBGPスピーカーによって行われたパス選択をバイアスにして、低い遅延と低いコストのより大きな容量を持つ回線にトラフィックを向けることを望むかも知れない。ネットワーク事業者が望ましくないネットワークパスへのASトランジットホップ数を人為的に長くすることができ、シンプルなプロトコル・メトリックをバイアスすることができる。この行為は"AS prepending"と呼ばれている。もう一つのテクニックは、BGPルータは常に意図する宛先へのパケットに最も特定するルーティング・エントリを使用することを好むという順守を使う。例えば、ルータがアドレス・プレフィックス10.0.0.0/8のエントリと、別の10.0.1.0./24というMore Specificプレフィックスのエントリを含んでいたら、10.0.1.15とアドレス指定されたパケットを処理するとき、ルータは常に10.0.1.0/24の経路を選択する。その他のアドレスはMore Specificアドレス・プレフィックスを=利用する。これはMore Specificなルーティング・エントリを使用することが特定のネットワークパスを使用するようトラフィックを誘導するために使うことができる。

IPv4ネットワークのMore Specific広告の数は全広告の50%以上である。そして、IPv6の実態でも、全てのネットワーク広告の40%近いMore Specific広告がある。インターネット・コモンズを荒らすものとしてMore Specificの利用と決め付けたくなる。個々のネットワークは、More Specificの大規模な広告によってそれらの配置を最適化し、同様にBGPテーブルサイズの増加とBGPアップデートの処理オーバーヘッドの増加の観点で、他の全てのネットワークに増分コストをもたらす。私がここで検討したい問題は、これらのMore Specific広告が、他の人にとって大きな負担を突き付けていないか、それとも単純に避けられないのかどうかという点である。言い換えれば、BGPのMore Specificルーティング広告は、無分別なルーティングの破壊行為(vandalism)の事例だろうか、あるいはユーザが可能な限り低いコストで最高のサービスを楽しむために考え出されたルーティング利用を表しているのかだろうか?

ここでは、BGPのMore Specificルーティング広告の利用の統計情報を詳細に検討し、従来よりも大規模なインターネットの要求に応えるためにBGPをスケーリングしようというより大きな枠組みの中で、ルーティングシステムの成長におけるMore Specificの影響や、BGPアップデートの動態(dynamics)を検討する。

More Specific広告の分類

More Specificルーティング広告は全てが同じわけではない。いくつかの広告は、広告到達可能性の目的を果たし、共通のアドレス・プレフィックスによって識別される特定のネットワークがネットワークに接続されていることを他のネットワークに通知することに役立つ。他の広告は、ネットワークに到達するための優先パスを他にネットワークに通知するため、この基本的な到達可能性広告を変えようとする。More Specificネットワークを見ると、More Specific広告と直接包含する集約広告との関係を見ることで、More Specificの基本的な分類を考えることができる。

タイプI - ホール・パンチング

ホール・パンチングのMore Specific経路は、More Specific経路のオリジンASが集約経路のオリジンASと異なる。これは、More Specificプレフィックスの意図された宛先ネットワークが包括的な集約アドレス・プレフィックスとは異なるネットワーク・トポロジの変更である。

これは最近のBGPルーティング・テーブルのスナップショットからランダムに取得した例である。

Network            Path
72.249.184.0/21    4777 2497 3356 36024
72.249.184.0/24    4777 2497 2914 40824 394094

ここでは、集約経路72.249.184.0/21が、AS 36024で識別されるネットワークにトラフィックを誘導する。しかし、More Specificプレフィックス72.249.184.0/24へのトラフィックの場合、パケットはネットワークAS 394094に渡されるだろう。

集約通知をMore Specificをカバーしないプレフィックスに変更することで、More Specificを使うことなく、この状況を説明することが可能である。しかし、エレガントなホール・パンチングのアプローチよりもMore Specificの通知を結果として必要とするケースがある。例えば、上記2つのBGP広告の状況は、次の4つの重複しない広告として表現できる。

Network            Path
72.249.184.0/24    4777 2497 2914 40824 394094
72.249.185.0/24    4777 2497 3356 36024
72.249.186.0/23    4777 2497 3356 36024
72.249.188.0/22    4777 2497 3356 36024

明らかに、ホール・パンチングにおけるMore Specificの利用は、ルーティングの観点で多くの場合、効率的なソリューションである。

タイプII - トラフィック・エンジニアリング

トラフィック・エンジニアリングのMore Specificは、ホール・パンチングはASパスの異なるのに対し、More Specificな経路のオリジンASと、その集約を同じものにすることだ。それらは、AS prependingとのおかげで飲み異なる、あるいは異なるトランジットASという点で異なるかも知れない。トラフィック・エンジニアリング・プレフィックスの目的は、根本的なAS間の到達可能性を変更しないが、トラフィックが特定の宛先のオリジンASに誘導される方法にバイアスを掛けることだ。

再度、ルーティング・テーブルからランダムに取得した例である:

Network        Path
1.37.0.0/16    4608 1221 4637 4775
1.37.27.0/24   4608 1221 4637 4837 4775
1.37.237.0/24  4608 1221 4637 4837 4775

/16内の任意のアドレスへの全てのトラフィックは、同じ宛先ネットワークであるAS 4775に渡されるが、2つのMore SpecificプレフィックのアドレスへのトラフィックはAS 4837を通過してから、そこに到達する。

この場合もやはり、重複しない広告を使用して記述することはできるが、同じ考えが適用される。すなわち、重複しない広告の集合はMore Specificの仕様よりも大きな広告である可能性がある。

タイプIII - オーバーレイ

ここでは、More Specificアドレス・プレフィックスと、集約経路が共通のASパスや共通のオリジンASを共有する。例えば、

Network        Path
1.0.4.0/22     4608 4826 38803 56203 i
1.0.4.0/24     4608 4826 38803 56203 i
1.0.5.0/24     4608 4826 38803 56203 i
1.0.6.0/24     4608 4826 38803 56203 i
1.0.7.0/24     4608 4826 38803 56203 i

この場合、集約プレフィック内のアドレス付けされたパケットの処理とMore Specificは同一であるため、More Specific広告は全く機能を果たさない。More Specificな集合が正確に集約経路をまたがる場合もある。そのため、ルーティング的には、機能を変更することなく集約経路を削除できる。

ネットワーク事業者がこれを行う理由としての共通の理論は、More Specific広告は、More Specificルーティング攻撃のリスクをある程度緩和することを意図している。More Specific自身を広告することで、More Specificを広告しようとする敵対的な試みが攻撃者のサイトにトラフィック全体をリダイレクトできなくなる。一方で、敵対的な広告は依然として部分的には成功しているため、ある程度のやや無意味なルーティングの破壊行為やルーティング攻撃のかなり厄介な閉塞以外に、この手段の実際の恩恵があるか、私には不明である!

我々はBGPがその最適経路を伝搬するだけという事実を考える必要もある。リモートのBGPオブザーバは集約経路や一般的なパスを持つMore Specificを見るだけで、More Specificが役に立たないと仮定する一方、発信元ネットワークはMore Specificアドレス・プレフィックスのために多数の異なる広告を生成し、ローカルなトラフィック・エンジニアリング効果をサポートするため、様々なローカル・ピアにそれらの経路を渡すことが考えられる。遠方から見ると意味がないように見えるかも知れないことが、発信元ネットワークに近いネットワークは必ずしも同じというわけではないかも知れない。

(略)

結論

我々はBGPのMore Specific(な経路)について何と言ったらいいだろうか?

More Specificアドレス広告は、追加的ルーティング情報を提供することなく、テーブルサイズの合計と動的更新負荷を追加することで、潜在的な非効率性の原因となっているようだ。

しかし、これは事実と異なっている。More Spcificは別のASにアドレス・プレフィックスのトラフィックの一部を向け直すために使用され、他のMore Specificは着信トラフィックの一部を別のネットワークパスに誘導しようとしている。これらのMore Specificを広告するネットワークにとって、これらは非常に有用なルーティング・テクニックで、ルーティングの悪用の一形態として簡単に却下することはできない。

More Specificsのオーバーレイ形式だけが疑わしいと主張することができる。ネットワーク運用者は、ルーティング・セキュリティの基本的な形態としてこの習慣を守ることに同意している。More Specific自身を広告することで、彼らは第三者によってMore Specificの広告をとにかく停止すると主張されている。これはとにかく正当な理由である。安全ではないルーティング・システムでは、我々は今日インターネットをサポートするために使われる。誰かが同じMore Specificアドレス・プレフィックスの広告を注入することを防ぐ固有のプロトコルベースの制御がなく、このような攻撃の結果として今も損害を与えている。

しかし、すべてのネットワーク事業者は広告された経路からこれらのMore Specificを削除するのを動機付けたのは、これが全体的にどれほど効果的か不明で、BGPルーティングシステムに渡されるのはどんなレベルの利益か不明確だからである。IPv6では、オーバーレイはテーブルサイズとBGPアップデートの両方で小さな要因であるのはかなり明確である。そして、このスペースの中のアクションは、目に見える結果をもたらさない可能性がある。IPv4の改善に大きなマージンがあるが、現状は未だに潜在的な利益は小さく、恐らくそもそも努力する価値はない。

More Specificsのホール・パンチングとトラフィック・エンジニアリングはネットワーク事業者にとって有益な役割を果たし、他の慣例ではなくインターネットから任意に排除することはできないと結論を出すことができる。More Specificに相当する一覧のように、Less Specificよりも多くのプレフィックスを広告する結果となる可能性もある。

オーバレイ型More Specificのみが明白に便利な役割がないと主張できるが、BGPのより大きな事実の中には、More Specificのサブクラスのサイズや更新率は、いくつか不愉快なことはあるとはいえ、BGPに対してほとんど無害なままである。

More Specificについて何と言ったらいいだろうか? 現時点で、データはインターネットの中でMore Specificの利用は一部の人には有益であり、最悪の場合でもその他の人にとってはほとんど無害であることを示している。