概要

インターネット接続を冗長化したマルチホームASでは、適切なBGPルートのフィルタの設定が必要です。マルチホームASでのルートフィルタのポイントについて解説します。

マルチホームASでのルートフィルタのポイント

マルチホームASのBGPルータは、複数のISPのルータとBGPネイバーを確立します。そして、ISPルータへBGPルートをアドバタイズするときに、以下のフィルタをかけます。

自AS内のネットワークのみをISPルータにアドバタイズする

こうしたマルチホームASでのBGPルートフィルタについて考えます。

マルチホームASでのBGPルートのアドバタイズ

マルチホームASで複数のASのBGPルータとネイバーを確立すると、デフォルトではトランジットASとして動作してしまいます。BGPネイバーから受信したルートは、ベストパスであればさらに他のBGPネイバーにアドバタイズするからです。たとえば、次の図のネットワーク構成を考えます。

図  マルチホームASでのBGPルートのアドバタイズ  ネットワーク構成例
図 マルチホームASでのBGPルートのアドバタイズ ネットワーク構成例

マルチホームAS(AS1)内のR1がISP1、ISP2とEBGPネイバーを確立しています。ISP1からBGPで100.0.0.0/8のルート情報を受信すると、R1はBGPテーブルにそのルート情報を格納します。ルートがループしていなければ、ベストパスに選択されることになります。すると、R1はISP1から受信した100.0.0.0/8のルート情報をさらにISP2へとアドバタイズします。

図 他のASのBGPルートをアドバタイズする
図 他のASのBGPルートをアドバタイズ

トランジットASとは他のAS間のパケットをルーティングする役割を持っているASです。R1のこのようなルート情報の送信は、ISP2に対して「100.0.0.0/8宛てのパケットをこちらに転送してきてもいい」といっていることになります。すなわち、100.0.0.0/8のネットワーク宛てのパケットがR1(AS1)へルーティングされる可能性がありAS1がトランジットASになってしまうことになります。

100.0.0.0/8はAS1の内部のネットワークではありません。ISPと契約してインターネットに接続する目的は、自分のASの中からインターネット上のネットワークとの相互通信ができるようにすることです。他のAS間のパケットのルーティングを行うために、ISPと契約してインターネットに接続しているわけではありません。

インターネット上のネットワークと相互通信するためには、次の2つができればいいです。

  • 自AS内のネットワークのルート情報をISPへ送信
  • ISPからインターネット上のネットワークのルート情報を受信

つまり、他のASのネットワークのルート情報をISPにアドバタイズする必要はなのです。もし、アドバタイズしてしまうとトランジットASの構成になり、他のASのネットワーク宛てのパケットが転送されてきてしまう可能性があるので望ましくありません。実際には、ISP側でそのようなルートはフィルタされることがほとんどなので、パケットが転送されることはまずありません。ですが、不要なルート情報をアドバタイズすることは、他のASに余計な負荷をかけることになります。

そのため、マルチホームASではトランジットASにならないようにするためのルートフィルタが必要です。BGPルートをISPのルータにアドバタイズするときにフィルタをかけます。ISPへアドバタイズするルート情報は自AS内のネットワークのもののみに限定します。

図 自AS内のネットワークのみアドバタイズ
図 自AS内のネットワークのみアドバタイズ

BGPルートのフィルタ方法の概要

特定のBGPネイバーへアドバタイズするときのBGPルートのフィルタには次の4つあります。

  • ディストリビュートリスト(distribute-list)
  • プレフィクスリスト(prefix-list)
  • フィルターリスト(filter-list)
  • ルートマップ

BGPでもルートフィルタ機能として、ディストリビュートリストやプレフィクスリストを利用することができます。これらのフィルタは、ルート情報のネットワークアドレス(とサブネットマスク)に注目して許可/拒否するルートを指定します。これらを利用してもいいのですが、BGPルート特有のAS_PATHアトリビュートに注目したフィルターリストを利用する方が効果的なフィルタが可能です。

ディストリビュートリストやプレフィクスリストといったネットワークアドレスをベースにしたフィルタは、フィルタ対象のルート数が多くなると、その分設定が面倒になります。それに対して、自AS内のルート情報のAS_PATHアトリビュートはすべて同じなので、AS_PATHアトリビュートをベースにしたフィルターリストは簡単に設定することができます。

関連記事

BGPのルートフィルタについてさらに詳細は、以下の記事をご覧ください。

自ASのルートのみをアドバタイズするフィルタリストについて、以下の記事もあわせてご覧ください。

まとめ

ポイント

  • マルチホームASでは、ISPルータへアドバタイズするBGPルートとして自AS内のネットワークのみにフィルタします。
  • こうしたルートフィルタを実現するためには、AS_PATHアトリビュートに基づいたフィルターリストの設定が効率的です。

BGPの仕組み