OSPFとBGPの違い:IGPとEGP・経路の選び方・隣のルータとのつながり方・規模を比較
インターネットは、プロバイダや大学、企業などが管理するネットワークの単位であるAS(自律システム)が、互いにつながってできています。ASの中で経路を交換するプロトコルをIGP、ASの間で交換するプロトコルをEGPと呼び、OSPFはIGPの、BGPはEGPの代表です。OSPFは、ASの中のリンクのコストから最短の経路を自動で求め、障害のときに素早く切り替えることを目指します。BGPは、ASの間の経路を、通ってきたASの並び(AS_PATH)などの属性と、どの相手を優先するかといった組織の方針(ポリシー)に基づいて選びます。インターネット全体の経路を扱うので、速さよりも、安定性と制御のしやすさを重視した設計です。
| 項目 | OSPF | BGP |
|---|---|---|
| 分類と使う範囲 | 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秒)を待つことがあり、扱う経路の数も多い |
| 扱う経路の数と規模 | 組織の中の経路。大きなネットワークはエリアに分けて、計算と情報の量を抑える | インターネット全体の非常に多くの経路を扱える。プロバイダどうしや、複数のプロバイダにつなぐ組織で使う |
数値は代表的な目安で、世代や製品によって異なります。