EIGRP 技術メモ(Cisco IOS / IOS XE想定)
主にCisco IOS / IOS XEにおけるIPv4 EIGRPを対象とする。
IPv6 EIGRP、Named Mode、Stub、再配送、認証、経路集約も扱う。
IOS XR、NX-OSなどではCLI構文・対応機能に差異がある。
1. EIGRP概要
EIGRP(Enhanced Interior Gateway Routing Protocol)は、主にAS内部で使用するCisco系のIGPである。
従来はCisco独自プロトコルとして扱われていたが、プロトコル仕様の一部はRFC 7868として公開されている。ただし、実運用ではCisco製品を中心に利用されることが多い。
EIGRPは、距離ベクトル型プロトコルの特徴を持ちながら、DUAL(Diffusing Update Algorithm)により高速収束とループフリーな経路選択を実現する。一般には「拡張距離ベクトル型」または「ハイブリッド型」と説明される。
主な特徴は以下の通り。
- AS内部で使用するIGP
- IPプロトコル番号88を使用する
- TCP / UDPは使用しない
- DUALにより高速な収束を行う
- 帯域幅、遅延、信頼性、負荷、MTUを基にメトリックを計算する
- デフォルトでは帯域幅と遅延だけを使用する
- Equal-Cost Load BalancingおよびUnequal-Cost Load Balancingに対応する
- 隣接ルータとの経路情報交換にはRTPを使用する
- IPv4ではマルチキャストアドレス
224.0.0.10を使用する - IPv6ではマルチキャストアドレス
FF02::Aを使用する - OSPFのAreaのような階層構造は持たない
- 大規模環境ではStub、経路集約、フィルタリング、再配送制御が重要となる
ここでいうRTPは、音声・映像で使われるReal-time Transport Protocolではなく、EIGRPのReliable Transport Protocolである。
2. EIGRP基本設定
以下の構成を想定する。
R1 ---------------- R2
R1 Gi0/0:10.0.12.1/30
R2 Gi0/0:10.0.12.2/30
R1 Loopback0:10.255.0.1/32
R2 Loopback0:10.255.0.2/32
EIGRP AS:100
R1設定例
hostname R1
interface GigabitEthernet0/0
description To-R2
ip address 10.0.12.1 255.255.255.252
no shutdown
interface Loopback0
ip address 10.255.0.1 255.255.255.255
router eigrp 100
eigrp router-id 10.255.0.1
no auto-summary
network 10.0.12.0 0.0.0.3
network 10.255.0.1 0.0.0.0
passive-interface default
no passive-interface GigabitEthernet0/0
R2設定例
hostname R2
interface GigabitEthernet0/0
description To-R1
ip address 10.0.12.2 255.255.255.252
no shutdown
interface Loopback0
ip address 10.255.0.2 255.255.255.255
router eigrp 100
eigrp router-id 10.255.0.2
no auto-summary
network 10.0.12.0 0.0.0.3
network 10.255.0.2 0.0.0.0
passive-interface default
no passive-interface GigabitEthernet0/0
確認コマンドは以下。
show ip eigrp neighbors
show ip eigrp topology
show ip route eigrp
show ip protocols
3. EIGRP AS番号
EIGRPでは、同じEIGRPドメインに属するルータで同じAS番号を設定する。
router eigrp 100
この100はEIGRP Autonomous System番号である。
OSPFのプロセスIDとは異なり、EIGRPのAS番号は隣接ルータ間で一致している必要がある。
R1:router eigrp 100
R2:router eigrp 100
→ ネイバー形成可能
R1:router eigrp 100
R2:router eigrp 200
→ ネイバー形成不可
EIGRPのAS番号は、BGPのインターネット上のAS番号とは用途が異なる。EIGRP AS番号は、通常、組織内部のルーティングドメイン識別に使用する。
4. EIGRPの動作概要
EIGRPの基本動作は以下の通り。
- Helloパケットを送受信する
- 隣接ルータを発見する
- ネイバー関係を形成する
- Updateパケットにより経路情報を交換する
- Topology Tableを作成する
- DUALによりSuccessorおよびFeasible Successorを選択する
- 最適経路をRouting Tableへ登録する
- 障害発生時は代替経路を使用する、またはQuery / Replyで再計算する
EIGRPは、OSPFのように全ネットワークのLSDBを保持してSPF計算を行う方式ではない。EIGRPはネイバーから受信した経路情報とメトリックをTopology Tableへ保存し、DUALを用いてループフリーな経路を選択する。
5. EIGRPパケット種別
EIGRPで主に使用されるパケットは以下の通り。
| パケット種別 | 用途 |
|---|---|
| Hello | ネイバー検出、ネイバー維持 |
| Update | 経路情報の通知・更新 |
| Query | 経路喪失時などに代替経路を問い合わせる |
| Reply | Queryへの応答 |
| Acknowledgment | 信頼性のあるパケットに対する確認応答 |
| SIA Query | Stuck-in-Active検出用の確認 |
| SIA Reply | SIA Queryへの応答 |
Helloパケットは通常、信頼性を必要としないため確認応答を伴わない。
Update、Query、Replyは、原則として信頼性のある配送が必要なパケットであり、RTPによる確認応答処理が行われる。
ACKはユニキャストで送信される。
6. マルチキャストアドレスとIPプロトコル番号
EIGRPはTCPやUDPを使用せず、IPプロトコル番号88を直接使用する。
| 項目 | 値 |
|---|---|
| IPプロトコル番号 | 88 |
| IPv4マルチキャストアドレス | 224.0.0.10 |
| IPv6マルチキャストアドレス | FF02::A |
IPv4 EIGRPでは、Hello、Update、Queryなどの送信に以下のマルチキャストアドレスが使用される。
224.0.0.10
IPv6 EIGRPでは以下を使用する。
FF02::A
ただし、EIGRPは状況によりユニキャストを使用する。
代表例は以下。
- ACKパケット
- Static Neighborを設定した場合
- マルチキャストが利用できないNBMA環境
- 特定ネイバーに対する再送
7. Hello TimerとHold Timer
EIGRPはHelloパケットによりネイバーを検出・維持する。
Cisco IOS / IOS XEにおける代表的なデフォルト値は以下である。
| 回線種別の目安 | Hello Timer | Hold Timer |
|---|---|---|
| 高速リンク(T1以上、Ethernet等) | 5秒 | 15秒 |
| 低速NBMAリンク | 60秒 | 180秒 |
一般にHold TimerはHello Timerの3倍である。
Hello Timer設定例:
interface GigabitEthernet0/0
ip hello-interval eigrp 100 5
Hold Timer設定例:
interface GigabitEthernet0/0
ip hold-time eigrp 100 15
両方を設定する例:
interface GigabitEthernet0/0
ip hello-interval eigrp 100 2
ip hold-time eigrp 100 6
OSPFではHello / Dead Timerの一致が隣接形成条件の一つとなるが、EIGRPではHello / Hold Timerが完全一致していなくてもネイバー形成は可能である。
ただし、異なる設定はネイバー切断判定や障害検出時間に影響するため、設計上は統一することが望ましい。
確認コマンド:
show ip eigrp interfaces detail
出力例:
Hello-interval is 5 sec
Hold-time is 15 sec
8. ネイバー形成条件
EIGRPでネイバー関係を形成するためには、主に以下の条件を満たす必要がある。
| 条件 | 内容 |
|---|---|
| EIGRP AS番号 | 一致している必要がある |
| K値 | 一致している必要がある |
| 認証設定 | 認証方式・鍵が一致している必要がある |
| L3到達性 | 通常は同一L2セグメントまたは直接到達可能である必要がある |
| EIGRP有効化 | 両端インターフェースでEIGRPが有効である必要がある |
| Passive Interface | 隣接インターフェースがPassiveではないこと |
| IPv4 / IPv6 AF | 同じアドレスファミリで有効であること |
| Router ID | 重複しないことが望ましい |
EIGRPでは、K値が一致しない場合、ネイバー関係は形成されない。
代表的な確認コマンド:
show ip eigrp neighbors
show ip protocols
show ip eigrp interfaces detail
9. Router ID
EIGRP Router IDは、EIGRPルータを識別する32ビット値である。
Ciscoでは、Loopbackインターフェースに設定されたIPv4アドレスをRouter IDとして明示設定することが推奨される。
router eigrp 100
eigrp router-id 10.255.0.1
Router IDを明示設定しない場合、Ciscoは通常、Loopbackインターフェースまたは物理インターフェースのIPv4アドレスからRouter IDを選択する。
Router IDは以下の理由から明示設定することが望ましい。
- 機器再起動時のRouter ID変更を防ぐ
- Loopbackを使用することで安定した値を利用できる
- 重複を防止しやすい
- トラブルシュート時にルータを識別しやすい
- EIGRP Stubや再配送構成での運用性を向上できる
Router IDを変更した場合、EIGRPネイバーの再確立が必要になることがある。
10. networkコマンド
Classic ModeのEIGRPでは、networkコマンドによりEIGRPを動作させるインターフェースを指定する。
router eigrp 100
network 10.0.12.0 0.0.0.3
この設定は、IPアドレスが10.0.12.0/30に一致するインターフェースでEIGRPを有効化する。
OSPFのnetworkコマンドと同様、Cisco IOSではワイルドカードマスクを使用する。
network 10.0.12.0 0.0.0.3
対象範囲は以下。
10.0.12.0 ~ 10.0.12.3
Loopbackインターフェースを広告する例:
router eigrp 100
network 10.255.0.1 0.0.0.0
すべてのインターフェースを対象にし、Passive Interfaceで制御する例:
router eigrp 100
network 0.0.0.0
passive-interface default
no passive-interface GigabitEthernet0/0
この方式は設定が簡単である一方、意図しないインターフェースまでEIGRP対象になる可能性があるため、明示的なネットワーク指定の方が安全である。
11. Passive Interface
Passive Interfaceでは、対象ネットワークをEIGRPで広告しながら、Helloパケット送信およびネイバー形成を抑止できる。
端末接続LAN、サーバ接続セグメント、管理ネットワークなどで利用する。
基本設定例:
router eigrp 100
passive-interface default
no passive-interface GigabitEthernet0/0
この構成では、全インターフェースをPassiveにし、GigabitEthernet0/0だけでネイバー形成を許可する。
個別にPassive化する例:
router eigrp 100
passive-interface GigabitEthernet0/1
Passive Interfaceに設定したインターフェースでは、通常、EIGRP Helloパケットは送信されない。
12. EIGRPテーブル
EIGRPでは、主に以下のテーブルを使用する。
| テーブル | 内容 |
|---|---|
| Neighbor Table | 隣接ルータ情報 |
| Topology Table | EIGRPで学習した経路候補 |
| Routing Table | 最終的に利用する経路 |
Neighbor Table
ネイバー関係を確認する。
show ip eigrp neighbors
出力例:
R1# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
0 10.0.12.2 Gi0/0 12 00:15:20 20 200 0 15
主な項目は以下。
| 項目 | 内容 |
|---|---|
| Address | ネイバーIPアドレス |
| Interface | 接続インターフェース |
| Hold | Hold Timer残り時間 |
| Uptime | ネイバー維持時間 |
| SRTT | Smooth Round Trip Time |
| RTO | Retransmission Timeout |
| Q Cnt | 送信待ちキュー数 |
| Seq Num | 最後に使用したシーケンス番号 |
Q Cntが継続的に0以外の場合、パケットロス、輻輳、ネイバー応答遅延などを疑う。
Topology Table
EIGRPが認識している経路候補を確認する。
show ip eigrp topology
Routing Table
実際にパケット転送へ使用される経路を確認する。
show ip route eigrp
13. DUAL
DUAL(Diffusing Update Algorithm)は、EIGRPの経路選択と高速収束を実現するアルゴリズムである。
DUALは以下を実現する。
- ループフリーな経路選択
- 代替経路の事前保持
- 障害時の高速切り替え
- 必要な場合だけQuery / Replyを実行する分散型計算
EIGRPでは、宛先ごとにSuccessorとFeasible Successorを選択する。
14. Successor、Feasible Successor、FD、RD
Successor
Successorは、ある宛先に対する最適な次ホップである。
Successorとして選ばれた経路はRouting Tableへ登録される。
D 192.0.2.0/24 [90/30720] via 10.0.12.2, 00:05:12, GigabitEthernet0/0
この例では、10.0.12.2がSuccessorである。
Feasible Successor
Feasible Successorは、Successor障害時に即座に利用できるループフリーなバックアップ経路である。
Feasible SuccessorはTopology Tableには存在するが、通常はRouting Tableへは登録されない。
Successorが消失した場合、Feasible Successorが存在すれば、Queryを広範囲へ送信せずに経路を切り替えられる。
Feasible Distance(FD)
FDは、自ルータから宛先ネットワークまでの総EIGRPメトリックである。
自ルータ → ネイバー → 宛先
までの総メトリックを表す。
Reported Distance(RD)
RDは、ネイバーが宛先まで持つメトリックである。
CiscoではAdvertised Distanceと呼ばれることもある。
ここでのAdvertised Distanceは、CiscoのAdministrative Distanceとは別の概念であるため注意が必要である。
| 用語 | 意味 |
|---|---|
| Feasible Distance | 自ルータから宛先までの総EIGRPメトリック |
| Reported Distance | ネイバーから宛先までのEIGRPメトリック |
| Administrative Distance | ルーティングプロトコル間の優先度 |
15. Feasibility Condition
Feasible Successorとして認められるためには、Feasibility Conditionを満たす必要がある。
条件は以下。
ネイバーのRD < 現在のSuccessorのFD
つまり、候補ネイバーが報告する宛先までの距離が、現在の最適経路の総距離より小さい場合、その候補はループフリーであると判断できる。
RD < FD
例:
現在のSuccessorのFD:30
候補AのRD:20
候補BのRD:40
この場合、
候補A:20 < 30 → Feasible Successor候補
候補B:40 > 30 → Feasible Successorになれない
Feasible Successorが存在すれば、Successor障害時に高速な経路切り替えが可能となる。
16. Passive状態とActive状態
EIGRPの経路は、主に以下の状態を持つ。
| 状態 | 内容 |
|---|---|
| Passive | 経路が安定している状態 |
| Active | 経路の代替候補を探索している状態 |
Passiveは正常状態である。
P 192.0.2.0/24, 1 successors, FD is 30720
Active状態は、Successorが失われ、かつFeasible Successorが存在しない場合に発生する。
A 192.0.2.0/24, 0 successors, FD is Inaccessible
Active状態になると、EIGRPはネイバーへQueryを送信し、代替経路の有無を確認する。
すべてのReplyを受信すると、経路は再びPassive状態になる。
17. Stuck in Active(SIA)
SIA(Stuck in Active)は、EIGRPがQueryを送信した後、必要なReplyを規定時間内に受信できない状態である。
代表的な原因は以下。
- ネイバー障害
- 回線断やパケットロス
- CPU高負荷
- 大規模かつフラットなEIGRPネットワーク
- 不適切な再配送
- 過剰なQuery範囲
- Stub未使用
- 経路集約不足
- フィルタリング設定不備
Cisco IOSでは、EIGRP Active Timerのデフォルトは一般に3分である。
設定例:
router eigrp 100
timers active-time 3
単位は分である。
SIAが発生した場合、EIGRPは応答しないネイバーをリセットする場合がある。
SIA対策として、以下が重要である。
- Hub-and-Spoke構成のSpokeをEIGRP Stubにする
- 経路集約を行う
- 不要な再配送を避ける
- Query範囲を小さくする
- 回線品質とCPU使用率を確認する
- ネイバー数や経路数を適切に設計する
18. EIGRPメトリック
EIGRPは複合メトリックを使用する。
メトリック計算で使用可能な要素は以下。
| 要素 | 内容 |
|---|---|
| Bandwidth | 経路中の最小帯域幅 |
| Delay | 経路中の遅延の合計 |
| Reliability | 信頼性 |
| Load | 負荷 |
| MTU | 最大転送単位 |
デフォルトでは、BandwidthとDelayだけが使用される。
Reliability、Load、MTUは通常のメトリック計算には使用されない。
19. K値
EIGRPでは、どのメトリック要素を使うかをK値で制御する。
| K値 | 対象 |
|---|---|
| K1 | Bandwidth |
| K2 | Load |
| K3 | Delay |
| K4 | Reliability |
| K5 | Reliability |
デフォルトのK値は以下。
K1 = 1
K2 = 0
K3 = 1
K4 = 0
K5 = 0
Cisco設定での表現は以下。
metric weights 0 1 0 1 0 0
構文は以下。
metric weights <TOS> <K1> <K2> <K3> <K4> <K5>
デフォルトでは、BandwidthとDelayだけがメトリック計算に使用される。
K値はネイバー間で一致している必要がある。
K値が異なる例:
R1:K1=1 K3=1
R2:K1=1 K3=0
→ ネイバー形成不可
K値を変更すると、ネットワーク全体の経路選択に大きな影響を与えるため、通常は変更しない。
20. Classic Metricの計算
Classic Metricでは、デフォルトのK値を使用する場合、計算式は概ね以下となる。
Metric = 256 × (Bandwidth + Delay)
Bandwidthは以下の式で算出される。
Bandwidth = 10^7 ÷ 最小帯域幅(Kbps)
Delayは、経由インターフェースのDelay値の合計である。
Delayの設定単位は10マイクロ秒である。
interface GigabitEthernet0/0
delay 100
上記は以下を意味する。
100 × 10マイクロ秒 = 1,000マイクロ秒
Bandwidthの設定単位はKbpsである。
interface GigabitEthernet0/0
bandwidth 100000
上記は100Mbpsを意味する。
Bandwidth設定は、通常、実際のリンク速度を変更しない。EIGRP、OSPF、QoSなどの計算用パラメータとして使用される。
21. 帯域幅ごとのBandwidth値
Classic MetricにおけるBandwidth値の例は以下。
| リンク帯域 | 帯域値(Kbps) | Bandwidth値 |
|---|---|---|
| 64Kbps | 64 | 156250 |
| 1.544Mbps | 1544 | 6476 |
| 10Mbps | 10000 | 1000 |
| 100Mbps | 100000 | 100 |
| 1Gbps | 1000000 | 10 |
| 10Gbps | 10000000 | 1 |
| 100Gbps | 100000000 | 0.1相当 |
Classic Metricでは最小帯域幅を基準にメトリックを計算する。
ただし、高速インターフェースではClassic Metricの解像度が不足する場合がある。この問題に対応するため、Cisco EIGRPではWide Metricが導入されている。
22. Wide Metric
Wide Metricは、高速リンクでのメトリック解像度を改善するための拡張メトリックである。
主な目的は以下。
- 10Gbps、40Gbps、100Gbpsなどの高速リンクを区別する
- Classic Metricの帯域幅解像度不足を改善する
- 64ビットのメトリック表現を使用する
- 大規模ネットワークでの経路制御精度を高める
Named Mode EIGRPおよび対応IOS / IOS XEでは、Wide Metricを利用できる。
Classic Mode、Named Mode、機器バージョン、相互接続相手の対応状況によりメトリック処理が異なる場合があるため、高速リンクを含む環境では実機検証が必要である。
EIGRPドメイン内では、メトリック方式やK値を安易に混在させないことが重要である。
23. BandwidthとDelayの設定
EIGRPの経路制御では、通常、Delayを調整する方法が安全である。
BandwidthはEIGRP以外にもQoS、SNMP、他のルーティングプロトコルなどへ影響する可能性があるため、変更時には注意が必要である。
Delay変更例
主回線を優先する例:
interface GigabitEthernet0/0
description Primary-Link
delay 10
バックアップ回線を低優先にする例:
interface GigabitEthernet0/1
description Backup-Link
delay 1000
Delayが小さい経路ほど、EIGRPメトリックが小さくなり、優先されやすい。
Bandwidth変更例
interface GigabitEthernet0/0
bandwidth 100000
この設定は、EIGRPが100Mbps相当のリンクとして計算することを意味する。
実リンクが1Gbpsであっても、設定上のBandwidthを100Mbpsにすれば、EIGRPでは100Mbps相当として扱われる。
確認コマンド:
show interfaces GigabitEthernet0/0
show ip eigrp topology 192.0.2.0 255.255.255.0
24. Administrative Distance(AD)
AD(Administrative Distance)は、異なるルーティング情報源から同一宛先を学習した場合に、どの経路情報源を優先するかを決めるCiscoローカルの優先度である。
値が小さいほど優先される。
Ciscoの代表的なデフォルトADは以下。
| 経路情報源 | AD |
|---|---|
| Connected | 0 |
| Static | 1 |
| eBGP | 20 |
| EIGRP Internal | 90 |
| OSPF | 110 |
| IS-IS | 115 |
| RIP | 120 |
| EIGRP External | 170 |
| iBGP | 200 |
EIGRP Internal RouteはAD 90、EIGRP External RouteはAD 170である。
ルーティングテーブルの例:
D 192.0.2.0/24 [90/30720] via 10.0.12.2, 00:03:20, GigabitEthernet0/0
D EX 198.51.100.0/24 [170/284160] via 10.0.12.2, 00:02:10, GigabitEthernet0/0
表記の意味は以下。
[Administrative Distance / EIGRP Metric]
例:
[90/30720]
は以下を意味する。
AD:90
EIGRP Metric:30720
EIGRPのADを変更する例:
router eigrp 100
distance eigrp 90 170
構文は以下。
distance eigrp <internal-distance> <external-distance>
例:
router eigrp 100
distance eigrp 95 175
AD変更は他プロトコルとの経路選択へ影響するため、通常は慎重に扱う。
25. EIGRP Internal RouteとExternal Route
EIGRPで学習する経路は、主にInternal RouteとExternal Routeに分かれる。
| 表示 | 種別 | 内容 |
|---|---|---|
D |
EIGRP Internal | EIGRPドメイン内部で学習した経路 |
D EX |
EIGRP External | 他プロトコルなどから再配送された経路 |
Internal Routeの例:
D 10.10.10.0/24 [90/28160] via 10.0.12.2
External Routeの例:
D EX 172.16.0.0/16 [170/284160] via 10.0.12.2
External Routeは、OSPF、BGP、Static Route、Connected RouteなどをEIGRPへ再配送した場合に生成される。
EIGRP External Routeには、元のルーティングプロトコル、外部メトリック、タグ、外部ルータIDなどの情報が保持される。
26. Equal-Cost Load Balancing
EIGRPは、同一メトリックの複数経路を同時に使用できる。
デフォルトでは、Cisco IOS / IOS XEは複数のEqual-Cost Pathを利用できる。
設定例:
router eigrp 100
maximum-paths 4
最大4経路を使用する例である。
複数の同一メトリック経路がある場合、CEFによりロードバランシングが行われる。
router eigrp 100
maximum-paths 2
2経路までに制限する例である。
27. Unequal-Cost Load Balancing
EIGRPは、Cisco IGPの特徴としてUnequal-Cost Load Balancingをサポートする。
異なるメトリックの経路でも、Feasible Successorであり、かつVariance条件を満たす場合に同時利用できる。
設定例:
router eigrp 100
variance 2
variance 2は、最良経路のFDの2倍以下のメトリックを持つFeasible Successorをロードバランシング対象にできることを意味する。
例:
最良経路のFD:10000
Variance:2
利用可能な最大メトリック:20000
候補経路が以下の場合:
| 経路 | FD | Feasible Successor | 利用可否 |
|---|---|---|---|
| Path 1 | 10000 | Successor | 利用 |
| Path 2 | 15000 | Yes | 利用可能 |
| Path 3 | 25000 | Yes | 利用不可 |
| Path 4 | 12000 | No | 利用不可 |
Path 4はメトリック条件を満たしていても、Feasibility Conditionを満たさない場合は利用できない。
EIGRPでは、Varianceだけで任意の経路をロードバランシング対象にできるわけではない。
28. traffic-share
Unequal-Cost Load Balancing時のトラフィック分散方式は、traffic-shareで制御できる。
デフォルトは一般に以下。
traffic-share balanced
設定例:
router eigrp 100
variance 2
traffic-share balanced
最良経路だけへトラフィックを流し、他経路を待機経路として扱う例:
router eigrp 100
variance 2
traffic-share min across-interfaces
ただし、traffic-share minを使用しても、Feasible Successorとしての情報はTopology Tableに保持される。
29. EIGRP Stub
EIGRP Stubは、Hub-and-Spoke構成におけるSpokeルータなどで使用する。
Stubルータは、HubからのQuery拡散を抑制し、SIA発生リスクを下げる。
Spokeルータでの設定例:
router eigrp 100
eigrp stub connected summary
この設定では、Stubルータは主に以下の経路だけを広告する。
- Connected Route
- Summary Route
一般的なSpokeルータでは、以下の設定がよく使用される。
router eigrp 100
eigrp stub connected summary
Stub設定の種類は以下。
| キーワード | 広告対象 |
|---|---|
connected |
Connected Route |
static |
Static Route |
summary |
Summary Route |
redistributed |
再配送経路 |
receive-only |
経路を広告せず受信のみ |
例として、Connected、Static、Summaryを広告する場合は以下。
router eigrp 100
eigrp stub connected static summary
receive-onlyの例:
router eigrp 100
eigrp stub receive-only
EIGRP Stubは通常、HubではなくSpoke側に設定する。
30. 経路集約
EIGRPでは、インターフェース単位で手動集約を設定できる。
例として、以下の経路を集約する。
10.10.1.0/24
10.10.2.0/24
10.10.3.0/24
10.10.4.0/24
集約経路:
10.10.0.0/16
設定例:
interface GigabitEthernet0/0
ip summary-address eigrp 100 10.10.0.0 255.255.0.0
EIGRPでは、集約設定を行うと、通常、集約経路に対応するNull0ルートがローカルに生成される。
例:
D 10.10.0.0/16 is a summary, 00:01:20, Null0
このNull0ルートは、集約経路配下に存在しない詳細経路へ誤転送されることを防ぐ役割を持つ。
ただし、詳細経路が消失しても要約経路が残る場合、ブラックホールが発生する可能性がある。
経路集約の利点は以下。
- ルーティングテーブルの縮小
- Update、Query、Replyの範囲縮小
- SIA対策
- 障害影響範囲の局所化
- ネットワーク設計の単純化
自動集約を無効化する設定は以下。
router eigrp 100
no auto-summary
現在のCisco IOS / IOS XEでは自動集約が無効であることが多いが、機種・バージョン・既存設定の影響を考慮し、明示的にno auto-summaryを設定することが推奨される。
31. デフォルトルート広告
EIGRPでデフォルトルートを広告する代表的な方法は、Static Routeを再配送する方法である。
まず、デフォルトルートを設定する。
ip route 0.0.0.0 0.0.0.0 192.0.2.2
次に、Static RouteをEIGRPへ再配送する。
router eigrp 100
redistribute static metric 100000 100 255 1 1500
メトリックの意味は以下。
metric <bandwidth> <delay> <reliability> <load> <mtu>
設定例の意味:
| 値 | 内容 |
|---|---|
| 100000 | 帯域幅(Kbps) |
| 100 | 遅延(10マイクロ秒単位) |
| 255 | 信頼性 |
| 1 | 負荷 |
| 1500 | MTU |
再配送対象をデフォルトルートだけに制限する例:
ip prefix-list DEFAULT-ONLY seq 5 permit 0.0.0.0/0
route-map STATIC-TO-EIGRP permit 10
match ip address prefix-list DEFAULT-ONLY
router eigrp 100
redistribute static route-map STATIC-TO-EIGRP metric 100000 100 255 1 1500
無条件でStatic Routeを再配送すると、不要な経路までEIGRPへ流出する可能性があるため、Prefix-listやRoute-mapを使用して制限することが望ましい。
32. 再配送
EIGRPには、以下のような経路を再配送できる。
- Static Route
- Connected Route
- OSPF
- BGP
- RIP
- IS-IS
- 別EIGRP AS
OSPFをEIGRPへ再配送する例:
router eigrp 100
redistribute ospf 1 metric 100000 100 255 1 1500
BGPをEIGRPへ再配送する例:
router eigrp 100
redistribute bgp 65001 metric 100000 100 255 1 1500
Connected Routeを再配送する例:
router eigrp 100
redistribute connected metric 100000 100 255 1 1500
EIGRPへ外部経路を再配送する場合、通常はシードメトリックが必要である。
全再配送経路に共通のデフォルトメトリックを設定する例:
router eigrp 100
default-metric 100000 100 255 1 1500
redistribute ospf 1
redistribute static
再配送では、以下を設計する。
- 対象プレフィックスの制限
- シードメトリック
- Route Tag
- 再配送ループ防止
- 経路集約
- デフォルトルートの扱い
- Internal / External経路の優先度
33. Route Tagによる再配送ループ対策
OSPFとEIGRPなどを相互再配送する場合、経路が再び元のプロトコルへ戻るループが発生する可能性がある。
これを防ぐため、Route Tagを使用する。
OSPFからEIGRPへ再配送する経路へTag 110を設定する例:
route-map OSPF-TO-EIGRP permit 10
set tag 110
router eigrp 100
redistribute ospf 1 route-map OSPF-TO-EIGRP metric 100000 100 255 1 1500
EIGRPからOSPFへ再配送する際に、Tag 110を持つ経路を除外する例:
route-map EIGRP-TO-OSPF deny 10
match tag 110
route-map EIGRP-TO-OSPF permit 20
router ospf 1
redistribute eigrp 100 subnets route-map EIGRP-TO-OSPF
再配送は必要最小限にし、フィルタ、タグ、メトリックを明示的に設定することが重要である。
34. EIGRP認証
EIGRPでは、ネイバー間で認証を設定できる。
Cisco IOS / IOS XEでは、一般的にKey Chainを用いたMD5認証が使用される。
Key Chain設定例
key chain EIGRP-KEY
key 1
key-string EIGRP-SECRET
インターフェースへ認証を適用する。
interface GigabitEthernet0/0
ip authentication mode eigrp 100 md5
ip authentication key-chain eigrp 100 EIGRP-KEY
対向ルータ側にも同じ認証設定を入れる。
key chain EIGRP-KEY
key 1
key-string EIGRP-SECRET
interface GigabitEthernet0/0
ip authentication mode eigrp 100 md5
ip authentication key-chain eigrp 100 EIGRP-KEY
認証設定で一致が必要な要素は以下。
- 認証方式
- Key Chain名
- Key ID
- Key String
- 鍵の有効期間
認証不一致の場合、EIGRPネイバー関係は形成されない、または維持できない。
MD5以外の認証方式やHMAC-SHA-256などへの対応は、Cisco IOS / IOS XEのバージョンやプラットフォームに依存する。
35. Split Horizon
Split Horizonは、あるインターフェースから学習した経路を、同じインターフェースへ広告しないことでルーティングループを防止する仕組みである。
EIGRPでは通常、Split Horizonは有効である。
確認例:
show ip eigrp interfaces detail
Hub-and-Spoke構成、特にNBMAやDMVPNのような環境では、HubがSpoke Aから学習した経路をSpoke Bへ広告する必要がある場合がある。
その場合、Hub側でSplit Horizonを無効化することがある。
interface Tunnel0
no ip split-horizon eigrp 100
Split Horizon無効化はループの原因となり得るため、適用はHub-and-Spoke構成など必要な場面に限定する。
36. Static Neighbor
EIGRPでは通常、マルチキャストHelloによりネイバーを検出する。
NBMA環境などでマルチキャストを使用できない場合は、Static Neighborを設定できる。
router eigrp 100
neighbor 10.0.12.2 GigabitEthernet0/0
対向側も設定する。
router eigrp 100
neighbor 10.0.12.1 GigabitEthernet0/0
Static Neighborを設定したインターフェースでは、EIGRPのマルチキャスト動作が変わり、ユニキャストで通信する。
Static Neighborを使用する場合は、必要なすべてのネイバーを明示的に設定する必要がある。
37. Named Mode EIGRP
Cisco IOS / IOS XEでは、Classic ModeのほかにNamed Mode EIGRPを使用できる。
Named Modeでは、IPv4 / IPv6などのアドレスファミリをまとめて管理しやすくなる。
設定例:
router eigrp ENTERPRISE
address-family ipv4 unicast autonomous-system 100
eigrp router-id 10.255.0.1
network 10.0.12.0 0.0.0.3
network 10.255.0.1 0.0.0.0
af-interface default
passive-interface
exit-af-interface
af-interface GigabitEthernet0/0
no passive-interface
exit-af-interface
exit-address-family
Named Modeの利点は以下。
- IPv4 / IPv6の設定体系を統一しやすい
- インターフェース単位の設定を整理しやすい
- Address Family単位で設定を管理できる
- Wide Metricなどの拡張機能と組み合わせやすい
- 大規模構成で設定の可読性を高めやすい
Classic ModeとNamed Modeは設定体系が異なるため、運用手順やテンプレートを統一することが望ましい。
38. IPv6 EIGRP
IPv6でEIGRPを使用する場合、IPv6 EIGRPを設定する。
IPv6 EIGRPでは、IPv4 EIGRPと異なり、インターフェース上で直接EIGRPを有効化する構成が一般的である。
R1設定例
ipv6 unicast-routing
interface GigabitEthernet0/0
ipv6 address 2001:db8:12::1/64
ipv6 eigrp 100
no shutdown
interface Loopback0
ipv6 address 2001:db8:255::1/128
ipv6 eigrp 100
ipv6 router eigrp 100
eigrp router-id 10.255.0.1
no shutdown
R2設定例
ipv6 unicast-routing
interface GigabitEthernet0/0
ipv6 address 2001:db8:12::2/64
ipv6 eigrp 100
no shutdown
interface Loopback0
ipv6 address 2001:db8:255::2/128
ipv6 eigrp 100
ipv6 router eigrp 100
eigrp router-id 10.255.0.2
no shutdown
IPv6 EIGRPの注意点は以下。
-
ipv6 unicast-routingが必要 - EIGRP Router IDが必要
- EIGRPプロセスを
no shutdownする必要がある - IPv6マルチキャストアドレス
FF02::Aを使用する - EIGRP AS番号は対向と一致する必要がある
- IPv4 EIGRPとIPv6 EIGRPは別のAddress Familyとして動作する
IPv6 EIGRPのネイバー確認:
show ipv6 eigrp neighbors
IPv6 EIGRP経路確認:
show ipv6 route eigrp
39. EIGRPで使用する代表的な確認コマンド
ネイバー確認
show ip eigrp neighbors
show ip eigrp neighbors detail
Topology Table確認
show ip eigrp topology
show ip eigrp topology all-links
show ip eigrp topology 192.0.2.0 255.255.255.0
インターフェース確認
show ip eigrp interfaces
show ip eigrp interfaces detail
ルーティングテーブル確認
show ip route eigrp
show ip route 192.0.2.0
プロトコル設定確認
show ip protocols
show running-config | section router eigrp
EIGRPトラフィック確認
show ip eigrp traffic
EIGRPイベント確認
show ip eigrp events
デバッグ
debug eigrp packets
debug eigrp packets hello
debug eigrp packets update
debug eigrp packets query
デバッグはCPU負荷およびログ出力を増加させるため、本番環境では慎重に使用する。
40. 代表的な障害原因
| 症状 | 主な原因 |
|---|---|
| ネイバーが形成されない | EIGRP AS不一致、K値不一致、認証不一致、Passive Interface、L3到達性不良 |
| Hold Timerが切れる | 回線障害、Hello未受信、CPU高負荷、マルチキャスト障害 |
| 経路を学習しない |
network設定漏れ、Passive設定、フィルタ、再配送漏れ |
| 経路がRouting Tableに入らない | AD、より優先されるStatic Route、Next-hop到達性、別プロトコル経路 |
| 意図しない経路を選ぶ | Bandwidth / Delay設計不備、K値変更、Variance、再配送メトリック不備 |
D EX経路になる |
他ルーティングプロトコルまたはStatic Routeから再配送されている |
| Queryが多い | Stub未使用、集約不足、経路不安定、大規模フラット構成 |
| SIAが発生する | QueryへのReply未受信、回線障害、CPU高負荷、Query範囲過大 |
| ネイバーが頻繁に切れる | Hello / Hold Timer、認証、回線品質、CPU、マルチキャスト到達性 |
| Q Countが増加する | パケットロス、ネイバー応答遅延、回線輻輳、CPU高負荷 |
41. 設計・運用上の要点
- EIGRP Router IDはLoopbackアドレスなどで明示設定する
- EIGRP AS番号は隣接ルータ間で一致させる
- K値は変更せず、全ルータでデフォルト値を維持することが一般的
- ルータ間リンク以外は
passive-interfaceを基本とする - EIGRP認証を有効化する
- Hub-and-Spoke構成ではSpokeをEIGRP Stubにする
- 大規模ネットワークでは経路集約を行い、Query範囲を抑える
- 再配送は最小限にし、Prefix-list、Route-map、Tagを使用する
- EIGRP再配送時はシードメトリックを明示する
- Bandwidth変更はQoSや他プロトコルへ影響するため注意する
- 経路優先度を調整する場合は、BandwidthよりDelay調整を優先的に検討する
- Unequal-Cost Load Balancingでは、VarianceとFeasibility Conditionの両方を理解する
-
DとD EXの違い、およびAD 90 / 170を理解する - SIA対策としてStub、集約、障害ドメイン分割を行う
- Static Neighborはマルチキャストが使えない環境など、必要な場合だけ使用する
- IPv4 EIGRPとIPv6 EIGRPは別Address Familyとして設計する
- 高速リンクを利用する環境ではWide Metric対応と機器バージョンを確認する