EIGRP では、複数のネットワークを1つのルートにまとめて広告する「経路集約」ができます。集約する場所はインタフェース単位で、ip summary-address eigrp を設定したインタフェースから送るアップデートだけが集約されます。この記事では、R2 の4つのループバックを1つのルートにまとめて R3 へ広告し、R2 と R3 のルーティングテーブルがどう変わるかを確認します。
- R2・R3 の EIGRP 設定と、集約前の R3 のルーティングテーブル
ip summary-address eigrpによる経路集約の設定- 集約後の R3 のルートと、R2 にできる Null0 ルートの意味
EIGRP の経路集約とは
経路集約は、連続したネットワークを短いプレフィックスの1つのルートにまとめて広告する機能です。受け取る側のルーティングテーブルが小さくなるほか、集約の範囲内でネットワークが増減しても集約ルート自体は変わらないため、変化の影響が集約した先へ広がりにくくなります。
OSPF では、集約できる場所がエリアの境界(ABR)と外部ルートを取り込む ASBR に決まっています。EIGRP にはこの制限がなく、どのルータのどのインタフェースでも集約できます。
| プロトコル | 集約できる場所 | コマンド(Cisco) |
|---|---|---|
| OSPF | ABR(エリア間)、ASBR(外部ルート) | area range、summary-address |
| EIGRP | 任意のルータのインタフェース | ip summary-address eigrp |
今回まとめるのは 172.16.0.0/24〜172.16.3.0/24 の4つです。第3オクテットを2進数にすると、先頭の6ビットが共通です。第1・第2オクテットの16ビットと合わせて22ビットが共通なので、172.16.0.0/22(サブネットマスク 255.255.252.0)にまとめられます。
検証構成
R2 と R3 は 192.168.23.0/24 でつながり、EIGRP AS 100 でネイバーになっています。R2 には 172.16.0.0/24〜172.16.3.0/24 の4つのループバックがあり、これを EIGRP で R3 へ広告します。
R2・R3 の EIGRP 設定
R2 では4つのループバックを作り、ループバックと R3 側のネットワークを network コマンドで EIGRP に参加させます。network 172.16.0.0 0.0.0.255 のように、2つ目の値はワイルドカードマスクです。
R2
R2(config)# interface Loopback0 R2(config-if)# ip address 172.16.0.2 255.255.255.0 R2(config-if)# interface Loopback1 R2(config-if)# ip address 172.16.1.2 255.255.255.0 R2(config-if)# interface Loopback2 R2(config-if)# ip address 172.16.2.2 255.255.255.0 R2(config-if)# interface Loopback3 R2(config-if)# ip address 172.16.3.2 255.255.255.0 R2(config-if)# exit R2(config)# router eigrp 100 R2(config-router)# network 172.16.0.0 0.0.0.255 R2(config-router)# network 172.16.1.0 0.0.0.255 R2(config-router)# network 172.16.2.0 0.0.0.255 R2(config-router)# network 172.16.3.0 0.0.0.255 R2(config-router)# network 192.168.23.0
R3
R3(config)# router eigrp 100 R3(config-router)# network 192.168.23.0
show ip route eigrp:集約前の R3 のルート
R3 のルーティングテーブルには、R2 の4つのループバックのネットワークが、それぞれ /24 のルートとして入っています。
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
172.16.0.0/24 is subnetted, 4 subnets
D 172.16.0.0 [90/156160] via 192.168.23.2, 00:02:31, FastEthernet0/0.23
D 172.16.1.0 [90/156160] via 192.168.23.2, 00:02:31, FastEthernet0/0.23
D 172.16.2.0 [90/156160] via 192.168.23.2, 00:02:31, FastEthernet0/0.23
D 172.16.3.0 [90/156160] via 192.168.23.2, 00:02:31, FastEthernet0/0.23
| 表示 | 意味 |
|---|---|
| D | EIGRP で学習した内部ルート |
| [90/156160] | アドミニストレーティブディスタンス 90(EIGRP 内部ルート)/メトリック 156160 |
| via 192.168.23.2 | ネクストホップは R2 の 192.168.23.2 |
| FastEthernet0/0.23 | R3 の出力インタフェース |
R2 で経路を集約する
R2 で、R3 へアップデートを送るインタフェース(FastEthernet0/0.23)に ip summary-address eigrp を設定します。集約はインタフェースから送るアップデートに効くので、集約ルートを受け取ってほしい相手の方向のインタフェースに設定します。
R2
R2(config)# interface fastEthernet 0/0.23
R2(config-subif)# ip summary-address eigrp 100 172.16.0.0 255.255.252.0
| 指定 | 意味 |
|---|---|
| eigrp 100 | EIGRP の AS 番号。router eigrp 100 と合わせる |
| 172.16.0.0 | 集約ルートのネットワークアドレス |
| 255.255.252.0 | 集約ルートのサブネットマスク(/22) |
コマンドの最後にはアドミニストレーティブディスタンスも指定できます。省略すると、R2 が自分で持つ集約ルート(後で確認する Null0 のルート)のディスタンスは 5 になります。
設定すると、R2 に次のコンソールログが出ます。
R2
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.3 (FastEthernet0/0.23) is
resync: summary configured
resync: summary configured は、集約の設定が変わったので、ネイバー 192.168.23.3(R3)と経路情報を同期し直したことを示します。down ではないので、ネイバー関係は切れていません。
ネイバーが切れなくても、集約を設定・変更すると、そのインタフェースの先にいるネイバーとの間で経路の入れ替えと再計算が起きます。古い IOS ではネイバー自体がリセットされることもあるため、運用中のネットワークでは影響の出にくい時間帯に作業してください。
集約後のルートを確認する
show ip route eigrp:集約後の R3 のルート
R3 のルーティングテーブルから4つの /24 が消え、172.16.0.0/22 の1つのルートだけになりました。
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
172.16.0.0/22 is subnetted, 1 subnets
D 172.16.0.0 [90/156160] via 192.168.23.2, 00:02:39, FastEthernet0/0.23
メトリックは集約前と同じ 156160 です。EIGRP の集約ルートは、集約の範囲に含まれるルートのうち最も小さいメトリックで広告されます。今回は4つのループバックがすべて同じメトリックなので、その値がそのまま使われています。
show ip route eigrp:R2 にできる Null0 ルート
集約を設定した R2 のルーティングテーブルには、集約ルート 172.16.0.0/22 が、ネクストホップを Null0 インタフェースとして登録されています。
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
172.16.0.0/16 is variably subnetted, 9 subnets, 3 masks
D 172.16.0.0/22 is a summary, 00:03:41, Null0
Null0 は、届いたパケットを破棄するだけの仮想的なインタフェースです。R2 は 172.16.0.0/24〜172.16.3.0/24 の各ループバックのルートも持っているので、存在するネットワーク宛てのパケットは最長一致でそちらへ転送され、Null0 で捨てられるのは /22 の範囲内で行き先のないパケットだけです。このルートのディスタンス(5)は、show ip route 172.16.0.0 255.255.252.0 のように集約ルートを指定して表示すると確認できます。
Null0 ルートがある理由
Null0 ルートは、ルーティングループを防ぐためのものです。たとえば R2 の Loopback3 がダウンして 172.16.3.0/24 が消えても、範囲内の他のルートが残っている限り、R2 は 172.16.0.0/22 の広告を続けます。そのため R3 は、172.16.3.1 宛てのパケットも R2 へ送ってきます。
R2 に Null0 ルートがあれば、このパケットは /22 の Null0 ルートに一致して R2 で破棄されます。Null0 ルートがなく、R2 が R3 方向のデフォルトルートを持っていると、パケットは R3 へ戻され、R3 はまた R2 へ送るので、TTL が尽きるまで2台の間を往復します。
うまくいかないときの確認
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| R3 に /24 のルートが残る | R3 向きではないインタフェースに設定している | R2 の show running-config interface で、R3 側のインタフェースに ip summary-address が入っているか |
| R3 に /22 が届かない | AS 番号の違い、または範囲内のルートが R2 にない | コマンドの AS 番号が router eigrp と同じか。R2 のルーティングテーブルに範囲内のルートがあるか |
| 意図しない宛先が届かなくなる | マスクが短すぎて、別の場所にあるネットワークまで集約範囲に入っている | 集約範囲(今回は 172.16.0.0〜172.16.3.255)と、実際のネットワークの配置を見比べる |
まとめ
| 項目 | 内容 |
|---|---|
| 設定する場所 | 集約ルートを広告したい相手の方向のインタフェース |
| コマンド | ip summary-address eigrp <AS番号> <アドレス> <マスク> |
| 受け取る側(R3) | 4つの /24 の代わりに 172.16.0.0/22 を1つだけ学習する。メトリックは範囲内の最小値 |
| 設定した側(R2) | 172.16.0.0/22 → Null0 のルート(ディスタンス 5)ができ、範囲内で行き先のないパケットを破棄する |
| 設定したとき | ネイバーと経路情報の再同期(resync)が起きる |
コメント