简介
本文档介绍可能对通用路由封装 (GRE) 隧道接口状态产生影响的各种不同情况。
背景信息
GRE 隧道设计为完全无状态。这意味着每个隧道终端不会保留有关远程隧道终端的状态或可用性的任何信息。
其结果是,默认情况下,如果无法到达隧道的远程端,本地隧道终端路由器将无法使GRE隧道接口的线路协议关闭。
将接口标记为“down”(关闭)的功能(在这种情况下)用于删除路由表中使用该接口作为出站接口的所有静态路由。
具体而言,如果接口的线路协议更改为“down”,则表示该接口的任何静态路由都会从路由表中删除。
这样就可以安装备用(浮动)静态路由,或实施基于策略的路由 (PBR),以便选择备用的下一跳或接口。
此外,当接口更改状态时还会触发其他应用;例如,“backup interface <b-interface>”。
四种不同的隧道状态
GRE隧道接口存在四种可能的状态:
- “打开/打开”- 这意味着隧道完全正常运行并传输流量。它同时处于管理性启用状态,其协议也处于启用状态。
- “管理性关闭/关闭”- 这意味着接口已管理性关闭。
- “打开/关闭”- 这意味着虽然隧道处于管理性打开状态,但某些情况导致了接口上的线路协议处于关闭状态。
- “重置/关闭”- 这通常是在软件重置隧道时发生的瞬时状态。当隧道错误配置了下一跳服务器(NHS)时,通常会发生这种情况。下一跳服务器(NHS)是隧道自己的IP地址。
当首次创建隧道接口且未向其应用其他配置时,默认情况下不会关闭该接口:
Router#show run interface tunnel 1
Building configuration...
Current configuration : 40 bytes
!
interface Tunnel1
no ip address
end
在此状态下,接口始终处于“打开/关闭”状态:
Router(config-if)#do show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 172.16.52.1 YES NVRAM administratively down down
GigabitEthernet0/1 10.36.128.49 YES NVRAM down down
GigabitEthernet0/2 unassigned YES NVRAM down down
GigabitEthernet0/3 unassigned YES NVRAM down down
Loopback1 192.168.2.1 YES NVRAM up up
Tunnel1 unassigned YES unset up down
这是因为接口已管理性启用,但由于它没有隧道源或隧道目的地,因此线路协议会关闭。
要使此接口进入“打开/打开”状态,必须配置有效的隧道源和隧道目的地:
Router#show run interface tunnel 1
Building configuration...
Current configuration : 113 bytes
!
interface Tunnel1
ip address 10.1.1.1 255.255.255.0
tunnel source Loopback1
tunnel destination 10.0.0.1
end
Router#show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 172.16.52.1 YES NVRAM up up
GigabitEthernet0/1 10.36.128.49 YES NVRAM down down
GigabitEthernet0/2 unassigned YES NVRAM down down
GigabitEthernet0/3 unassigned YES NVRAM down down
Loopback0 unassigned YES unset up up
Loopback1 192.168.2.1 YES manual up up
Tunnel1 10.1.1.1 YES manual up up
以上序列信息显示:
- 有效隧道源包括本身处于“打开/打开”状态并已配置 IP 地址的任何接口。
- 例如,如果隧道源已更改为 Loopback0,即使 Loopback0 处于“打开/打开”状态,隧道接口也会关闭:
Router(config)#interface tunnel 1
Router(config-if)#tunnel source loopback 0
Router(config-if)#
*Sep 6 19:51:31.043: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down
- 有效隧道目的地是指可路由的目的地。但是,该目的地不一定可访问,这可通过执行以下 ping 测试来了解:
Router#show ip route 10.0.0.1
% Network not in table
Router#show ip route | inc 0.0.0.0
Gateway of last resort is 172.16.52.100 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 172.16.52.100
Router#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
到目前为止,隧道已配置为点对点 (P2P) GRE 隧道,这是默认设置。
如果将此隧道更改为多点GRE (mGRE)隧道,则up状态所需的全部都是有效的隧道源。
注意:mGRE隧道可以有多个隧道目标,因此不能用于控制隧道接口状态。
Router#show run interface tunnel 1
Building configuration...
Current configuration : 129 bytes
!
interface Tunnel1
ip address 10.1.1.1 255.255.255.0
no ip redirects
tunnel source Loopback1
tunnel mode gre multipoint
end
Router#show ip interface brief | include Tunnel
Tunnel1 10.1.1.1 YES manual up up
如果隧道接口在任何时候被管理性关闭,隧道会立即进入“管理性关闭/关闭”状态:
Router#show run interface tunnel 1
Building configuration...
Current configuration : 50 bytes
!
interface Tunnel1
no ip address
shutdown
end
Router#show ip interface brief | include Tunnel
Tunnel1 unassigned YES unset administratively down down
P2P GRE 隧道状态
P2P GRE隧道接口通常在配置了有效的隧道源地址或启用接口以及可路由的隧道目标IP地址后立即启动(如前所示)。
线路协议在路由器本地关闭
在正常情况下,只有三个原因会导致 GRE 隧道处于“打开/关闭”状态:
- 没有通往隧道目的地址的路由(包括默认路由)。
- 定位隧道源的接口关闭。
- 通往隧道目的地址的路由经过隧道本身,这会导致递归。
这三项规则(missing、路由、接口关闭和错误路由的隧道目标)是隧道端点上路由器的本地问题。
它们不包括中介网络或可以配置的GRE隧道相关其他功能的问题。本文档介绍其他因素可能影响GRE隧道状态的方案。
GRE隧道Keepalive
基本规则不包括成功转发GRE隧道数据包但在到达隧道另一端之前丢失的情况。
这会导致通过GRE隧道的数据包丢失,即使使用PBR的备用路由或通过其他接口的浮动静态路由可能可用。
在 GRE 隧道接口上使用保持连接来解决此问题,这与在物理接口上使用保持连接方式相同。
使用 Cisco IOS® 软件版本 12.2(8)T,可以在 P2P GRE 隧道接口上配置保持连接。通过这一更改,如果 Keepalive 在某一时间段内出现故障,则隧道接口会动态关闭。
为了更好地了解 GRE 隧道保持连接的工作方式,请参阅 GRE 隧道保持连接。
注意:GRE隧道Keepalive仅有效且对P2P GRE隧道有效;它们无效且对mGRE隧道没有任何影响。
带隧道保护功能的 GRE 隧道
在Cisco IOS®软件版本15.4(3)M/15.4(3)S及更高版本中,GRE隧道线路协议状态遵循IPsec安全关联(SA)状态。因此,在IPsec会话完全建立之前,线路协议可以保持关闭。
此问题已使用思科漏洞 ID CSCum34057 提交(最初尝试使用思科漏洞 ID CSCuj29996 提交,后来使用思科漏洞 ID CSCuj99287 进行撤消)。
多点 GRE (mGRE) 隧道接口
对于mGRE隧道接口,以前的一些针对P2P隧道的检查不适用(因为没有固定的隧道目标)。
以下是mGRE隧道线路协议可能处于关闭状态的原因:
- 隧道源接口处于关闭状态。
- 如果为动态多点VPN (DMVPN)启用了接口状态控制功能,并且没有NHS响应,则线路协议将处于关闭状态。
- 有关接口状态控制功能的详细信息,请参阅 DMVPN 隧道运行状况监控和恢复配置指南。
对冗余状态的依赖性
当隧道源 IP 地址被配置为冗余 IP 地址(例如,热备用路由器协议虚拟 IP [HSRP VIP] 地址)时,隧道接口状态会跟踪冗余状态。
这会添加另一项检查,使此类隧道接口一直处于线路协议关闭状态,直到冗余状态更改为ACTIVE。
在此示例中,错误配置的 ipc zone default 配置会导致冗余处于“协商”状态,并使这些隧道接口保持关闭状态:
Router#show redundancy state
my state = 3 -NEGOTIATION
peer state = 1 -DISABLED
Mode = Simplex
Unit ID = 0
Maintenance Mode = Disabled
Manual Swact = disabled (system is simplex (no peer unit))
Communications = Down Reason: Simplex mode
client count = 16
client_notification_TMR = 60000 milliseconds
RF debug mask = 0x0
Router#show interface tunnel100
Tunnel100 is up, line protocol is down
Hardware is Tunnel
Internet address is 172.16.1.100/24
MTU 17912 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 10.122.162.254 (GigabitEthernet0/1)
Tunnel Subblocks:
src-track:
Tunnel100 source tracking subblock associated with GigabitEthernet0/1
Set of tunnels with source GigabitEthernet0/1, 2 members (includes
iterators), on interface <OK>
Tunnel protocol/transport multi-GRE/IP
<SNIP>
故障排除
除上述原因外,还可使用show tunnel interface tunnel x hidden命令查看隧道关闭原因的隧道线路状态评估:
Router#show tunnel interface tunnel 100
Tunnel100
Mode:multi-GRE/IP, Destination UNKNOWN, Source GigabitEthernet0/1
Application ID 1: unspecified
Tunnel Subblocks:
src-track:
Tunnel100 source tracking subblock associated with GigabitEthernet0/1
Set of tunnels with source GigabitEthernet0/1, 2 members (includes
iterators), on interface <OK>
Linestate - current down
Internal linestate - current down, evaluated down - interface not up
Tunnel Source Flags: Local
Transport IPv4 Header DF bit cleared
OCE: IP tunnel decap
Provider: interface Tu100, prot 47
Performs protocol check [47]
Performs Address save check
Protocol Handler: GRE: key 0x64, opt 0x2000
ptype: ipv4 [ipv4 dispatcher: drop]
ptype: ipv6 [ipv6 dispatcher: drop]
ptype: mpls [mpls dispatcher: drop]
ptype: otv [mpls dispatcher: drop]
ptype: generic [mpls dispatcher: drop]
注:通过开放式增强功能,可以更清楚地显示隧道关闭原因,以表明其原因在于冗余状态,因为它不是活动的。此增强功能记录在思科漏洞 ID CSCuq31060 下。
相关信息