内容

概要

前提条件

要件

使用するコンポーネント

表記法

ネットワーク図

設定

観察

トラブルシューティング

解決方法

「%Warning:Feature not supported in hardware.Tunnel packets will be software switched」

OSPF hello パケットが GRE トンネル経由でルータから送信されましたが、トンネルの反対側に着信しません。

解決方法

関連情報

概要

「%TUN-5-RECURDOWN:Tunnel0 temporarily disabled due to recursive routing」エラー メッセージは、Generic Routing Encapsulation（GRE）トンネル ルータが再帰的ルーティングの問題を検出したことを示しています。この状況は通常、次の 2 つのいずれかが原因で起こります。

- 設定ミスのため、ルータがトンネル インターフェイス自体を使用してトンネルの宛先アドレスにルーティングしようとしている（再帰的ルーティング）。

- ネットワーク内のどこかでルート フラッピングが発生しているため、一時的に不安定になっている。

トンネル インターフェイスのステータスはトンネルの宛先への IP 到達可能性によって決まります。ルータはトンネルの宛先に対する再帰的ルーティング障害を検出すると、その問題を引き起こした状況がルーティング プロトコルのコンバージェンスに伴って自然に解決するように、トンネル インターフェイスを数分間シャットダウンします。問題の原因が設定ミスの場合は、リンクがいつまでもフラッピングし続けるおそれがあります。

この問題のもう 1 つの症状は、Enhanced Interior Gateway Routing Protocol/Open Shortest Path First/Border Gateway Protocol（EIGRP/OSPF/BGP）近接ルータが GRE トンネル上にある場合、それらの近接ルータが継続的にフラッピングすることです。

このドキュメントは、EIGRP が動作しているトンネル インターフェイスが無期限のフラッピング状態に陥った場合のトラブルシューティングの例を示しています。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

ネットワーク図

ルータ 1（R1）とルータ 3（R3）はルータ 2（R2）に接続しています。 R1 は R2 を経由して R3 のループバック インターフェイスに到達可能で、その逆も同様に到達できます。EIGRPはR1とR3のトンネルインターフェイスで実行されています。R2はEIGRPドメインの一部ではありません。

設定

- R1

- R3

R1

hostname R1

!

interface Loopback0

ip address 10.1.1.1 255.255.255.0

!

interface Tunnel0

ip address 192.168.1.1 255.255.255.0

tunnel source Loopback0

tunnel destination 10.3.3.3

!

interface Serial0

ip address 172.16.15.1 255.255.255.0

encapsulation ppp

!

router eigrp 1

network 10.1.1.0 0.0.0.255

network 192.168.1.0

no auto-summary

!

ip route 0.0.0.0 0.0.0.0 172.16.15.2

R3

hostname R3

!

interface Loopback0

ip address 10.3.3.3 255.255.255.0

!

interface Tunnel0

ip address 192.168.1.3 255.255.255.0

tunnel source Loopback0

tunnel destination 10.1.1.1

!

interface Serial1

ip address 172.16.25.3 255.255.255.0

!

router eigrp 1

network 10.3.3.0 0.0.0.255

network 192.168.1.0

no auto-summary

!

ip route 0.0.0.0 0.0.0.0 172.16.25.2

観察

R1とR3で次のエラーメッセージを確認します。トンネルインターフェイスの状態がアップとダウンを継続的に切り替えています。

01:11:39: %LINEPROTO-5-UPDOWN:

Line protocol on Interface Tunnel0, changed state to up

01:11:48: %TUN-5-RECURDOWN:

Tunnel0 temporarily disabled due to recursive routing

01:11:49: %LINEPROTO-5-UPDOWN:

Line protocol on Interface Tunnel0, changed state to down

01:12:49: %LINEPROTO-5-UPDOWN:

Line protocol on Interface Tunnel0, changed state to up

01:12:58: %TUN-5-RECURDOWN:

Tunnel0 temporarily disabled due to recursive routing

01:12:59: %LINEPROTO-5-UPDOWN:

Line protocol on Interface Tunnel0, changed state to down

注：前の出力例のタイムスタンプ付き行は、実際の出力で1行に表示されます。

トラブルシューティング

これは、トンネル インターフェイスがアップする前の、R1 でのトンネルの宛先 10.3.3.3 へのルートです。

R1# show ip route

Codes: C - connected, S - static, I - IGRP, 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, E - EGP

i - IS-IS, 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

Gateway of last resort is 172.16.15.2 to network 0.0.0.0

172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks

C       172.16.15.2/32 is directly connected, Serial0

C       172.16.15.0/24 is directly connected, Serial0

10.0.0.0/24 is subnetted, 1 subnets

C       10.1.1.0 is directly connected, Loopback0

S*   0.0.0.0/0 [1/0] via 172.16.15.2

トンネルの宛先 10.3.3.3 には 172.16.15.2（Serial 0）を経由したデフォルト ルートを通じて到達できます。

次に、トンネル インターフェイスがアップした後のルーティング テーブルを示します。

R1# show ip route

Codes: C - connected, S - static, I - IGRP, 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, E - EGP

i - IS-IS, 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

Gateway of last resort is 172.16.15.2 to network 0.0.0.0

172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

D       172.16.25.0/24 [90/297756416] via 192.168.1.3, 00:00:00, Tunnel0

C       172.16.15.2/32 is directly connected, Serial0

C       172.16.15.0/24 is directly connected, Serial0

10.0.0.0/24 is subnetted, 2 subnets

D       10.3.3.0 [90/297372416] via 192.168.1.3, 00:00:00, Tunnel0

C       10.1.1.0 is directly connected, Loopback0

C    192.168.1.0/24 is directly connected, Tunnel0

S*   0.0.0.0/0 [1/0] via 172.16.15.2

トンネルの宛先 10.3.3.3 への経路は EIGRP を通じて学習されており、そのネクストホップはインターフェイス Tunnel 0 になっています。

この場合、トンネルの宛先までの最適パスはトンネル インターフェイスを経由します。ただし、次のことが起こります。

1. パケットがトンネル インターフェイスの出力キューにキューイングされます。

2. トンネル インターフェイスは GRE ヘッダーを付加し、そのパケットをトンネル インターフェイスの宛先アドレス宛てのトランスポート プロトコルにキューイングします。

3. IP は宛先アドレスまでのルートを探し、そのルートがトンネル インターフェイスを経由することを学習します。このため、パケットは上のステップ 1 に戻ります。これによって再帰的なルーティング ループに陥ります。

解決方法

R1 と R3 の両方で、トンネルの宛先に対してスタティック ルートを設定します。

R1(config)# ip route 10.3.3.3 255.255.255.255  serial 0

R3(config)# ip route 10.1.1.1 255.255.255.255 serial 1

次に R1 の IP ルートを示します。

R1# show ip route

Codes: C - connected, S - static, I - IGRP, 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, E - EGP

i - IS-IS, 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

Gateway of last resort is 172.16.15.2 to network 0.0.0.0

172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

D       172.16.25.0/24 [90/297756416] via 192.168.1.3, 00:01:08, Tunnel0

C       172.16.15.2/32 is directly connected, Serial0

C       172.16.15.0/24 is directly connected, Serial0

10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

S       10.3.3.3/32 is directly connected, Serial0

D       10.3.3.0/24 [90/297372416] via 192.168.1.3, 00:01:08, Tunnel0

C       10.1.1.0/24 is directly connected, Loopback0

C    192.168.1.0/24 is directly connected, Tunnel0

S*   0.0.0.0/0 [1/0] via 172.16.15.2

トンネルの宛先に対して、限定性の低い EIGRP 学習経路（10.3.3.0/24）よりも限定性の高いスタティック ルート（10.3.3.3/32）が優先されています。このように、より限定性の高いスタティック ルートを設定することで、再帰的なルーティング ループとトンネル インターフェイスのフラッピングを回避し、結果的に EIGRP 近接ルータのフラッピングを防止できます。

R1# show interfaces tunnel 0

Tunnel0 is up, line protocol is up

Hardware is Tunnel

Internet address is 192.168.1.1/24

MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation TUNNEL, loopback not set

Keepalive set (10 sec)

Tunnel source 10.1.1.1 (Loopback0), destination 10.3.3.3

「%Warning:Feature not supported in hardware.Tunnel packets will be software switched」

このメッセージは、2 つの異なるトンネルで同じループバックまたは物理アドレスが送信元として使用されると表示されます。このため、すべてのパケットはハードウェアによるスイッチングを受けずに、プロセッサに進みます。

この問題は、ループバック インターフェイスでセカンダリ アドレスを使用するか、トンネル送信元アドレスに複数のループバック インターフェイスを使用すると解決できます。

OSPF hello パケットが GRE トンネル経由でルータから送信されましたが、トンネルの反対側に着信しません。

OSPF対応ネットワークでは、ルータR1はGREトンネル経由でOSPF helloパケットを送信しますが、ルータR3では受信しません。helloイベントをデバッグするには、debug ip ospf helloコマンドを使用します。

R1#debug ip ospf hello

May 31 13:58:29.675 EDT: OSPF: Send hello to 224.0.0.5 area 0.0.0.12 on Tunnel0 from 192.168.1.1

May 31 13:58:39.675 EDT: OSPF: Send hello to 224.0.0.5 area 0.0.0.12 on Tunnel0 from 192.168.1.1

May 31 13:58:49.675 EDT: OSPF: Send hello to 224.0.0.5 area 0.0.0.12 on Tunnel0 from 192.168.1.1

R3#debug ip ospf hello

May 31 15:02:07 ADT: OSPF: Send hello to 224.0.0.5 area 0.0.0.12 on Tunnel0 from 192.168.1.3

May 31 15:02:09 ADT: OSPF: Rcv hello from 172.16.15.1 area 0.0.0.12 from Tunnel0 192.168.1.1

May 31 15:02:09 ADT: OSPF: Send immediate hello to nbr 172.16.15.3, src address 192.168.1.3, on Tunnel0

May 31 15:02:09 ADT: OSPF: Send hello to 224.0.0.5 area 0.0.0.12 on Tunnel0 from 192.168.1.3

!--- The previous output shows that the hello packets !--- re sent by R1 but not received by R3.

解決方法

両方のルータのインターフェイス トンネル 10 で tunnel key コマンドを設定します。このコマンドは、GRE でマルチキャストを有効にします。

関連情報

- GRE トンネルを使用しているときにインターネットをブラウズできない理由

- Enhanced IGRP（EIGRP）テクノロジーに関するサポート