【GRE】再帰ルーティングエラー

 GREのトンネル接続先(アンダーレイ)のルート情報をGREトンネル経由(オーバーレイ)で取得すると、以下のようなエラーログが出力され、GREトンネルが確立できません。

%TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing

 これは不用意にアンダーレイのインターフェースにもオーバーレイのインタフェースと同じダイナミックルーティングを設定した場合に発生する可能性があります。

 前回の記事より、R2とR3のスタティックルートを削除して、R2、R3、R5でOSPFを有効にします。

R2(config)#interface Tunnel0
R2(config-if)# ip address 192.168.235.2 255.255.255.0
R2(config-if)# tunnel source 169.254.25.2
R2(config-if)# tunnel destination 169.254.35.3
R2(config-if)#exit   
R2(config)#router ospf 1
R2(config-router)# network 169.254.0.0 0.0.255.255 area 0
R2(config-router)# network 192.168.12.0 0.0.0.255 area 0
R2(config-router)# network 192.168.235.0 0.0.0.255 area 0
R2(config-router)#exit
R3(config)#interface Tunnel0
R3(config-if)# ip address 192.168.235.3 255.255.255.0
R3(config-if)# tunnel source 169.254.35.3
R3(config-if)# tunnel destination 169.254.25.2
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)# network 169.254.0.0 0.0.255.255 area 0
R3(config-router)# network 192.168.34.0 0.0.0.255 area 0
R3(config-router)# network 192.168.235.0 0.0.0.255 area 0
R3(config-router)#exit
R5(config)#router ospf 1
R5(config-router)# network 169.254.0.0 0.0.255.255 area 0

 R2のルーティングテーブルを確認します。

R2#show ip route ospf

      169.254.0.0/16 is variably subnetted, 3 subnets, 2 masks
O        169.254.35.0/24 
           [110/2] via 169.254.25.5, 00:17:55, FastEthernet0/0.25 
O     192.168.34.0/24 [110/3] via 169.254.25.5, 00:17:55, FastEthernet0/0.25

 オーバレイであるトンネルインタフェースではなく、アンダーレイの物理インターフェースからルート情報を受信しています。なぜ、トンネルインタフェース経由にならないのでしょうか。それは、トンネルインタフェースのOSPFコストがデフォルトで1000と物理インタフェースより高いためです。このように、デフォルトでは、物理インタフェースとトンネルインタフェースでOSPFが有効の場合、コストの低い物理インターフェース上でルート情報を交換しようとします。

R2#show ip ospf interface 
FastEthernet0/0.25 is up, line protocol is up 
  Internet Address 169.254.25.2/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1 
・・・
Tunnel0 is up, line protocol is up 
  Internet Address 192.168.235.2/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 1000 

 では、R5のインタフェースで、OSPFのコストを10000に設定します。これで、物理インタフェースではなく、トンネルインタフェース上でルート情報を交換させます。

R5(config)#interface FastEthernet0/0.25 
R5(config-subif)#ip ospf cost 10000 
R5(config-subif)#exit 
R5(config)#interface FastEthernet0/0.35 
R5(config-subif)#ip ospf cost 10000 

 そして、R5でOSPFのプロセスを再起動します。

R5#clear ip ospf process 
Reset ALL OSPF processes? [no]: yes

 すると、R2とR3でトンネルインタフェースがアップ、ダウンを繰り返し、不安定になります。

R2#
%TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up

%TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down

 R2のルーティングテーブルを見ると、トンネル接続先のルート情報(169.254.35.0/24)を一時的に、アンダーレイ経由で受信しています。

R2#show ip route ospf
      169.254.0.0/16 is variably subnetted, 3 subnets, 2 masks
O        169.254.35.0/24 
           [110/10001] via 169.254.25.5, 00:00:26, FastEthernet0/0.25
O     192.168.34.0/24 
           [110/10002] via 169.254.25.5, 00:00:26, FastEthernet0/0.25

 そこで、トンネルインタフェースがアップし、経路情報(169.254.35.0/24)がトンネルインタフェース経由になります。

R2#
 %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up

R2#show ip route ospf
O      169.254.35.0/24 [110/1001] via 192.168.235.3, 00:00:04, Tunnel0
O     192.168.34.0/24 [110/1001] via 192.168.235.3, 00:00:04, Tunnel0

 ただし、R2では、169.254.35.0/24はトンネルを張るために必要な経路であって、トンネル経由で受信していることは矛盾をしています。 そこで、%TUN-5-RECURDOWN: Tunnel0 temporarily disabled due to recursive routing の再帰エラーを出力し、トンネルインタフェースがダウンします。

 これ以後、トンネルインタフェースのアップ、ダウンをずっと繰り返します。

 再起エラーが出た場合は、アンダーレイの経路情報をオーバーレイネットワーク経由で学習しようとしていないか確認してみてください。

コメント