【EIGRP】Passiveインタフェースの設定

EIGRP は、network コマンドの範囲に入ったインタフェースで有効になり、そのインタフェースから Hello パケットを送ります。ところが、端末だけがつながるセグメントのように、ネットワークは広告したいが Hello は送りたくないインタフェースもあります。そこで使うのが passive-interface です。この記事では、端末側のインタフェースを passive にして、Hello が止まり、ルートの広告は続くことを確かめます。

この記事でわかること
  1. network コマンドで有効にしたインタフェースすべてから Hello が出ていること
  2. passive-interface の設定方法
  3. 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 AS 100 Lo02.2.2.2/32Lo03.3.3.3/32 端末R2R3 .1.2.3 192.168.12.0/24 192.168.23.0/24 Fa0/0.12Fa0/0.23
図1 検証構成

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 からだけ送られます。

設定前R2R3Hello192.168.12.0/24 を広告Hello(受け取る相手がいない) passive-interface FastEthernet 0/0.12 の設定後R2R3Hello192.168.12.0/24 を広告Hello を送らないpassive
図2 passive-interface の設定前後

ルートの広告が続いていることを確かめる

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 の送受信と、ネイバー関係
続くものそのインタフェースのネットワークの広告(ほかのネイバーへ)
使う場所端末だけのセグメントなど、ネイバーがいるはずのないインタフェース

コメント