クイックダウンロード:
EIGRPとOSPFはどちらも目的を達成できるが、解決する問題の種類や方法が異なる。
-
EIGRPは収束が速く、コストの異なる負荷分散をサポートしているため、速度の異なるリンクを持つネットワークに最適です。
-
OSPFの階層型エリア設計は、相互運用性が重要な大規模なマルチベンダー環境において、予測可能な拡張性を発揮します。
-
真の決定要因は、ベンダーのサポート、チームの専門知識、そしてISPやWANプロバイダーがエッジでどのようなシステムを導入しているかです。
-
どちらかのプロトコルを採用する前に、実際のネットワークトポロジーと運用上の制約に基づいて両方のプロトコルを評価してください。
EIGRPとOSPFの比較:例を用いたチュートリアル
ルーティングプロトコルは、ルーター間でルーティング情報を自動的かつ動的に交換するために使用されます。ルーティングプロトコルにはいくつかの種類があり、それぞれに長所と短所があります。これは、各プロトコルが特定のネットワーク実装シナリオに最適化されているためです。現在最も広く使用されているルーティングプロトコルは、Enhanced Interior Gateway Routing Protocol (EIGRP) と Open Shortest Path First (OSPF) です。この記事では、これら2つのプロトコルについて、両者の違いや、これらのプロトコルを使用したネットワーク構成を含めて解説します。
EIGRP
EIGRPは(その名の通り)IGRPの拡張版であり、最近までシスコ独自のルーティングプロトコルでした。EIGRPは、コストの異なる負荷分散と高速なコンバージェンスを提供します。その最大の特長は、ネットワークパスを識別し、ループのないバックアップパスを使用して高速な再コンバージェンスを実現する拡散更新アルゴリズム(DUAL)です。
ルータは複数のEIGRPプロセスを実行できます。各プロセスは自律システム(AS)のコンテキストで動作します。各ASは共通のルーティングドメインを表します。
EIGRP対応の各ルータは、ネットワークパスを計算する際に複数のメトリックを使用します。ルータ間のルーティング情報の交換には、同じメトリック計算式が用いられます。
EIGRPにおける「自律システム」は、BGPにおける同用語とは若干異なる点に注意が必要です。EIGRPにおける自律システムとは、単一の管理機関の下にあるEIGRPルータの集合です。実際には、同じ自律システム内のEIGRPルータのみがEIGRP情報を交換します。各EIGRPルータで実行されているEIGRPインスタンスの自律番号を設定する必要があり、ルータがネイバーとなるためには、その番号は同じでなければなりません。複数のEIGRP自律システムが存在する場合、それらのシステム間で情報を共有する唯一の方法は、再配布を使用することです。
一方、BGPはiBGPを用いて同一AS内での情報交換を行い、eBGPを用いてAS間での情報交換を行うことができます。ASの概念は同じですが、各プロトコルで使用される実装方法は異なります。
OSPF
OSPFは、ネットワーク宛先への経路情報としてリンクステートアドバタイズメントを使用するリンクステートルーティングプロトコルです。リンクステート情報に基づいて実行される経路計算には、最短経路優先(SPF)アルゴリズムが使用されます。OSPFを実行している各ルータは、接続されているインターフェースとメトリックに関するリンクステート情報をフラッディングして、他のルータに通知します。
EIGRPと同様に、OSPFは自律システム(単一のルーティングドメイン)に限定されます。OSPFの自律システム(AS)は、単一のエリアでも、複数のエリアに分割することも可能です。同一エリア内のルータは、同一のリンクステートデータベースを持ち、他のエリアに関する要約情報も保持しています。
外部ルーティング情報は、OSPFリンクステートデータとは別に保持されます。この情報は、AS全体に透過的に伝達されます。
EIGRPとOSPFの違いの概要
| 機能 | EIGRP | OSPF |
|---|---|---|
| ルーティングドメイン | ドメイン内 | ドメイン内 |
| ネットワークのサイズ | 数百台のルーターを含む中規模から大規模ネットワークに適しています。 | 数百台のルーターを含む中規模から大規模ネットワークに適しています。 |
| プロトコルの種類 | 距離ベクトル | リンクステート |
| 製品の導入 | 基本的な設定は簡単です | 基本的な設定は簡単です |
| ネットワークトポロジー | フラット型の刃は完全に平行な状態ではありませんが、コニカル型の刃よりも明らかに平らになっており、幅もコニカル刃に比べて広いことが多いです。 | 階層的 |
| 収束 | 対応時間 | 対応時間 |
| リソース要件 | CPUとメモリの必要量を削減 | メモリとCPUを大量に消費する |
| メトリック | 帯域幅、信頼性、負荷、遅延の組み合わせ | 帯域幅/コストに基づく |
| ロードバランシング | 不均等なパス負荷分散をサポート | 等経路負荷分散 |
| フィルタリングと要約 | あらゆるルーターのあらゆるインターフェースで可能 | ABRまたはASBRのみ |
EIGRPとOSPFの違いについての議論
両プロトコルにはいくつかの共通点がある。どちらも内部ゲートウェイプロトコルであるため、単一のルーティングドメイン内に限定される。また、数百台のルーターで構成される大規模ネットワークでも動作可能である。
基本的な機能の設定はどちらも簡単です。プロトコルを有効にして、直接ネットワークをアドバタイズするだけです。ただし、複雑なルーティング設計が必要な場合は、どちらも設定が複雑になる可能性があることに注意してください。
拡張性を高めるため、OSPFはネットワークをエリアに分割する必要があります。EIGRPにはこのような分割要件はありません。
どちらのプロトコルも、他の内部ゲートウェイプロトコルやBGPよりも高速に収束します。ただし、EIGRPはOSPFよりも高速です。これは、この記事の後半で説明する内部メカニズムによるものです。
リソース要件に関して言えば、EIGRPは、ネットワーク規模が同じ場合、ルーターにOSPFほど大きな負担をかけません。OSPFはインターフェース帯域幅をメトリックとして使用しますが、EIGRPは複数のパラメータを組み合わせてメトリックを計算します。
EIGRPとOSPFの大きな違いの一つは、EIGRPが不均等パス負荷分散をサポートしている点です。これは、異なる速度のリンクをより効率的に利用してトラフィックを同時に転送できることを意味します。もう一つの大きな違いは、EIGRPではどのルータのどのインターフェースでも集約が可能であることです。ルーティングプロトコルがOSPFの場合、集約が可能なルータの種類は限られています。
EIGRPとOSPFの内部動作
このセクションでは、2つのプロトコルについてより詳しく説明し、次のセクションで設定する最も一般的なオプションに焦点を当てます。
EIGRP
EIGRPには4つの主要な構成要素があります。
- 近隣の発見: ルーターは、直接接続されているネットワーク上の他のルーターに関する情報を取得するために使用します。ルーターは、Helloパケットを通じて、近隣ルーターが到達不能かどうかを判断できます。この判断に基づき、近隣ルーター間でルーティング情報を交換できます。
- 信頼性の高いトランスポートプロトコル(RTP): EIGRPパケットの確実な順序付き配信を担うプロトコル。RTPはユニキャストとマルチキャストの両方のパケット配信をサポートします。パケットの確認応答が不要な場合(例:Helloパケット)、パケットの宛先IPアドレスは224.0.0.10となります。
- デュアル有限状態機械(FSM): すべての経路を追跡し、ループのない経路を選択してルーティングテーブルに挿入する責任を負う。
- プロトコル依存モジュール(PDM): IPやIPv6など、複数のネットワークプロトコルのサポートを担当します。
EIGRPは5種類のパケットを使用します。
- Hello 近隣ノードの検出に使用されます。マルチキャストで送信され、確認応答は不要です。
- 更新 ・経路情報を含みます。新しい経路が検出されると、パケットはマルチキャストで送信されます。ルーターは同期のために(新しいEIGRPルーターが起動したとき)、パケットをユニキャストで送信します。これらのパケットは確認応答を必要とします。
- クエリー 経路計算が行われ、実行可能な後継ノードが存在しない場合、隣接ノードにクエリが送信されます。ほとんどの場合、これらのクエリはマルチキャストで送信され、確認応答が必要です。ただし、特定のケースでは、パケットはユニキャストで送信されます。
- 返信 クエリパケットへの応答として送信されます。ユニキャスト方式で、確実に送信されます。
- ACK 更新、問い合わせ、返信を確認する際に使用します。確認は不要です。
EIGRPルータがルートメトリックを計算する際、最大5つの変数を使用できます。デフォルトでは、帯域幅と遅延の2つの変数のみが使用されます。残りの3つの変数は、信頼性、負荷、およびMTUです。各変数は、Helloパケットに含まれる重み値に基づいてメトリックの計算に影響を与えます。ネイバーシップを確立するには、これらの変数の重み値が一致する必要があります。
EIGRPの用語について説明する前に、図1のトポロジーについて考えてみましょう。括弧内の値は、各セグメントのメトリックを表しています。

上記のトポロジーを考慮すると、以下のことが分かります。
- 後継ルート: 目的地に到達するためのメトリック値が最も低い経路。この場合、R1 から 10.0.0.0/24 に到達するための後継経路は R1 – R2 – R3 です。
- 後継: 後継ルートのネクストホップルータ。この場合、R3が後継ルータです。
- 実現可能距離(FD): 目的地に到達するための最小の指標。この場合、R1では、FDは250 + 250 + 1000 = 1500となります。
- 報告距離(RD): ルーターが宛先に到達するために報告するメトリック。R2は、RDが1250の10.0.0.0/24プレフィックスをR1にアドバタイズします。同時に、R2がアドバタイズしているRDは、R2自身のFDです。
- 実現可能性条件: ルートに対して受信したRDは、ルーターが計算したFDよりも小さくなければ、そのルートはバックアップルートとはみなされません。
- 実現可能な後継者: 実現可能性条件を満たすバックアップ経路。この場合、R3がアドバタイズするRD(1000)がR1のFD(1500)よりも小さいため、R1-R3経路がそれに該当します。
全体のトポロジーは図2に示されている。

EIGRPのその他の重要な用語は以下の2つです。
- 隣のテーブル: ルータが新しいネイバーを検出すると、そのネイバーのIPアドレスと接続インターフェースをネイバーテーブルに登録します。ネイバーテーブルは、リンクステートプロトコルで使用される隣接関係データベースに似ています。
- トポロジー表: この表には、近隣ルーターから受信したすべての宛先が含まれています。
OSPF
2台のOSPFルータがリンク状態情報を交換して隣接関係になるには、まずネイバー関係を確立する必要があります。ネイバー関係はHelloパケットによって確立されます。Helloパケットに含まれる情報の中には、ルータ間で一致させる必要のないものもありますが、一致させる必要のある情報もあります。
ルーターから送信されるHelloパケットには、以下の情報がすべて含まれていなければなりません。
- エリア
- ルーターID
- サブネット
- こんにちは、デッドタイマー
- スタブフラグ
- 認証
OSPF Helloプロトコルは、リンクステート情報の交換を減らすために、指定ルータ(DR)とバックアップDR(BDR)を選出します。DRとBDRの選出は、マルチアクセスセグメントでのみ行われます。つまり、セグメント内のすべてのルータは、DRとBDRとのみ隣接関係になります。マルチアクセスセグメント内のDRとBDR以外のすべてのルータは、DROtherの役割を担います。マルチアクセスセグメントにルータが2台しかない場合は、DRとBDRがそれぞれ1台ずつ存在します。
DROtherルーターは、リンク状態情報をDRとBDRにのみ送信します(224.0.0.6に更新情報を送信することによって)。DRとBDRは、セグメント内の他のすべてのDROtherルーターに情報を中継します(224.0.0.5に更新情報を送信することによって)。
BDRとDRを選出するためのルールは2つあります。
- 優先度: 最優先事項が優先されます。
- ルーターID: 最も高いIDが優先されます。これは手動で設定することも、ルーターのインターフェースから取得することもできます(ループバックインターフェースのIPアドレスは物理インターフェースよりも優先されます)。
OSPFのすべてのパラメータがデフォルト値を使用していることを考慮すると、図3に示すように、リンクステートの交換はブロードキャストセグメントで行われます。

エリア内に存在しうるLSAの種類に基づいて、OSPFエリアは以下のとおりです。
| エリアの種類 | LSA1 | LSA2 | LSA3 | LSA4 | LSA5 | LSA7 |
| バックボーンエリア | はい | はい | はい | はい | はい | いいえ |
| 非主軸領域 | はい | はい | はい | はい | はい | いいえ |
| スタブエリア | はい | はい | はい | いいえ | いいえ | いいえ |
| 完全に短いエリア | はい | はい | いいえ | いいえ | いいえ | いいえ |
| あまり短くないエリア | はい | はい | はい | いいえ | いいえ | はい |
LSAの種類について少し触れておくのも良いでしょう。
- LSAタイプ1 – ルーターLSA: すべてのルーターによって生成され、リンクを記述します。
- LSAタイプ2 – ネットワークLSA: DRによって生成され、セグメントに接続されているルーターを記述します。
- LSAタイプ3 – ネットワークサマリーLSA: エリア境界ルーターによって生成され、そのエリア外の宛先を表すために別のエリアに送信されます。
- LSAタイプ4 – ASBR概要: 外部ルートをアドバタイズするルーターを説明する際に使用される。
- LSAタイプ5 – AS外部LSA: AS外部の経路を表します。
- LSAタイプ7 – NSSA外部: NSSAエリアからタイプ5 LSAに変換された外部ルートを表します。
このセクションでは、Ciscoルータで基本的なEIGRPとOSPFを設定する方法について説明します。
EIGRP
EIGRPについては、図4の図を使用します。

前述のとおり、EIGRPの設定には自律システムが必要です。この例では、AS 1を使用します。
インターフェースの設定に続いて、R1におけるEIGRPの設定を以下に示します。
router eigrp 1
network 1.1.1.1 0.0.0.0
network 12.12.12.1 0.0.0.0
network 13.13.13.1 0.0.0.0R2とR3は非常に似た構成になっています。例えば、以下にR2の例を示します。
router eigrp 1
network 1.1.1.2 0.0.0.0
network 12.12.12.2 0.0.0.0
network 23.23.23.2 0.0.0.0すべてのルーターでEIGRPの設定が正しければ、それらはEIGRPネイバーになります。以下の例はR1に関するものですが、R2とR3でも同様に動作します。
R1#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 12.12.12.2 Et0/0 14 01:09:10 7 100 0 9
0 13.13.13.3 Et0/1 11 01:10:22 5 100 0 10
R1#以下は、EIGRPルートを含むR2のルーティングテーブルです。
R2#show ip route eigrp
1.0.0.0/32 is subnetted, 3 subnets
D 1.1.1.1 [90/409600] via 12.12.12.1, 01:11:59, Ethernet0/0
D 1.1.1.3 [90/409600] via 23.23.23.3, 01:11:59, Ethernet0/2
13.0.0.0/24 is subnetted, 1 subnets
D 13.13.13.0 [90/307200] via 23.23.23.3, 01:11:59, Ethernet0/2
[90/307200] via 12.12.12.1, 01:11:59, Ethernet0/0
R2#R2は、R1とR2間のサブネットに到達するために2つのネクストホップを必要とします。
次のステップは、R1 上のスタティック ルートを再配布し、EIGRP 対応ルーターが外部情報を取得できるようにすることです。以下のコマンドでスタティック ルートの再配布を有効にできます。
router eigrp 1
network 1.1.1.1 0.0.0.0
network 12.12.12.1 0.0.0.0
network 13.13.13.1 0.0.0.0
redistribute staticこの変更直後、外部ルートはルーティングテーブルにEIGRP外部ルートとして登録されます。
R2#show ip route eigrp
1.0.0.0/32 is subnetted, 3 subnets
D 1.1.1.1 [90/409600] via 12.12.12.1, 01:13:18, Ethernet0/0
D 1.1.1.3 [90/409600] via 23.23.23.3, 01:13:18, Ethernet0/2
13.0.0.0/24 is subnetted, 1 subnets
D 13.13.13.0 [90/307200] via 23.23.23.3, 01:13:18, Ethernet0/2
[90/307200] via 12.12.12.1, 01:13:18, Ethernet0/0
100.0.0.0/32 is subnetted, 2 subnets
D EX 100.100.100.1 [170/307200] via 12.12.12.1, 00:00:10, Ethernet0/0
D EX 100.100.100.2 [170/307200] via 12.12.12.1, 00:00:10, Ethernet0/0
R2#上記のシナリオと設定は基本的なものであり、ほとんどの導入環境では十分です。デフォルトルートの注入を設定し、他のルーティングプロトコルからEIGRPに再配布することも可能です。
OSPF
OSPF については、マルチエリア OSPF ネットワークの以下の図を使用します。このシナリオでは、R3 はエリア 0 とエリア 1 の両方にインターフェースを持つため、ABR です。エリア 1 は非バックボーン エリア (スタブ、スタビー、または NSSA ではない) です。R1 は、外部ルート (スタティック ルート) を OSPF に再配布するため、自律システム境界ルータ (ASBR) です。

インターフェースの設定に続いて、バックボーンエリアのルーターとしてR1を設定するために必要な項目は以下のとおりです。
router ospf 1
network 1.1.1.1 0.0.0.0 area 0
network 10.10.10.1 0.0.0.0 area 0R3はABRであるため、構成は以下のようになります(下記参照)。
router ospf 1
network 1.1.1.3 0.0.0.0 area 0
network 10.10.10.3 0.0.0.0 area 0
network 20.20.20.3 0.0.0.0 area 1R4はエリア1の内部ルーターであるため、その設定はR1の設定と同様です。
router ospf 1
network 1.1.1.4 0.0.0.0 area 1
network 20.20.20.4 0.0.0.0 area 1外部ルートをOSPFに再配布する前に、OSPFの隣接関係とルーティングテーブルの状態を確認してみましょう。R1とR3間のリンクはブロードキャストされています。そのため、DRとBDRが選出されます。この場合、R1がBDR、R3がDRとなります。
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.3 1 FULL/DR 00:00:37 10.10.10.3 Ethernet0/0
R1#R4 の出力も同様で、OSPF ネイバーは R3 のみです。R4 のルーティング テーブルがどのように表示されるかを以下に示します (すべてのルートは OSPF エリア間 (OIA) ルートとして表示されます)。
R4#show ip route ospf
1.0.0.0/32 is subnetted, 3 subnets
O IA 1.1.1.1 [110/21] via 20.20.20.3, 2w0d, Ethernet0/0
O IA 1.1.1.3 [110/11] via 20.20.20.3, 2w0d, Ethernet0/0
10.0.0.0/24 is subnetted, 1 subnets
O IA 10.10.10.0 [110/20] via 20.20.20.3, 2w0d, Ethernet0/0
R4#さらに詳しく説明すると、OSPFでは静的ルートは次のように再配布されます。
router ospf 1
redistribute static subnetsルーティングテーブルを確認する前に、外部ルーティング情報がOSPFデータベースに外部LSAとして表示されている必要があります。
R1#sh ip ospf database | begin Type-5
Type-5 AS External Link States
Link ID ADV Router Age Seq# Checksum Tag
100.100.100.1 1.1.1.1 212 0x80000001 0x00A1CC 0
100.100.100.2 1.1.1.1 212 0x80000001 0x0097D5 0
R1#R4のルーティングテーブルでは、これらのルートは外部タイプ2(E2)として表示されるはずです。これは、OSPFで外部ルーティング情報が再配布される際のデフォルトのメトリックタイプだからです。
R4#show ip route ospf | i E2
O E2 100.100.100.1 [110/20] via 20.20.20.3, 00:04:21, Ethernet0/0
O E2 100.100.100.2 [110/20] via 20.20.20.3, 00:04:21, Ethernet0/0
R4#結論
EIGRPとOSPFは、現在最も広く利用されているIGPと言えるでしょう。どちらも多くの企業ネットワークで広く採用されており、実装と運用において成熟度と堅牢性を備えています。どちらが実際に使用されるかは、「どちらが優れているか」という点以外の要因によって決まることが多く、その問いに対する明確なコンセンサスは存在しません。
選択は、使用するベンダー(OSPFは一般的にEIGRPよりも多くのベンダーのデバイスで利用可能)、実装者の経験(ネットワーク管理者は通常、より慣れ親しんだものを実装する)、およびISPやWANプロバイダがネットワークエッジで使用しているルーティングプロトコルに大きく依存します。
LogicMonitorがどのようにルーティングのパフォーマンスを監視し、プロトコルの動作を追跡し、ネットワークの問題がユーザーに影響を与える前に明らかにするかをご覧ください。
LogicMonitorの統合プラットフォームは、インフラストラクチャ、ネットワーク、アプリケーションの可視性を連携させることで、チームがより迅速にトラブルシューティングを行い、サービスの継続的な稼働を可能にします。
よくあるご質問
EIGRPとOSPFは同じネットワーク上で同時に動作できますか?
はい。多くの企業ネットワークでは、両方のプロトコルを同時に実行しており、通常は再配布機能を使用して経路を共有しています。これは、移行時や、EIGRPがCisco製セグメントで、OSPFがマルチベンダー製セグメントで実行されるような、ベンダーの異なる機器が混在するネットワークでよく見られます。
リンク障害発生後、どちらのプロトコルがより速く収束しますか?
EIGRPは、実行可能な後継ルートを使用してバックアップパスを事前に計算するため、一般的に収束が速くなります。プライマリルートが故障した場合、EIGRPはルートを再計算することなく、実行可能な後継ルートに即座に切り替えることができます。OSPFは、影響を受けるエリア全体に新しいLSAをフラッディングし、SPFアルゴリズムを実行する必要があります。
EIGRPは依然としてシスコ独自の技術ですか?
EIGRPは2013年までシスコ独自の技術でしたが、同年、シスコは情報提供のためのRFC(RFC 7868)として公開しました。現在では一部のサードパーティベンダーがEIGRPをサポートしていますが、マルチベンダー環境ではOSPFの方が広く採用されています。
OSPFをEIGRPよりも優先して選択すべきなのはどのような場合ですか?
ネットワークに複数のベンダーのデバイスが含まれている場合、相互運用性のために標準ベースのプロトコルが必要な場合、またはWANプロバイダやISPがネットワークエッジでOSPFを使用している場合は、OSPFを選択してください。OSPFの階層型エリア設計は、大規模展開における経路集約をよりきめ細かく制御することも可能にします。




