EIGRP(Enhanced
Interior Gateway Routing Protocol)は、
シスコシステムズが開発した独自の
ルーティングプロトコルです。IGRP(
Interior Gateway Routing Protocol)をベースに、より高度な機能と効率性を追求したプロトコルであり、自律システム(AS)内でルーティングを行うためのIGP(Interior Gateway Protocol)として広く利用されています。
EIGRPは、距離ベクトル型
ルーティングプロトコルの拡張版として位置づけられ、ネットワークトポロジーの変化やルーターの性能変動に起因するルーティングの不安定性を最小限に抑えることを目指しています。特に、EIGRPをサポートするルーターは、32ビットのメトリック情報を24ビットのIGRPメトリック情報に自動的に変換する機能を備えており、隣接するIGRPルーターとの相互運用をスムーズに行えます。ルーティングの最適化においては、SRI(スタンフォード研究所)が開発したDUAL(Diffusing Update Algorithm)に基づいたアルゴリズムを採用しており、ループフリーな運用と高速なコンバージェンス(収束)を実現します。
EIGRPの基本動作
EIGRPがルーティング情報を収集する際、以下の3つのテーブルを活用します。
隣接テーブル
隣接テーブルには、直接接続されている隣接ルーターに関する情報が格納されます。ここでいう隣接ルーターとは、インターフェースが直接接続され、直接アクセス可能なルーターのことです。
トポロジテーブル
トポロジテーブルは、ネットワーク全体のトポロジー情報を格納するのではなく、隣接ルーターから収集した
ルーティングテーブルに関する情報を格納するテーブルです。EIGRPネットワーク内の宛先ネットワークの一覧と、それぞれのメトリック情報が記録され、各宛先に対してサクセサ(最適経路)とフィージブルサクセサ(バックアップ経路)が定義されます。ルーティングが安定している宛先は「パッシブ」、ルーティングに変更があり更新中の宛先は「アクティブ」と示されます。
ルーティングテーブルには、すべての宛先に対する実際のルートが格納されます。このテーブルは、トポロジテーブルからサクセサ(およびフィージブルサクセサ)を持つ宛先ネットワークのエントリを取り出して作成されます。不等コスト負荷分散を行う場合には`variance`コマンドが使用されます。サクセサとフィージブルサクセサは、それぞれの宛先に対する次のホップルーターとして機能します。
他の距離ベクトル型プロトコルとは異なり、EIGRPは定期的なルート更新を行わず、新たな隣接ルーターが接続された際に情報を交換し、それ以降は変更部分のみを送信することで効率的な運用を実現します。
メトリック情報
EIGRPは、各経路ごとに以下の5種類のメトリック情報を保持しています。
遅延合計 (Total Delay):10マイクロ秒単位で表現されます。
最小帯域幅 (Minimum Bandwidth):キロビット毎秒 (kbps) 単位で表現されます。
信頼性 (Reliability):1から255までの数値で表現され、255が最も信頼性が高いことを示します。
負荷 (Load):1から255までの数値で表現され、255が最も負荷が高いことを示します。
最小MTU (Minimum MTU):実際には計算には使用されません。
デフォルトでは、遅延合計と最小帯域幅のみがメトリック計算に使用されますが、管理者は必要に応じて他のメトリック情報の収集を設定することも可能です。経路の比較には、これらのメトリック情報を以下の式に代入して計算される複合メトリック値が用いられます。
[ (K1 Bandwidth + (K2
Bandwidth) / (256 - Load) + K3 Delay)
(K5 / (K4 + Reliability)) ] 256
この式に含まれる定数 (K1~K5) はユーザーが設定可能であり、ルーティング動作に影響を与えます。デフォルトではK1とK3が1、それ以外の定数が0に設定されており、この場合の式は `(Bandwidth + Delay)
256` となります。EIGRPネットワークでは、すべてのルーターでこれらの定数が同一の設定である必要があり、設定が一致しない場合にはエラーが報告され、隣接関係が形成されません。
EIGRPは、帯域幅と遅延のメトリック情報を以下の計算によってスケーリングします。
EIGRP帯域幅 = 10^7 / インターフェース帯域幅
EIGRP遅延 = インターフェース遅延 / 10
シスコのルーターでは、インターフェースの帯域幅と遅延は設定可能な静的パラメータであり、それぞれキロビット毎秒とマイクロ秒単位で設定されます。これらの値を計算式に適用することで、複合メトリック値が算出されます。
IGRPも基本的には同様の計算式で複合メトリック値を算出しますが、256の係数を使用しない点が異なります。この係数は、EIGRPとIGRP間の後方互換性を維持するために導入されました。複合メトリック値はIGRPでは24ビットですが、EIGRPでは32ビットであり、24ビット値を256倍することで32ビットに拡張します。これにより、EIGRPとIGRP間で情報を交換する際には自動的に値が変換されます。
EIGRPは各経路のホップ数も保持しますが、メトリック計算には使用されず、設定された最大値(デフォルトは100、1~255の範囲で設定可能)と比較するのみに利用されます。ホップ数が最大値を超えた経路は、ルーターによって到達不能と判断されます。
サクセサとフィージブルサクセサ
サクセサ
サクセサとは、特定の宛先への最小距離を提供し、かつルーティングループの一部でないことが保証された、次のホップルーターのことです。サクセサの選定は、全隣接ルーターのメトリック情報を比較し、最小距離となるルーターを選択します。また、後述するフィージビリティコンディションを満たすことも条件となります。各宛先のサクセサはトポロジテーブルに記録され、ルーティングテーブルでその宛先の次のホップとして使用されます。
フィージブルサクセサ
フィージブルサクセサとは、ルーティングループの一部でないことが保証された、次のホップルーターのことです。フィージブルサクセサもフィージビリティコンディションを満たす必要があり、サクセサであれば必ずフィージブルサクセサにもなります。しかし、EIGRPの文脈では、フィージブルサクセサはサクセサではない(距離が最小でない)が、ループフリーな経路を持つルーターを指すことが多いです。フィージブルサクセサはサクセサが利用不能になった場合のバックアップ経路として利用され、不等コスト負荷分散にも利用されます。ルーターは、サクセサまたはフィージブルサクセサを経由してパケットを送信することができ、そのパケットが適切に転送されることが期待できます。デフォルトでは、1つの宛先に対してルーティングテーブルに格納できるサクセサとフィージブルサクセサの数は4つに制限されていますが、この制限は1から6、最新のCisco IOSでは1から16まで変更可能です。
アクティブ状態とパッシブ状態
トポロジテーブルでは、各宛先はパッシブまたはアクティブのいずれかの状態を持ちます。パッシブ状態は、その宛先へのサクセサが特定されている状態を表します。サクセサがフィージビリティコンディションを満たさなくなり、かつフィージブルサクセサが存在しない場合には、その宛先はアクティブ状態となります。アクティブ状態となった宛先は、隣接ルーターへのクエリに対する応答が返ってくることでパッシブ状態に戻ります。サクセサが利用不能になった場合でも、フィージブルサクセサが存在すれば、その中で最小距離のものが新たなサクセサに選ばれるため、パッシブ状態を維持します。
報告距離と到達可能距離
報告距離(AD:Advertised Distance)は、上流の隣接ルーターがアドバタイズする宛先ネットワークへの複合メトリック値であり、サクセサを経由したときの宛先との最小距離を表します。到達可能距離(FD:Feasible Distance)は、ルーターから特定の宛先への既知の最小距離であり、ADにそのADを送信した隣接ルーターまでのコストを加えた値です。FDは、経路がアクティブ状態からパッシブ状態になった時点以降の最小距離であり、パッシブ状態では距離が減少する場合にのみ更新されます。アクティブ状態では、経路がパッシブ状態に戻る際に更新され、増加する可能性もあります。
フィージビリティコンディション
フィージビリティコンディションとは、EIGRPネットワークにおけるループフリーな状態を保証するための条件です。この条件は、隣接ルーターがアドバタイズする距離が到達可能距離以下であれば、その隣接ルーターはループフリーな経路上にあるというものです。より正確には、ある宛先について、AD < FD となる隣接ルーターはループフリーな経路上にあると判断されます。この条件はSource Node Conditionとも呼ばれ、DUALアルゴリズムの重要な要素です。
距離ベクトル型としての分類
EIGRPは、シスコのマーケティング資料ではハイブリッドルーティングプロトコルと説明されることもありますが、その動作原理は距離ベクトル型に分類されます。距離ベクトル型プロトコルは、ベルマン-フォード法に基づいて最短経路を求め、ノード間で距離ベクトルを交換します。一方、リンクステート型プロトコルは、ダイクストラ法に基づいて最短経路を求め、ノード間で接続関係の情報を交換します。EIGRPは帯域幅、遅延、負荷、信頼性といった情報をやり取りしますが、ネットワークトポロジーに関する情報は交換しないため、距離ベクトル型の特徴を備えています。EIGRPは、helloパケットによる隣接関係の発見、信頼性のあるルーティング情報送信、フィージビリティコンディション、拡散計算などの高度な技法を使用していますが、基本的な動作原理は距離ベクトル型プロトコルの範疇です。ハイブリッド型プロトコルの例としては、マルチエリアOSPFがあり、エリア内ではリンクステート型、エリア間では距離ベクトル型のルーティングを使用します。
EIGRPの各種コマンド
EIGRPの設定と動作状況を確認するためのコマンドは以下の通りです。
`show ip protocols`:
ルーティングプロトコルの状態を表示します。動作しているEIGRPのAS番号やK値などを確認できます。
`show ip eigrp topology`:EIGRPのトポロジテーブルを表示します。サクセサ、フィージブルサクセサ、FD値、AD値を確認できます。
`show ip eigrp interfaces`:EIGRPが動作するインターフェースの情報を表示します。各インターフェースで確立しているネイバー数も確認できます。
`show ip eigrp neighbors`:EIGRPの隣接機器の情報を表示します。
その他の詳細
EIGRPはCIDR(Classless Inter-Domain Routing)に対応しており、可変長サブネットマスクを使用できます。この点はIGRPからの大きな改善点です。一方、シスコの機器以外ではサポートされていないため、EIGRPを採用した組織はベンダーロックインのリスクを抱えることになります。また、EIGRPはネットワークトポロジーを把握できないため、MPLSのトラフィックエンジニアリングのような用途には適していません。
EIGRPはPDM(Protocol-Dependent Module)を使用して、IP、IPv6、IPX、AppleTalkに対応したルーティングプロセスを個別に実行できます。しかし、これらのプロトコル間の変換は行えません。
EIGRPの設定例
クラスのあるIPアドレスを使う場合
Router> enable
Router# config terminal
Router(config)# router eigrp 1
Router(config-router)# network 192.168.0.0
Router(config-router)# end
クラスのないIPアドレスを使う場合
Router> enable
Router# config terminal
Router(config)# router eigrp 1
Router(config-router)# network 10.201.96.0 0.0.15.255
Router(config-router)# no auto-summary
Router(config-router)# end
この例では、ワイルドカード `0.0.15.255` が、サブネットマスク `255.255.240.0` の補数として使用されており、最大4094台のホストを持つサブネットを表します。`no auto-summary` コマンドは、クラスのあるネットワークとの境界での自動集約を防ぎ、ループの発生を防止します。
まとめ
EIGRPは、シスコ環境におけるルーティングを支える重要なプロトコルです。その複雑な機能とアルゴリズムを理解することで、より効率的で安定したネットワーク運用が可能になります。ルーティング技術を深める上で、EIGRPの知識は不可欠と言えるでしょう。
参考資料
Cisco Systems - Enhanced IGRP
Cisco Systems - Internetworking Technology Handbook: Enhanced Interior Gateway Routing Protocol (EIGRP)
Cisco Systems - Introduction to EIGRP
CCNA Cisco Certified Network Associate Study Guide (Sixth ed.)
外部リンク
EIGRP—A Fast Routing Protocol Based on Distance Vectors
IGRP Metric
Loop-free Routing Using Diffusing Computations
Termination Detection for Diffusing Computations
What you need to know about EIGRP
*
EIGRP demos