EIGRP は、network コマンドの範囲に入ったインタフェースで有効になり、そのインタフェースから Hello パケットを送ります。ところが、端末だけがつながるセグメントのように、ネットワークは広告したいが Hello は送りたくないインタフェースもあります。そこで使うのが passive-interface です。この記事では、端末側のインタフェースを passive にして、Hello が止まり、ルートの広告は続くことを確かめます。
- network コマンドで有効にしたインタフェースすべてから Hello が出ていること
passive-interfaceの設定方法- passive にしたインタフェースのネットワークが引き続き広告されること
passive-interface とは
passive-interface を設定したインタフェースでは、EIGRP は Hello を送りません。Hello を送受信しないので、そのインタフェースではネイバーにならず、ルート情報のやり取りもしません。一方で、インタフェースのネットワーク自体は EIGRP のトポロジテーブルに残り、ほかのインタフェースのネイバーへ広告されます。
端末だけのセグメントに Hello を送り続けると、無駄な処理になるだけでなく、そのセグメントに EIGRP を話す機器を置かれたときに、ネイバーになってルートを受け取ったり、偽のルートを流し込まれたりするおそれがあります。ネイバーがいるはずのないインタフェースは passive にしておくのが基本です。
検証構成
R2 の Fa0/0.12 には端末だけがつながり、EIGRP のルータはいません。R2 と R3 は 192.168.23.0/24 で EIGRP AS 100 のネイバーになります。
EIGRP を有効にする
R2 では、ループバック、端末側の 192.168.12.0、R3 側の 192.168.23.0 を EIGRP に参加させます。
R2
R2(config)# router eigrp 100
R2(config-router)# network 2.2.2.2 0.0.0.0
R2(config-router)# network 192.168.12.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
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.2 (FastEthernet0/0.23)
is up: new adjacency
show ip route eigrp:R3 が学習したルート
R3 は、R2 のループバック 2.2.2.2/32 と、端末側のセグメント 192.168.12.0/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
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/156160] via 192.168.23.2, 00:10:04, FastEthernet0/0.23
D 192.168.12.0/24
[90/30720] via 192.168.23.2, 00:03:11, FastEthernet0/0.23
debug eigrp packets:R2 が送っている Hello
R2 で debug eigrp packets を有効にすると、R3 側の Fa0/0.23 だけでなく、端末側の Fa0/0.12 からも Hello を送っています。
R2
R2# debug eigrp packets
(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB,
SIAQUERY, SIAREPLY)
EIGRP Packet debugging is on
R2#
*Sep 22 05:11:43.915: EIGRP: Sending HELLO on Fa0/0.23 - paklen 20
*Sep 22 05:11:43.915: AS 100, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0
*Sep 22 05:11:43.919: {type = 1, length = 12}
*Sep 22 05:11:43.919: {vector = {
*Sep 22 05:11:43.923: {01000100 0000000F}
*Sep 22 05:11:43.931: }
*Sep 22 05:11:43.931: {type = 4, length = 8}
*Sep 22 05:11:43.935: {vector = {
*Sep 22 05:11:43.935: {0A000200}
*Sep 22 05:11:43.939: }
*Sep 22 05:11:44.787: EIGRP: Sending HELLO on Fa0/0.12 - paklen 20
*Sep 22 05:11:44.787: AS 100, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0
*Sep 22 05:11:44.791: {type = 1, length = 12}
*Sep 22 05:11:44.791: {vector = {
*Sep 22 05:11:44.791: {01000100 0000000F}
*Sep 22 05:11:44.795: }
*Sep 22 05:11:44.795: {type = 4, length = 8}
*Sep 22 05:11:44.795: {vector = {
*Sep 22 05:11:44.795: {0A000200}
*Sep 22 05:11:44.795: }
Fa0/0.12 の先には EIGRP のルータがいないので、この Hello は誰にも受け取られません。なお、この debug では、ループバックからは Hello は送られていませんでした。
端末側のインタフェースを passive にする
router eigrp の中で、Hello を止めたいインタフェースを passive-interface で指定します。
R2
R2(config)# router eigrp 100
R2(config-router)# passive-interface FastEthernet 0/0.12
もう一度 R2 で debug eigrp packets を有効にすると、Fa0/0.12 からの Hello は送られなくなり、Fa0/0.23 からだけ送られます。
ルートの広告が続いていることを確かめる
R3 のルーティングテーブルには、設定後も 192.168.12.0/24 が残っています。Hello を止めても、ネットワークの広告は続いています。
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:21:38, FastEthernet0/0.23
D 192.168.12.0/24
[90/30720] via 192.168.23.2, 00:14:45, FastEthernet0/0.23
ネイバーがいるインタフェースより、いないインタフェースの方が多い場合は、passive-interface default ですべてを passive にしてから、ネイバーを張るインタフェースだけ no passive-interface で外す方法もあります。新しくインタフェースを追加したときに、passive の設定漏れを防げます。
うまくいかないときの確認
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| passive にしたらネイバーが落ちた | ネイバーがいるインタフェースを passive にした | show ip protocols の Passive Interface(s) に、ネイバー側のインタフェースが入っていないか |
| passive にしたネットワークが広告されない | そのネットワークが network コマンドの範囲に入っていない | network の範囲と、インタフェースのアドレスを見比べる |
まとめ
| 項目 | 内容 |
|---|---|
| コマンド | passive-interface <インタフェース>(router eigrp の中) |
| 止まるもの | そのインタフェースでの Hello の送受信と、ネイバー関係 |
| 続くもの | そのインタフェースのネットワークの広告(ほかのネイバーへ) |
| 使う場所 | 端末だけのセグメントなど、ネイバーがいるはずのないインタフェース |
コメント