Enhanced Interior Gateway Routing Protocol
Enhanced Interior Gateway Routing Protocol (EIGRP)はシスコの独自拡張距離ベクトル型のルーティングプロトコルであり、Diffused Update Algorithm (DUAL)を利用し、宛先への最短パスを計算します。Interior Gateway Routing Protocol (IGRP)と同じようにメトリックを計算するが、IGRPと比べて高速収束、増分更新と複数のネットワーク層プロトコルのIP、 Internetwork Packet Exchange (IPX)やAppleTalkをサポートしています。
プロトコルの特徴:
プロトコルタイプ : 距離ベクトル
アルゴリズム : 最大パスを計算するため、Diffusing Update Algorithm (DUAL)を利用します。
仕様 : EIGRPは独自です。
プロトコルサポート : IPv4, IPv6, IPX, やAppleTalk
トランスポートプロトコル : IP/88
最大ホップ数 : 255
認証 : MD5のみ
マルチキャストIP : 224.0.0.10
内部ルートAD : 90
外部ルートAD : 170
サマリールートAD : 5
EIGRPの設定:
EIGRPを有効するため、「router eigrp」コマンドでネットワークの自律システム番号(AS番号)を設定し、次は「network」コマンドでネットワークアドレスを設定します。
router eigrp [AS番号]
network [ネットワークアドレス] [ワイルドカードマスク]
例:
Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#router eigrp 100 Router(config-router)#network 10.1.1.0 0.0.0.255 |
NexusOSの場合は最初EIGRPを有効して、下記に設定できます
N7K1(config)# feature eigrp N7K1(config)# router eigrp 100 N7K1(config-router)# router-id 1.1.1.1 N7K1(config-router)#exit N7K1(config)# int e1/2 N7K1(config-if)# no switchport N7K1(config-if)# ip router eigrp 100 N7K1(config-if)#end |
ネイバーおよび隣接関係:
ネイバー検出のためにhelloを送信します。そして返答が下記の条件と一致した場合ネイバーが確立されます。:
1) AS番号
2) ハロー広告を受け取った送信元は、受信I/Fと同じサブネットに所属しており、ルータインターフェースのプライマリサブネット
3) 同一メトリック (K 値)
4) 認証
EIGRPのアップデート:
ルー タが隣接関係になると、ルートアップデートメッセージを交換します。1)初めはフルアップデートを送信する、すべてのアップデートを含みます。2)すべて のルートが交換されると、アップデートが止まります。1つまたは複数ルートが変更すると、部分的な更新しか行いません。ネイバーがダウンし、そして再接続 する場合、フルアップデートを行います。マルチキャストアップデートを送信する、及びACKのユニキャストメッセージを待つため、EIGRPはRTP (Reliable transport protocol)を使用しています。
EIGRPのパケットタイプ:
Hello: Hello はネイバー探索/リカバリのためにマルチキャストされます。
Acks: アップデートが行われているかを確認します。Ackパケットは必ずユニキャストで送信されます。
Updates: updateパケットはネイバーが自分自身トポロジーテーブルを作成するために送信します。
Queries: queriesパケットはネイバーが失ったルートのパスを持っているかどうかを問い合わせます。
Replies: 宛先はアクティブ状態に入ると、repliesパケットを送信します。Repliesパケットはいつもクエリに対する応答として送信されます。
EIGRPの収束コンポーネント:
Feasible distance - これは遠隔ネットワークの各パスの最良メトリックです。
Reported distance - これはネイバーが報告された遠隔ネットワークのメトリックです。 ネイバーのルーティングテーブルのメトリックです。
Successor - successorルートは遠隔ネットワークまでの最良ルートです。 ルーティングテーブルで存在し、EIGRPはsuccessorルートを利用して、宛先にデータを転送します。
Feasible successor - サクセッサと異なるパスで、Feasibility conditionの条件を満たす必要があります。
Feasible successorは、バックアップルートとして考えられ、successorのFDより短いADを持つ経路でないとフィジブル・サクセサにはなれません。
EIGRPテーブル:
Neighbor table - 各ルータは隣接ネイバーの情報を持っています。 ルータが新しいネイバーを発見すると、アドレスやインターフェース、Holdtime、 Uptime、 シークエンス、 Retransmission Timeout (RTO)、Smooth Round Trip Time (SRTT)、 及びネイバーのQueue countが登録され、ネイバーテーブルに保存されます。
Topology table - トポロジーテーブルはEIGRPルーティングテーブルを作るための情報が含まれます。 トポロジテーブルはDiffusing Update Algorithm (DUAL)により作用します。隣接ルータがアドバタイズされたすべての宛先のルートが含まれて、 各宛先サブネット及びそのサブネットをアドバタイズされたネイバーの情報を持ちます。ネイバーテーブルから、各ネイバーのメトリック情報を取得し、トポロ ジーテーブルに登録されます。
HelloやHoldタイム:
ホルドタイムのデフォルト値はハロー間隔の3倍です。
下記のデフォルトでハロー間隔は5秒で、ホルドタイムは15秒です。
1) ブロードキャスト媒体
2) Point-to-pointシリアル, point-to-pointサブインタフェースリンク
3) 高帯域幅マルチポイント回路(T1より高い (1544Kbps))
下記のデフォルトでハロー間隔は60秒で、ホルドタイムは180秒です。
1) T1より低いか同じ速度の低速NBMAリンクです。
Eigrpのメトリック:
複合メトリック= [K1*帯域幅+ (K2*帯域幅)/ (256-負荷) +K3*遅延]*[K5/信頼性+K4)]
K値は一定である
デフォルトで
K1=1
K2=0
K3=1
K4=0
K5=0
複合メトリック= 256*[帯域幅+遅延]
帯域幅 – 10^7/ (パスの最低帯域幅, 単位はKbpsです)
遅延 - パス内のすべての遅延の合計, 単位は数十マイクロ秒です
EIGRPロードバランシング:
不 均等なロードバランシングは「variance multiplier」コマンドで制御されます。 maximum-pathコマンドの制限で、各feasible successorルートのメトリックがvariance値掛けるfeasible distance以下の場合ルーティングテーブルに追加されます。variance multiplierの値は1から128まで使えます。 デフォルトの1は同等ロードバランシングという意味です。
EIGRPルートクエリとStuck in active:
EIGRP はルーティング情報をアドバタイズするためにネイバーに依存します。 ルーティングテーブルからルートを失う場合、 高速収束ためEIGRPが積極的に失ったルートを探します。 このプロセスは、クエリプロセスと呼ばれています。クエリプロセスにおける、 ルートを失って、feasible successorが無い場合、successorへのインターフェース以外、各ネイバーやインターフェースにクエリを送信します。 ネイバーのルータが失ったルートの情報を持ってない場合、 クエリの境界に到達するまでネイバーのルータに複数クエリが送信されます。クエリの境界ネットワークの限りまで送信します。 クエリが送信されると、successorの情報を計算する前にすべてのネイバールータの返事を待たなければなりません。 ネイバーのルータが3分以内に応答しなかったら、ルートがstuck in activeと呼ばれます。この時点で、問題を抱えたと判断し、、ルータがネイバーをダウンさせます。
ルート集約:
デ フォルトで自動集約が有効になります。 「no auto-summary」のコマンドを利用すると、無効になります。 ip summary-address eigrpコマンドはインターフェイスレベルのアドレス集約を設定するために利用します。ループ防止為、null0インターフェースに 5administrative distanceのEIGRP集約ルートを作成します。 5AD[Administrative Distance]のnull0ルートをデフォルトで作成されるので、インターフェース上でip summary-address eigrpのコマンドを使ってはいけません。 ADは低いので、このデフォルトルートは他のネイバーから学んだデフォルトルートを勝手に更新させます。
EIGRPスタブルーティング:
EIGRP スタブ機能はEIGRPクエリメッセージの範囲及び、ネイバーがアドバタイズするルートを制限します。 EIGRPスタブルーティングは安定性を制御しますし、リソースの使用率を減らします。 EIGRPスタブルーティングを設定する時に、リモートまたはアドバタイズするルータのみ設定するが必要です。 このルータは集約ルート、 直接ルート、再配布されたスタティックルート、外部ルート、 及び内部ルートのクエリをinaccessible「アクセス不可能」に返事します。また、ネイバーに「私はスタブルータです」という特別なピア情報を送 信します。
EIGRPスタブルーティングを設定するため、下記コマンドにて利用可能です:
Router(config-router)#eigrp stub [receive-only | connected | static | summary] オプションの概要: receive-only :ルータがルートを送信しません。 connected :ルータは単一のネイバーに接続されたすべてのルートをアドバタイズします。 再配布は必要ありません。 static :ルータは単一のネイバーに全てのスタティックルートをアドバタイズします。 スタティックルートはまだアドバタイズされるため、EIGRPに再配布する必要があります。 summary :ルータは集約されたルートをアドバタイズします。 |
EIGRPネイバーの状態の変更をロギングする:
ネ イバー関係を失うと、そのネイバーの全ての情報も無くなります。 通常、ネットワークの全体に影響します。 よって、トラブルシューティングするためネイバー関係の変更のログを持つことは大変便利です。よって、 この機能は接続の損失を伝えないリンクのトラブルシューティングも便利です。
EIGRPネイバーの状態の変更ログを有効にするため、eigrp log-neighbor-changesコマンドを利用してください:
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#router eigrp 100 Router(config-router)#eigrp log-neighbor-changes Router(config)#end Router# |
新しいIOSは階層的なEIGRP設定「name mode」をサポートします。 このブログ「Glimpse of "EIGRP name mode configuration"」を参考にして下さい。
EIGRPコマンド参考:
Cisco IOS
Cisco IOS XR
Cisco NX-OS/IOSの比較
関連情報:
http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094cb7.shtml#intro
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f07.shtml?referring_site=smartnavRD
http://www.cisco.com/en/US/tech/tk365/technologies_q_and_a_item09186a008012dac4.shtml?referring_site=smartnavRD
http://www.cisco.com/en/US/docs/ios/ios_xe/iproute_eigrp/configuration/guide/ire_cfg_eigrp_xe.html?referring_site=smartnavRD
http://tools.ietf.org/html/rfc4294#page-10
このドキュメントは英語版の翻訳です。
Overview of EIGRP