jpnap

Internet Fundamentals

インターネットを支える基本のコトバ

06 BGPとは?
インターネットの基礎ルーティングプロトコルについて解説

みなさんはインターネットの仕組みについてどのくらいご存じでしょうか?
今から説明していくBGP(Border Gateway Protocol)は、インターネットの仕組みを深く理解する上で欠かせないキーワードです。私たちが、日々インターネットを利用する際、実はBGPの恩恵を受けています。インターネットを成り立たせ、その仕組みの根幹を支えているこのBGPに焦点を当て、初心者の方でも理解しやすいように解説していきます。

BGP(Border Gateway Protocol)とは

BGPはルーティングプロトコルの一つです。
ルーティングプロトコルとは、通信ネットワーク上でデータパケットの最適な経路を定めるためのルール、取り決めのことを言います。
インターネットでやり取りされるデータ(パケット)も、すべて経路情報にしたがって送り届けられており、これを正確に運用していく、つまり経路制御を行うためにルーティングプロトコルが用いられています。その代表例が、BGPというわけです。

ルーティングプロトコルには大きく分けて、AS内の動的ルーティングプロトコルであるIGP(Interior Gateway Protocol)と AS間の動的ルーティングプロトコルであるEGP(Exterior Gateway Protocol)があります。
IGPはAS内のルータ同士で情報交換を行い、最適な経路を見つけるプロトコルであるのに対し、EGPは異なるAS同士の経路情報を交換するためのプロトコルです。
以下に説明する「BGP」は、EGPに該当します。BGPによる経路情報には宛先へ到達するために経由するAS*1番号のリストが含まれており、通常はASパスが短いルートが選択されます。また、必要に応じてパス属性を操作することで、より柔軟な経路制御を行うことが可能です。このことからBGPは、拡張性、柔軟性、安定性を提供するルーティングプロトコルと言えるでしょう。

*1 AS(Autonomous System)自律システム。同一の組織によって管理されるネットワークであり、インターネットは数多くのASが相互に接続することによって成り立っています。

BGPによる接続の流れ

BGPルータ同士は「ピア」と呼ばれる接続を確立するため、特定のフォーマットを持つ「メッセージ」を互いに交換します。メッセージの種類は複数あり、BGPがどの状態にあるかによって異なります。ピア接続が確立されると、ルータは定期的に経路情報を交換し続け、これによってそれぞれのネットワークは最新の経路情報を持つことができ、インターネット上でのデータの流れを効率的に管理することが可能となるのです。

BGPでは、ピア接続を行うルータが同じAS内に存在するか、異なるAS間で接続するかによって、取り扱いが変わります。同じAS内のピア接続を「iBGP(内部BGP)」、異なるAS間のピア接続を「eBGP(外部BGP)」と呼びます。次のセクションでは、BGPで交換される主要なメッセージの種類と、それらのメッセージで利用されるパス属性についてより詳しく解説していきます。

BGPメッセージの種類

前述したようにBGPでは、ルータ同士が効率的に情報を交換し、安定したインターネット通信を維持するために、いくつかの異なるタイプのメッセージを使用します。以下に、主要なメッセージの種類とその役割を簡単に説明します。

OPEN

TCPコネクションの確立後、BGPネイバーとのセッションを開始するための最初のメッセージです。OPENメッセージには「バージョン、AS番号、BGPのルータID、holdtime、認証」の情報があり、この段階で問題がなければ、ルータはKEEPALIVEメッセージやUPDATEメッセージの交換に進みます。

UPDATE

実際の経路情報であるBGPテーブル作成時に送信される全てのルート情報、または変更発生時に送信される差分のルート情報が含まれるメッセージです。また、経路ごとに「パス属性」と呼ばれる情報が設定されており、これによって経路の優先度や属性を制御することができます。

NOTIFICATION

エラーを検出した時に送信されるメッセージです。NOTIFICATIONメッセージを送信した送信者側は、NOTIFICATIONメッセージを送信後、TCPのセッションを切断します。

KEEPALIVE

ピアが確立されていることを確認するために定期的に送られる生存確認メッセージです。通常、ホールドタイムの1/3の間隔で交換されます。もし設定されたホールドタイムが過ぎてもKEEPALIVEまたはUPDATEメッセージが受信されない場合、ピア接続はダウンしていると判断されます。

パスの属性

BGPのUPDATEメッセージには、経路情報を効果的に制御し、ネットワークのトポロジーやポリシーに基づいて最適な経路を選択するための「パス属性」が含まれています。その中で特に重要なパス属性についての説明をしていきます。

AS_PATH属性

AS_PATH属性はその経路情報が通過してきたAS番号を並べたAS番号のリストです。
AS-PATHを見ることで、ルータはループを避けるために自身のASがリストに含まれているかをチェックし、経路の優先順位を制御することが可能です。

NEXT_HOP属性

NEXT-HOP属性は、指定された経路に到達するために次に到達しなければならないルータのIPアドレスを指定します。これにより、パケットが目的地に向かって正しい方向に転送されます。

MULTI_EXIT_DISC属性

MULTI_EXIT_DISC属性は、同じASの異なる入り口ポイントを持つネットワーク内でトラフィックの流れを制御するために使用されます。低いMED値を持つ経路が優先されます。

ORIGIN属性

ORIGIN属性はその経路情報の生成元を表します。。この属性は、複数の経路が同じ目的地に到達する場合に優先順位を付けるのに役立ちます。

LOCAL_PREF属性

同じAS内でトラフィックの流れを制御するために使用され、高いLOCAL_PREF値を持つ経路が優先されます。

まとめ

本記事では、BGPによる接続の流れやその種類について解説してきました。BGPは、インターネット全体のルーティングを最適化し、データ転送の効率を向上させるとともに、ネットワーク管理者が柔軟にルーティングポリシーを設定できる利点があります。また、高い拡張性と安定性を持ち、大規模なネットワーク環境でも問題なく利用可能なプロトコルとして、インターネットを支えています。