OSPFとBGPの違い:IGPとEGP・経路の選び方・隣のルータとのつながり方・規模を比較

インターネットは、プロバイダや大学、企業などが管理するネットワークの単位であるAS(自律システム)が、互いにつながってできています。ASの中で経路を交換するプロトコルをIGP、ASの間で交換するプロトコルをEGPと呼び、OSPFはIGPの、BGPはEGPの代表です。OSPFは、ASの中のリンクのコストから最短の経路を自動で求め、障害のときに素早く切り替えることを目指します。BGPは、ASの間の経路を、通ってきたASの並び(AS_PATH)などの属性と、どの相手を優先するかといった組織の方針(ポリシー)に基づいて選びます。インターネット全体の経路を扱うので、速さよりも、安定性と制御のしやすさを重視した設計です。

項目OSPFBGP
分類と使う範囲IGP。1つのAS(組織)の中EGP。ASとASの間。同じASの中のBGPルータどうしでも使う(iBGP)
方式リンクステート型パスベクトル型
経路の選び方リンクのコストの合計が最も小さい経路を、ダイクストラ法で求めるLOCAL_PREF、AS_PATHの長さ、MEDなどの属性を決まった順に比べる。属性を設定して、組織の方針を反映できる
ループの防ぎ方エリアの中の全ルータが、同じ地図から最短経路を計算する受け取った経路のAS_PATHに自分のAS番号があれば捨てる
隣のルータとのつながり方IPの上で直接動く(プロトコル番号89)。Helloをマルチキャストで送り、隣を自動で見つけるTCPの179番ポートで接続する。接続する相手(ピア)は、管理者が1つずつ設定する
更新の送り方変化があったときに、LSAをエリアの中に広める。Helloで隣の生存を確かめる(RFC 2328の例では10秒ごと)最初に経路をまとめて送り、その後は変化した分だけをUPDATEで送る。経路を定期的に送り直すことはなく、KEEPALIVEで接続を保つ
収束の速さ一般に速い。リンクの切断に気づくと、すぐに計算し直す一般に遅め。障害に気づくのにホールドタイム(RFC 4271の推奨値は90秒)を待つことがあり、扱う経路の数も多い
扱う経路の数と規模組織の中の経路。大きなネットワークはエリアに分けて、計算と情報の量を抑えるインターネット全体の非常に多くの経路を扱える。プロバイダどうしや、複数のプロバイダにつなぐ組織で使う

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

OSPF
1つの組織のネットワークの中で、冗長な経路から最短の経路を自動で選び、障害のときに素早く切り替えたいとき。拠点やデータセンターの中の経路に向きます。
BGP
複数のプロバイダにつなぎ(マルチホーム)、どの回線を優先するかを制御したいときや、プロバイダとしてほかのASと経路を交換するとき。組織の外に知らせる経路と受け入れる経路を、方針に沿って細かく制御できます。

よくある質問

なぜ組織の中ではOSPFを、組織の間ではBGPを使うのですか?

目的が違うからです。組織の中では、ネットワーク全体を同じ管理者が管理しているので、最も良い経路を自動で選び、障害のときに素早く切り替えることが大切です。組織の間では、相手はそれぞれ別の方針をもつ組織で、内部の構成を互いに公開しません。どの相手から来た経路を優先するか、どの経路を相手に知らせるかを、契約や方針に沿って決める必要があり、BGPはそれを属性とフィルタで表せるように作られています。

iBGPとeBGPの違いは何ですか?

eBGPは異なるASのルータどうし、iBGPは同じASの中のルータどうしのBGPの接続です。eBGPで経路をほかのASに知らせるときは、AS_PATHに自分のAS番号を加えます。iBGPでは同じASの中なのでAS番号を加えず、ループを防ぐため、iBGPで受け取った経路をほかのiBGPの相手には伝えません。そのため、iBGPのルータどうしをすべてつなぐ(フルメッシュ)か、ルートリフレクタを使います。

OSPFとBGPを同時に使うことはありますか?

あります。プロバイダや大きな組織では、ASの中の機器のアドレスへの経路をOSPFなどのIGPで求め、その上でBGPの接続を張り、外部の経路をBGPで運ぶ構成が一般的です。BGPの経路の次の転送先(NEXT_HOP)に届く道をIGPが教える、という役割分担です。なお、大規模なデータセンターの中で、IGPを使わずにBGPだけで経路を交換する設計もあります(RFC 7938)。

EGPという名前のプロトコルもあるのですか?

あります。EGP(Exterior Gateway Protocol)は、BGPより前にAS間で使われた古いプロトコルの名前でもあります。いまは使われておらず、「EGP」はAS間で経路を交換するプロトコルの種類を指す呼び名として使われます。その代表がBGPです。

理解度チェック

インターネットで、プロバイダなどの組織が管理するネットワークの単位(AS、自律システム)の間で経路の情報をやり取りし、通ってきたASの並び(AS_PATH)などの属性と、組織ごとの方針(ポリシー)に基づいて経路を選ぶプロトコルはどれか。

  1. AOSPF
  2. BBGP
  3. CRIP
答えと解説を見る

正解:B. BGP

BGP(Border Gateway Protocol)は、AS番号で区別される組織どうしが経路を交換するためのプロトコルで、インターネットの経路は基本的にBGPでやり取りされています。経路には、通ってきたASの並び(AS_PATH)や次の転送先(NEXT_HOP)などの属性が付き、自分のAS番号を含む経路を捨てることでループを防ぎます。経路の選択では、AS_PATHの短さだけでなく、どの接続先を優先するかといった組織の方針を属性で表して反映できます。OSPFとRIPは、1つの組織の中で使うルーティングプロトコル(IGP)です。

OSPFで、ルータR1からR4の先にあるネットワークへの経路が3つある。経路Aは R1–R5 が10 Gbps、R5–R4 が1 Gbpsのリンク、経路Bは R1–R4 を直接つなぐ100 Mbpsのリンク、経路Cは R1–R2、R2–R3、R3–R4 がすべて1 Gbpsのリンクである。各リンクのコストを「参照帯域幅10 Gbps ÷ リンクの帯域幅」とし、R4から先のコストはどの経路でも同じとする。R1が選ぶ経路はどれか。

  1. A経路A
  2. B経路B
  3. C経路C
答えと解説を見る

正解:A. 経路A

コストは、10 Gbpsのリンクが 10 ÷ 10 = 1、1 Gbpsが 10 ÷ 1 = 10、100 Mbpsが 10 ÷ 0.1 = 100 です。経路Aは 1 + 10 = 11、経路Bは100、経路Cは 10 × 3 = 30 なので、コストの合計が最も小さい経路Aが選ばれます。参照帯域幅を、多くの機器で既定値とされてきた100 Mbpsのままにすると、100 Mbps以上のリンクのコストはすべて1になり、経路Aが2、経路Bが1、経路Cが3となって、最も遅い経路Bが選ばれてしまいます。そのため、高速なリンクを使うネットワークでは、すべてのルータの参照帯域幅を大きな値にそろえて設定します。

リンクステート型のルーティングプロトコルの説明として正しいものはどれか。

  1. A各ルータが、隣のルータから受け取った宛先と距離(ホップ数など)の情報だけをもとに、自分の経路表を作る
  2. B各ルータが、自分につながるリンクの状態を広めてネットワーク全体の構成(トポロジ)を共有し、それぞれがダイクストラ法で最短経路を計算する
  3. C管理者が各ルータに経路を手で設定し、ルータどうしは経路の情報を交換しない
答えと解説を見る

正解:B. 各ルータが、自分につながるリンクの状態を広めてネットワーク全体の構成(トポロジ)を共有し、それぞれがダイクストラ法で最短経路を計算する

リンクステート型(OSPFやIS-ISなど)では、各ルータが自分のリンクの状態(つながっている相手とコスト)を広告し、同じ範囲のすべてのルータが同じ地図をもちます。各ルータはこの地図から、自分を起点にダイクストラ法で最短経路の木を計算します。距離ベクトル型(RIPなど)は、隣から聞いた「どの宛先まで距離いくつか」に自分からの距離を足して経路を選ぶので、しくみは単純ですが、ネットワーク全体の構成は分からず、障害の後に経路が落ち着くまで時間がかかることがあります。リンクステート型は、計算とメモリの負担は大きいものの、変化に素早く追従できます。

  1. 動的ルーティングの説明として正しいものはどれか。

ネットワークの設計と運用の練習問題へ

関連する用語の解説

OSPF
Open Shortest Path Firstの略。組織の中で使うリンクステート型のルーティングプロトコル。各ルータが自分のリンクの状態を広めてネットワークの構成を共有し、ダイクストラ法で、コストの合計が最も小さい経路を計算する。コストは一般にリンクの帯域から決め、ネットワークを複数のエリアに分けて、規模の大きなネットワークにも対応できる。
BGP
Border Gateway Protocolの略。インターネットで、AS(自律システム。プロバイダなどの組織が管理するネットワークの単位)の間で経路の情報を交換するルーティングプロトコル。経路に付いた、通ってきたASの並び(AS_PATH)などの属性と、組織ごとの方針(ポリシー)に基づいて経路を選ぶ。ルータどうしはTCPの179番ポートで接続して情報をやり取りする。
ルーティング(経路制御)
IPのネットワークで、パケットを宛先まで届けるために、どの経路で送るかを決めること。各ルータは経路表(ルーティングテーブル)をもち、宛先IPアドレスに最も長く一致する経路(最長一致)を選んで次のルータに渡す。経路表は、人が設定する静的ルーティングか、OSPF、RIP、BGPなどのルーティングプロトコルで自動的に作る動的ルーティングで作る。
ルータ
異なるネットワークの間でパケットを中継する、ネットワーク層(第3層)の機器。受け取ったパケットの宛先IPアドレスを経路表(ルーティングテーブル)と照らし合わせ、次に渡すルータ(ネクストホップ)と出口のインターフェースを決めて送り出す。家庭用のルータは、NAPTやDHCPサーバ、ファイアウォールの機能もまとめてもつ。
ダイクストラ法
辺の重みが0以上のグラフで、1つの出発点から各頂点への最短経路を求めるアルゴリズム。距離が確定していない頂点のうち最も近いものを確定し、その隣の頂点の距離を更新することを繰り返す。負の重みの辺があると正しく求められない。
TCP
Transmission Control Protocolの略。トランスポート層のコネクション型のプロトコル。3ウェイハンドシェイクで接続を確立し、シーケンス番号、確認応答(ACK)、再送によって、データを欠けや重複なく、送った順に届ける。フロー制御と輻輳制御で送る量も調整する。Webのアクセス(HTTP/1.1・HTTP/2)、メール、SSHなどが使う。

関連する比較