ボーダーゲートウェイプロトコル(BGP)は、インターネット上のすべてのネットワークを接続するプロトコルです。これにより、コンピューターは世界中のどこにある他のコンピューターともデータを送受信できます。BGPは、GPSが道路上の経路を示すように、情報やトラフィックがインターネット上をどのように進むべきかを示します。
BGPは国際郵便サービスのようなものです。世界中の郵便サービスのネットワークがあるからこそ、手紙や荷物をある場所から別の場所へ送れます。BGPもデータに対して同様の働きをし、郵便配達員のようにインターネット上でデータをルーティングします。
BGPルーティングとは?
ボーダーゲートウェイプロトコル(BGP)は、インターネット上の自律システム(AS)間でルーティング情報と到達可能性情報を交換できる外部ゲートウェイプロトコルです。
BGPは、RFC 1163およびRFC 1267で定義されており、グローバルインターネットのトポロジー形成に重要な役割を果たします。BGPは、独立して運用されるネットワーク、つまりAS同士を接続し、互いの到達可能性に関する情報を交換できるようにします。
BGPルーターは、こうした更新情報を隣接ルーターと共有することで、特定のネットワークへ到達するための最適な経路に関する保存情報を更新できます。次にルーターはこの変更を隣接ルーターへ通知し、通知を受けたルーターも同じ処理を行います。このようにして、グローバルインターネットを構成する複雑な網状ネットワークは、常に接続された状態を維持できます。
BGPルーティングの仕組み
BGPルーティングは、自律システム(AS)間でメッセージを交換することで機能します。ASとは、単一の組織または事業体が管理するネットワークの集合です。各ASには固有の番号が割り当てられ、BGPメッセージ内で識別に使われます。
自律システム(AS)間の通信
2つのASが通信すると、それぞれのネットワークに関する情報を交換します。これには、IPアドレス範囲やサブネットマスクなど、ネットワーク関連のデータが含まれます。この情報を使って、2つのAS間で利用可能なすべての経路を記載したルーティングテーブルを作成します。
経路の更新
ルーティングテーブルを作成した後は、ネットワークの変更を反映できるよう定期的に更新する必要があります。この処理を経路更新と呼び、各ASのルーティングテーブルを最新の状態に保つため、2つのAS間でメッセージをやり取りします。
BGPのパス属性
BGPはネットワーク情報の交換に加えて、あるASから別のASへパケットを送信する際にどの経路を選ぶべきかを判断するため、パス属性も使用します。属性には、ホップ数、遅延、伝送コストなどがあります。BGPはこれらの要素を考慮し、可能な限り効率的な経路でパケットを送信します。
ボーダーゲートウェイプロトコルが重要な理由?
BGPは、現在のインターネットが機能する仕組みの不可欠な一部です。BGPがなければ、異なるネットワークが通信したり経路情報を共有したりする方法がなくなり、データをある場所から別の場所へ効率的かつ安全に送信できません。
BGPは異なるネットワーク間の情報交換を可能にし、データが進む最適な経路をネットワーク同士が判断できるようにします。ISP、大規模組織、クラウドプロバイダーが、自社ネットワーク同士やインターネットの他の部分との接続に利用しています。またBGPは、トラフィックを可能な限り効率的な経路に流すことで、遅延を抑え、パフォーマンスを向上させます。
BGPの主な8つの機能
BGPは、インターネットの運用に不可欠な機能を提供します。経路情報の維持、最短経路の選択、ルーティングエラー発生時の冗長性の確保から、認証によるセキュリティの提供、異なる種類のネットワーク間の通信の促進まで、その役割は多岐にわたります。
1. 経路情報の維持
BGPは最新のルーティングテーブルを維持し、インターネット上で利用可能なすべての経路情報を定期的に反映します。BGPルーターはこのテーブルを使い、あるネットワークから別のネットワークへパケットを送る最適な経路を判断します。
2. パケット送信に最適な経路の選択
BGPは、距離や遅延などさまざまなパラメーターを使い、パケット送信に最適な経路を算出します。BGPルーターには通常、複数の経路があり、その中から最も高いパフォーマンスを発揮する経路を選びます。
3. 経路障害時の冗長性の確保
BGPは、主要経路が機能していないことを検知すると、代替経路を通るようトラフィックを自動的に迂回させます。
4. ルーティング経路上のループの検知
BGPは、BGPディシジョンプロセスと呼ばれる一連のアルゴリズムを使い、ルーティング経路上のループを検知して排除できます。これにより、帯域幅を無駄にしたり不要な迂回をしたりすることなく、可能な限り効率的な経路でパケットを送信できます。
5. 悪意ある攻撃の防止
BGPは、BGPメッセージが正当な自律システムから送信されたものかを検証し、悪意あるトラフィックを除外できます。
6. セキュリティの提供
BGPは、あらかじめ設定したパスワードやキーを使ってルーター間のメッセージを認証します。これにより、認証されたエンティティだけが情報を交換できるようにし、悪意ある攻撃者によるトラフィックの妨害を防ぎます。
7. トラフィックフローの制御
BGPを使うと、ISPはあるネットワークから別のネットワークへパケットを送る際の経路を指定し、自社ネットワーク内のトラフィックの流れを制御できます。
8. ネットワーク通信の促進
BGPは、IPv4やIPv6など異なるネットワーク間の通信を可能にします。これにより、どの種類のネットワークを利用しているかにかかわらず、すべてのデバイスが相互に通信できるようになります。
BGPルーティングでよくある問題とは?
多くのメリットがある一方で、BGPを使ってインターネット上のトラフィックをルーティングする場合には、一般的な適用性(安定性や設定など)とセキュリティ(経路の改ざんやハイジャックなど)の両面で、いくつかの問題があります。
BGPの一般的な適用性に関する問題
BGPルーティングには、伝播遅延や手動設定によって引き起こされる不安定性など、注意すべき重要な問題があります。
伝播遅延
BGPを使う際の主な問題の1つは、あるネットワークで行った変更が、接続されている他のすべてのネットワークに伝播するまで長い時間がかかる可能性があることです。迅速な変更が必要な場合や、ネットワークが最新情報に依存している場合には、問題となる可能性があります。
不安定性
もう1つの問題は、BGPを正しく設定しないと不安定性を引き起こす可能性があることです。経路が適切に設定されていない場合、パケットが非効率的にルーティングされ、パフォーマンスの低下や障害につながることがあります。
手動設定
BGPには手動設定が必要であり、時間がかかるうえ、エラーも発生しやすくなります。つまり、経路設定のミスが後々の問題につながる可能性があります。また、多数のルーターや大量のデータを同時にルーティングする場合、BGPは十分にスケールしません。
BGPのセキュリティ問題
BGPルーティングをめぐるセキュリティ上の懸念には、上記の一般的な問題に起因するものだけでなく、攻撃者が悪意ある目的で経路を改ざんまたはハイジャックし、BGPを積極的に悪用しようとすることによるものもあります。
BGP経路の改ざん
BGP経路の改ざんは、ネットワークの完全性に対する深刻な脅威です。悪意ある攻撃者がBGPテーブルを意図的に変更し、トラフィックが本来の宛先に到達できないようにするためです。データ損失につながるだけでなく、サービス継続性を大きく損ない、さまざまなサイバー攻撃に悪用される可能性もあります。
さらに、BGP経路の改ざんは経路の信頼性を損ない、ユーザーが改ざんの試みを検知するために、追加のセキュリティ製品を手動で検証または導入しなければならない場合があります。
BGP経路のハイジャック
これは、攻撃者が被害者のIPアドレスプレフィックスをアナウンスし、トラフィックを自分自身の経路へ迂回させる攻撃手法です。その結果、突然流入するトラフィックによって不安定性や負荷の増大が生じます。場合によっては、攻撃者が暗号化されていないデータストリームにアクセスしたり、IPブロックリストによる対策を回避してスパムなどの迷惑キャンペーンを実行したりすることも可能になります。
BGPのサービス拒否(DoS)
この悪意ある攻撃は、主にBGPルーティングプロトコルを標的とします。攻撃者は予期しない、または望ましくないBGPトラフィックを被害システムに送り付け、利用可能なリソースをすべて消費させます。その結果、正当なBGPトラフィックを処理できなくなります。
BGPの脅威の全体像
BGPでは長年にわたり、数多くのセキュリティインシデントが発生しています。中でも特に有名なのは、2008年2月にBGPハイジャックによって世界規模のYouTube障害が発生した事件です。
その後、2017年には既存の脆弱性を浮き彫りにする事象がいくつも発生しました。2017年8月には、GoogleのエラーによってBGPアナウンスが漏洩し、日本のインターネットトラフィックがブラックホールへ送られたため、国内で全国規模の通信障害が発生しました。
同年10月には、ブラジルのTwitterとGoogleなどのサービスが、別のBGP漏洩インシデントによって混乱しました。さらに2017年11月には、インターネットバックボーンプロバイダーのLevel 3でルーター設定の誤りが発生し、大規模な経路漏洩を引き起こしました。その結果、Comcastに直接影響を与え、米国の広い地域でインターネットが停止しました。
2021年10月4日には、Facebookとその傘下企業で大規模な障害が発生し、世界中のユーザーに影響を及ぼしました。障害の原因は不具合のあるBGPにさかのぼり、トラフィックのルーティングが中断されました。その結果、多くのユーザーがアカウントにアクセスしたり、Facebookと傘下企業が提供するサービスを利用したりできなくなりました。障害は解消まで数時間続き、組織は6,000万米ドルの収益を失いました。
BGPの脅威から保護する
BGPの脅威から適切に保護するには、適切な対策と安全策を講じる必要があります。そのようなセキュリティ対策の1つがResource Public Key Infrastructure(RPKI)です。これは経路の発信元認証専用に開発された暗号システムで、ハイジャックや経路漏洩の防止に役立ちます。
RPKIはBGPネットワークの保護に非常に有効であることが実証されていますが、導入率は依然として低い状況です。もう1つの選択肢は、機械学習ツールを導入してBGPの異常を検知、分類、分析することです。この取り組みは、MITが実施した研究ですでに一定の成果を上げています。
BGPに代わる選択肢はあるか?
BGPが提供するすべての機能を必要としない、または使いたくない場合に利用できる代替手段はいくつかあります。中でも代表的なのは、Open Shortest Path First(OSPF)とEnhanced Interior Gateway Routing Protocol(EIGRP)です。
Open Shortest Path First(OSPF)
OSPFは、IPネットワーク内で送信元と宛先の間の最適な経路を見つけるために使われるリンクステート型ルーティングプロトコルです。2つのノード間の最短経路を計算するダイクストラアルゴリズムに基づいています。OSPFはイントラドメインプロトコルであり、単一の自律システム内で使用されます。
OSPFがBGPを含む他のルーティングプロトコルより優れている主な点の1つは、効率的な経路選択です。さらにOSPFはBGPよりコンバージェンス時間が短いため、ネットワークの変更を迅速に検知し、それに応じてルーティングテーブルを更新できます。
ただし、OSPFにはBGPより多くのメモリと処理能力が必要という欠点があります。ルーティングテーブルにリンクに関するすべての情報を保存する必要があるためです。
Enhanced Interior Gateway Routing Protocol(EIGRP)
EIGRPは、Cisco Systemsが開発した高度なディスタンスベクタ型ルーティングプロトコルです。ディスタンスベクタ型とリンクステート型の両方のルーティングプロトコルの機能を組み合わせたハイブリッドプロトコルであり、どちらか一方だけを使用するよりも効率的です。EIGRPは、Diffused Update Algorithm(DUAL)を使用して、ネットワーク内の宛先までの最短経路を計算します。このアルゴリズムにより、コンバージェンス時間を短縮できます。つまり、ネットワークに変更が発生した場合でも、EIGRPは迅速に適応し、データ転送用の新しい経路を見つけられます。
BGPと比較すると、EIGRPにはいくつかのメリットがあります。必要なパラメーターが少なく、手動での介入も少ないため、BGPより設定や保守が容易です。また、帯域幅やメモリなどのリソースをより効率的に使用するため、リソースが限られたネットワークに適しています。さらに、BGPよりコンバージェンス時間が短いという利点もあります。
一方、BGPと比較した場合、EIGRPにはいくつかのデメリットもあります。たとえば、EIGRPはIPv4とIPv6の両方のアドレスをサポートしますが、BGPはIPv4とIPv6の両方のアドレスに加え、複数の自律システムもサポートします。そのため、複雑なトポロジーを持つ大規模ネットワークにはBGPのほうが適しています。また、EIGRPはプロプライエタリプロトコルであるため、他社製機器への実装が難しい場合があります。
要するに:企業におけるBGPルーティングの理解と活用
BGPは、自律システム間でルーティング情報を交換し、組織が信頼性の高いコンピューターネットワークを構築できるようにする、強力で柔軟なプロトコルです。BGPには、最適なネットワーク接続を実現するうえで不可欠なパス選択や経路フィルタリングなどの機能があります。
ただし、安全なルーティング運用を維持するには、BGPの脆弱性に対処しなければなりません。また、利用できるルーティングプロトコルはBGPだけではないため、組織によってはOSPFやEIGRPなど、他のプロトコルの使用も検討するとよいでしょう。
このBGPの概要は入門として役立ちますが、決して網羅的なものではない点に注意してください。BGPルーターの管理を任された場合は、BGPに関連するRFCを時間を取って読み込むようにしましょう。
BGPの先へ進むことを検討しているなら、OSPFとEIGRPについて詳しく学び、自社に最もメリットをもたらすものを見極めることができます。