3. Summary of Operation (操作の概要)
3. Summary of Operation (操作の概要)
ボーダーゲートウェイプロトコル (Border Gateway Protocol, BGP) は、自律システム間 (inter-Autonomous System) ルーティングプロトコルです。これは、EGP ([RFC904] で定義) で得られた経験と、NSFNET バックボーンでの EGP の使用 ([RFC1092] および [RFC1093] で説明) に基づいて構築されています。BGP 関連の詳細については、[RFC1772]、[RFC1930]、[RFC1997]、および [RFC2858] を参照してください。
BGP スピーカーシステムの主な機能は、他の BGP システムとネットワーク到達可能性情報を交換することです。このネットワーク到達可能性情報には、到達可能性情報が通過する自律システム (AS) のリストに関する情報が含まれています。この情報は、到達可能性のための AS 接続のグラフを構築するのに十分であり、そこからルーティングループを取り除くことができ、AS レベルでいくつかのポリシー決定を強制することができます。
このドキュメントのコンテキストでは、BGP スピーカーは、それ自体が使用するルートのみをピアにアドバタイズすると想定しています (このコンテキストでは、BGP ルートが最も優先される BGP ルートであり、転送に使用される場合、BGP スピーカーはそのルートを「使用する」と言われます)。その他のすべてのケースは、このドキュメントの範囲外です。
このドキュメントのコンテキストでは、「IP アドレス」という用語は IP バージョン 4 アドレス [RFC791] を指します。
BGP を介して交換されるルーティング情報は、宛先ベース (destination-based) の転送パラダイムのみをサポートします。これは、ルーターがパケットの IP ヘッダーに含まれる宛先アドレスのみに基づいてパケットを転送することを前提としています。これは、BGP を使用して強制できる (および強制できない) ポリシー決定のセットを反映しています。一部のポリシーは宛先ベースの転送パラダイムではサポートできず、したがってソースルーティング (別名、明示的ルーティング) などの手法を強制する必要があることに注意してください。このようなポリシーは、BGP を使用しても強制できません。たとえば、BGP では、ある AS がトラフィックを隣接 AS に送信して、その隣接 AS を越えた (到達可能だが) ある宛先に転送し、そのトラフィックが隣接 AS で発生した (同じ宛先への) トラフィックとは異なるルートを通るようにすることはできません。一方、BGP は、宛先ベースの転送パラダイムに準拠するあらゆるポリシーをサポートできます。
BGP-4 は、クラスレスドメイン間ルーティング (CIDR) [RFC1518, RFC1519] をサポートするための新しい一連のメカニズムを提供します。これらのメカニズムには、一連の宛先を IP プレフィックスとしてアドバタイズするサポートや、BGP 内でのネットワーク「クラス」の概念の排除が含まれます。BGP-4 では、AS パスの集約を含む、ルートの集約 (aggregation) を可能にするメカニズムも導入されています。
このドキュメントでは、全体を通して「自律システム」(Autonomous System, AS) という用語を使用しています。自律システムの古典的な定義は、単一の技術的管理下にあるルーターのセットであり、内部ゲートウェイプロトコル (IGP) と共通のメトリックを使用して AS 内でパケットをルーティングする方法を決定し、AS 間ルーティングプロトコルを使用して他の AS にパケットをルーティングする方法を決定します。この古典的な定義が開発されて以来、単一の AS が複数の IGP を使用し、場合によっては AS 内で複数のメトリックセットを使用することが一般的になっています。自律システムという用語の使用は、複数の IGP とメトリックが使用されている場合でも、AS の管理が他の AS に対して単一の一貫した内部ルーティング計画を持ち、それを通じて到達可能な宛先の一貫した全体像を提示するという事実を強調しています。
BGP はトランスポートプロトコルとして TCP [RFC793] を使用します。これにより、明示的な更新の断片化、再送信、確認応答、および順序付けを実装する必要がなくなります。BGP は TCP ポート 179 でリッスンします。BGP で使用されるエラー通知メカニズムは、TCP が「正常な」クローズ (graceful close) をサポートしていること (つまり、接続が閉じられる前にすべての未処理データが配信されること) を前提としています。
TCP 接続は 2 つのシステム間で形成されます。これらはメッセージを交換して、接続パラメータを開き、確認します。
初期データフローは、エクスポートポリシーによって許可される BGP ルーティングテーブルの部分であり、Adj-Ribs-Out と呼ばれます (3.2 を参照)。ルーティングテーブルが変更されると、増分更新 (incremental updates) が送信されます。BGP はルーティングテーブルの定期的な更新を必要としません。ローカルポリシーの変更が BGP 接続をリセットせずに正しい効果を発揮できるように、BGP スピーカーは (a) 接続期間中、すべてのピアによってアドバタイズされたルートの現在のバージョンを保持するか、(b) ルートリフレッシュ (Route Refresh) 拡張 [RFC2918] を利用する (SHOULD) 必要があります。
KEEPALIVE メッセージは、接続が有効であることを確認するために定期的に送信される場合があります。NOTIFICATION メッセージは、エラーまたは特別な条件に応答して送信されます。接続でエラー状態が発生した場合、NOTIFICATION メッセージが送信され、接続が閉じられます。
異なる AS にあるピアは外部ピア (external peer) と呼ばれ、同じ AS にあるピアは内部ピア (internal peer) と呼ばれます。内部 BGP と外部 BGP は一般に IBGP および EBGP と略されます。
特定の AS に複数の BGP スピーカーがあり、他の AS にトランジットサービスを提供している場合、AS 内でのルーティングの一貫したビューを確保するように注意する必要があります。AS の内部ルートの一貫したビューは、AS 内で使用される IGP によって提供されます。このドキュメントの目的において、AS の外部のルートの一貫したビューは、AS 内のすべての BGP スピーカーが互いに IBGP を維持することによって提供されると想定されます。
このドキュメントでは、BGP プロトコルの基本的な動作を指定しています。この動作は、拡張仕様によって変更される可能性があり、実際に変更されています。プロトコルが拡張される場合、新しい動作は拡張仕様に完全に文書化されます。