EIGRP(Enhanced Interior Gateway Routing Protocol)は、Cisco が開発した距離ベクタ型のルーティングプロトコルです。2016年には、仕様が RFC 7868 として公開されています。この記事では、2台のルータで EIGRP を設定し、ネイバーとルーティングテーブルを確認するまでの基本の流れを説明します。
router eigrpとnetworkコマンドによる基本設定show ip eigrp neighborsでのネイバーの確認show ip route eigrpでの学習したルートの確認
EIGRP の特徴
| 特徴 | 内容 |
|---|---|
| 距離ベクタ型 | ネイバーから受け取った経路と距離をもとに、最適な経路を選ぶ。Cisco は「高度な距離ベクタ型(advanced distance vector)」と呼んでいる |
| DUAL による速い収束 | DUAL(Diffusing Update Algorithm)で、ループしない経路を計算する。バックアップの経路(フィージブルサクセサ)があれば、障害時にすぐ切り替えられる |
| 複合メトリック | 既定では帯域幅と遅延からメトリックを計算する |
| 差分の更新 | 経路に変化があったときだけ Update を送る。定期的に経路表全体を送ることはしない |
検証構成
R2 と R3 を 192.168.23.0/24 でつなぎ、それぞれのループバック(2.2.2.2/32、3.3.3.3/32)を EIGRP で交換します。
EIGRP を設定する
まず、router eigrp の後に AS 番号を指定します。AS 番号はネイバー同士で一致している必要があり、違っているとネイバーになれず、ルートも交換できません。ここでは AS 100 にします。
次に、network コマンドで、EIGRP を有効にするインタフェースを指定します。対象になったインタフェースからは EIGRP のパケット(Hello など)が送られ、そのインタフェースのネットワークが広告されます。
R2
R2(config)# router eigrp 100 R2(config-router)# network 2.2.2.2 0.0.0.0 R2(config-router)# network 192.168.23.0
R3
R3(config)# router eigrp 100 R3(config-router)# network 3.3.3.3 0.0.0.0 R3(config-router)# network 192.168.23.0
network コマンドでは、アドレスの後にワイルドカードマスクを付けて範囲を指定します。network 2.2.2.2 0.0.0.0 は 2.2.2.2 だけに一致するので、Loopback0(2.2.2.2/32)が対象になります。network 192.168.23.0 のようにマスクを省略すると、アドレスのクラスで範囲が決まります。192.168.23.0 はクラス C なので 192.168.23.0/24 として扱われ、そのネットワークのアドレスを持つ FastEthernet0/0.23 が対象になります。
networkで指定するのは「EIGRP を有効にするインタフェース」です。広告したいネットワークを直接書くコマンドではありません。- 端末だけがつながるインタフェースのように、ネットワークは広告したいが Hello は送りたくない場合は passive-interface を使います。
ネイバーを確認する
設定すると、R2 と R3 は Hello をやり取りし、しばらくするとネイバーが確立したログが出ます。
R2
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.3 (FastEthernet0/0.23) is up: new adjacency
show ip eigrp neighbors:ネイバーの一覧
ネイバーの状態は show ip eigrp neighbors で確認します。R2 からは R3(192.168.23.3)が、R3 からは R2(192.168.23.2)が見えています。
R2
R2# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.23.3 Fa0/0.23 13 00:02:44 11 100 0 6
R3
R3# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.23.2 Fa0/0.23 12 00:03:08 832 4992 0 6
| 表示 | 意味 |
|---|---|
| Address | ネイバーの IP アドレス |
| Interface | ネイバーからの Hello を受け取っているインタフェース |
| Hold | ホールドタイムの残り秒数。0 になるとネイバーをダウンにする |
| Uptime | ネイバーになってからの時間 |
各項目のくわしい意味は 隣接テーブルとトポロジテーブルの確認 で扱っています。
ルーティングテーブルを確認する
R2 は R3 のループバック 3.3.3.3/32 を、R3 は R2 のループバック 2.2.2.2/32 を学習しています。
R2
R2# show ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/156160] via 192.168.23.3, 00:02:55, FastEthernet0/0.23
R3
R3# show ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/156160] via 192.168.23.2, 00:02:52, FastEthernet0/0.23
| 表示 | 意味 |
|---|---|
| D | EIGRP で学習した内部ルート |
| 90 | アドミニストレーティブディスタンス。EIGRP の内部ルートは 90 |
| 156160 | メトリック。同じ宛先への経路が複数あれば、メトリックの小さい方が使われる |
| via 192.168.23.3 | ネクストホップ |
[90/156160] の 90 は、ルーティングプロトコルどうしの優先度を表すアドミニストレーティブディスタンスです。EIGRP の用語のアドバタイズドディスタンス(AD)とは別のものなので、注意してください。メトリック 156160 の計算方法は メトリック計算(K 値) で確認しています。
EIGRP のパケット
EIGRP は、次の5種類のパケットでネイバーとやり取りします。
| パケット | 役割 |
|---|---|
| Hello | ネイバーを見つけ、関係を維持する |
| Update | 経路情報を伝える |
| Query | 経路を失ったとき、代わりの経路を問い合わせる |
| Reply | Query に答える |
| Ack | Update、Query、Reply を受け取ったことを伝える |
パケットキャプチャでの見え方は EIGRP パケット解説 で確認しています。
まとめ
| 手順 | コマンド | ポイント |
|---|---|---|
| EIGRP を有効にする | router eigrp <AS> | AS 番号をネイバーとそろえる |
| インタフェースを指定する | network <アドレス> [ワイルドカード] | マスクを省略するとクラスの範囲になる |
| ネイバーを確認する | show ip eigrp neighbors | 相手のアドレスが表示されるか |
| ルートを確認する | show ip route eigrp | D のルートとして入っているか |
コメント