10/05/2016

BGPの持続的な経路オシレーションの解決法 (RFC 7964)

BGPの持続的な経路オシレーション(Persistent Route Oscillation)の解決法がRFC 7964となった。

1. はじめに

[RFC3345]によると、BGPのルートリフレクション[RFC4456]あるいはBGPコンフェデレーション[RFC5065]による経路情報の削減は、特定の経路設定やネットワークトポロジで、内部BGP (IBGP)のオシレーションをもたらす。2〜3の人為的に設計されたネットワークトポロジ以外は、MULTI_EXIT_DISC (MED)属性[RFC4271]が持続的なIBGP経路オシレーションと知られている全てにおいて極めて重要な役割を演じている。簡潔のために、我々はMEDが役割を果たしている持続的なIBGP経路オシレーションを呼ぶのに「MED起因の経路オシレーション」という用語を使う。

MED起因の経路オシレーションを排除するため、そしてネットワークで一貫性のあるルーティングを実現するため、ルートリフレクタあるいはコンフェデレーションの自律システム境界ルータ(ASBR)はアドレスプレフィックスのベストパスだけでなくそれ以上に経路を広報する必要がある。我々の目的は、状態が悪化するのを防ぐため、ルートリフレクタあるいはコンフェデレーションのASBRによって広報されるアドレスプレフィックスの必要な一連のパスを明確にすることである。

この文書で、我々はネットワークでMED起因の経路オシレーションをなくすためルートリフレクタあるいはコンフェデレーションのASBRによって広報されるアドレスプレフィックスの二組のパスを説明する。最初の一組は全ての利用可能なパスを含んでおり、フルIBGPメッシュと同じルーティングの整合性を実現する。最初の一組のサブセットである二組目は、隣接ASベース(neighbor-AS-based)のグループベストパスを含んでおり、MED起因の経路オシレーションをなくすのに十分である(いくつかの一般的に採用されるトポロジー上の制約事項に依存する)。

これらのパスは複数パスを広報するためにADD-PATH [RFC7911]で説明されているメカニズムを使って広報される。土台となるBGP仕様[RFC4271]を超えた機能以外の前提は使わない。

3. 全ての利用可能なパスを広報

フルIBGPメッシュをメンテナンスするネットワークを観察すると、全てのBGPスピーカは一貫性と等価性のあるルーティング情報を持っている。そのようなネットワークはMED起因経路オシレーションやフォーワーディングループのようなルーティングの矛盾は無い。

従って、一つの方法はルートリフレクタあるいはコンフェデレーションのASBRがアドレスプレフィックスの全ての利用可能なパスを広報できるようにすることである。明らかに、この方法はルーティング情報と同量をもたらし、ネットワークの中でフルIBGPメッシュと同じルーティングの一貫性を達成する。この文書の中で、「利用可能なパス」は全ての利用可能なパスの広報のことを呼ぶ。

この方法はいくつかのプレフィックスの複数パス広報するADD-PATH [RFC7911]で説明するメカニズムを使って実装できる。

拡張のために、複数パスの広報は、多くの代替パスを運ぶネットワークではMED起因の経路オシレーションによって影響するプレフィックスに限定すべきである。これらのオシレーションがどのように起こるかの詳細な説明が[RFC3345]に書かれている。ノードがどのようにそのような条件でローカルに検知するかの説明は、この文書のスコープ外である。

4. グループベストパスを広報

経路の「隣接AS (neighbor-AS)」という用語は経路を受信した先の隣接する自律システム(AS)を呼んでいる。隣接ASの計算は[RFC4271]の9.1.2.2節と[RFC5065]の5.3節で指定されている。その名の通り、MEDは同じ隣接ASの経路同士のみを比較する。従って、[RFC4271]で規定されている経路選択手続きは概念的に2段階を必要となる: まず、アドレスプレフィックスのパスをそれぞれの隣接ASと一致するグループに整理し、各グループに最優先の一つ(グループベストパスと呼ばれる)を計算する。そして、全てのグループベストパス同士で全体のベストパスを計算する。

ほとんどの場合推奨され([RFC4456]と[RFC5065]で)、広く採用された方法、ルートリフレクションクラスタあるいはコンフェデレーションsub-ASは、BGP NEXT_HOPへのIGPコストをベースで決定される場合、クラスタ(あるいはコンフェデレーションsub-AS)内のBGP経路が、他のクラスタ(あるいはコンフェデレーションsub-AS)からの経路よりも優先されるように設計すべきである。これは通常はクラスタ(あるいはコンフェデレーションsub-AS)の中でリンクのIGPメトリックを設定することで、クラスタ(あるいはコンフェデレーションsub-AS)間のリンクのIGPメトリックよりも小さくなることで実行される。このプラクティスがルートリフレクションクラスタあるいはコンフェデレーションsub-ASの中で一貫性のあるルーティングを達成する手助けとなる。

ルートリフレクションクラスタあるいはコンフェデレーションsub-ASを発案するための前述のプラクティスがネットワークの中で可能な時、我々はルートリフレクタあるいはコンフェデーレションASBRによる全てのグループベストパスの広報はネットワークの中でMED起因の経路オシレーションをなくすために十分であると言っている。この主張は付録Aで立証されている。

アドレスプレフィックスのグループベストパスはアドレスプレフィックスと隣接ASの組み合わせによって識別できることに注意してほしい。従って、この方法は複数パスを広報するADD-PATH [RF7911]で説明されているメカニズムを使って実装されており、この場合、パスの隣接ASは、パスのパス識別子として使われるだろう。

グループベストパスがMED起因の経路オシレーションを防ぐのに十分なトポロジ的制約事項をいくつか求めていることに注意すべきである。詳しいトポロジ的制約事項は[RFC3345]で説明されている。

5. ルートリフレクションとコンフェデレーション

ルートリフレクタあるいはコンフェデレーションASBRがADD-PATH [RFC7911]で説明されているメカニズムを使って、利用可能なパスあるいはグループベストパスのどちらかを広報するので、次の修正がBGPルートリフレクションとBGPコンフェデレーションで提案されている。

5.1. ルートリフレクション

特別な<アドレスファミリー識別子(AFI), 後続アドレスファミリ識別子(SAFI)>のために、ルートリフレクタはIBGPピアに広報されるADD-PATHケーパビリティ[RFC7911]の中で、"Send/Receive"フィールドに2(複数パスを送信)あるいは3(複数パスを送信/受信)を持つ<AFI, SAFI>を含めなければならない。IBGPピアから同じ<AFI, SAFI>で"Send/Receive"フィールドが1(複数パスを受信)あるいは3(複数パスを送信/受信)に設定されているADD-PATHケーパビリティを受信した場合、次の手順が用いられる:

ピアがルートリフレクタクライアントなら、ルートリフレクタは非クライアントIBGPピアから受信したグループベストパス(あるいは利用可能なパス)をピアへ広報しなければならない。ルートリフレクタはそのクライアントから受信したグループベストパス(あるいは利用可能なパス)をピアに広報してもよい。

ピアが非クライアントなら、ルートリフレクタはそのクライアントから受信したグループベストパス(あるいは利用可能なパス)をピアに広報しなければならない。

5.2. コンフェデレーション

特別な<AFI, SAFI>のために、コンフェデレーションASBRはIBGPピアに広報されるADD-PATHケーパビリティ[RFC7911]の中で、"Send/Receive"フィールドに2(複数パスを送信)あるいは3(複数パスを送信/受信)を持つ<AFI, SAFI>を含めなければならない。IBGPピアあるはコンフェデレーション外部ピアから同じ<AFI, SAFI>で"Send/Receive"フィールドが1(複数パスを受信)あるいは3(複数パスを送信/受信)に設定されているADD-PATHケーパビリティを受信した場合、次の手順が用いられる:

ピアが内部なら、コンフェデレーションASBRはそのコンフェデレーション外部ピアから受信したグループベストパス(あるいは利用可能なパス)をピアへ広報しなければならない。

ピアがコンフェデレーション外部ピアなら、コンフェデレーションASBRはそのIBGPピアから受信したグループベストパス(あるいは利用可能なパス)をピアに広報しなければならない。

6. デプロイメントの検討

経路オシレーションを検知したら、シンプルな設定による緩和策でなくすことができる。追加パスを運ぶことはネットワークでのメモリ使用量やルーティング収束に影響を与えるので、影響やコンフィギューレション次善策を使う方法を評価し、提案されているメカニズムをデプロイするかどうを検討することを推奨する。加え、複数パスの広報はMED起因の経路オシレーションによる影響を受けるプレフィックスに制限すべきである。

ネットワーク中のルートリフレクタあるいはコンフェデレーションASBRはグループベストパスあるいは利用可能なパスを広報する必要がある限り、ネットワーク中のBGPスピーカの大部分はグループベストパスあるいは利用可能なパスを受信する必要があるだけで、小さなソフトウェア変更のみを伴う。

グループベストパスを広報する方法を使ったネットワークでMED起因の経路オシレーションをなくすために、IGPメトリックに関わる([RFC4456] [RFC5065])ルートリフレクションあるいはコンフェデレーションsub-ASを通じての推奨された方法は次の通りだと重要性を強調すべきである。

ネットワークの大部分にとって一貫性のあるルーティングを達成するため適当なグループベストパスを広報する方法が期待されている。ネットワークが大量の代替パスを持つため、その方法は特定のアドレスプレフィックスの隣接ASの数によって制限されているリフレクタあるいはコンフェデレーションASBRによって広報されるパス数が良い選択のはずである。アドレスプレフィックスの追加状態はパス毎よりも隣接AS毎であるべきである。カスタマの上位プロバイダの数が限定されており、IXP(相互接続点)でカスタマの経路のみを広報する特質があるため、特定のアドレスプレフィックスを持つ隣接ASの数は通常小さい。

しかし、グループベストパスを広報する方法はフォワーディングループのような他のルーティングの矛盾を避けるため、いくつかのネットワークにとってまだ不十分かもしれない。必要となるトポロジ的な制約事項は運用上の課題でもある。これらのケースでは、利用可能なパスを広報する方法が使われるかもしれないが、大量の代替パスを運ぶネットワークでMED起因の経路オシレーションによって影響するプレフィックスに限定すべきである。

付録A. なぜグループベストパスが十分なのか

一般的な方法は次の通りだと見られる。ルートリフレクタクラスタあるいはコンフェデレーションsub-ASはクラスタ内のリンクのIGPメトリックは、クラスタ(あるいはコンフェデレーションsub-AS)間のリンクのIGPメトリックよりも小さくするような設計にすべきである。この方法はルートリフレクションクラスタあるいはコンフェデレーションsub-ASの中で一貫性のあるルーティングの達成を手助けする。

フルIBGPメッシュのみを運用するネットワークを考えてみると、(Local_Pref, AS-PATH長, Origin, MED)の比較[RFC4271]で残るパスが、ネットワークでの経路選択に寄与する。

ネットワーク内の全てのパス同士で(Local_Pref, AS-PATH長, Origin, MED)の比較で残った一つ以上のパスを持つルートリフレクタクラスタを考えてみてほしい。これらの残ったパスの一つが、クラスタ内のルートリフレクタによるグループベストパスとして選択される。前述のIGPメトリックに対する制約のため、このパスはグループベストパスとして残り、パスは別のクラスタから受信したものの、他の全てのクラスタに広報される。

他方、ネットワークで全てのパス同士で(Local_Pref, AS-PATH長, Origin, MED)の比較でルートリフレクションクラスタにパスが残らない時、ルートリフレクタのグループベストパス(存在すれば)が別のクラスタからのものとなる。明らかに、ルートリフレクタによるグループベストパスのクライアントへの広報は他のクラスタから受信したパスによって決まる。

従って、ピアへのグループベストパスの広報がそのピアから受信したパスによって決まらないなら、そのネットワークにはMED起因の経路オシレーションは存在しない。

コンフェデレーションに対する要求は同じように有効なはずである。