IP : 通用路由封装 (GRE)

GRE Keepalive如何工作

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文提供概述通用路由封装(GRE) Keepalive如何工作。

先决条件

要求

本文档的读者应掌握以下这些主题的相关知识:

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • 思科7505路由器

  • 思科IOS�软件该支持IPSec的GRE

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

背景信息

GRE保活功能启用Keepalive interface命令为通道,并且允许您配置点到点GRE隧道的Keepalive。您能配置Keepalive用保活命令和或者与其新的分机。

GRE隧道提供一个方法封装任意数据包在传输协议里面。他们也提供设计的体系结构提供要求的服务实现所有标准的点对点封装方案。这是某些GRE隧道优点:

  • GRE隧道提供在单协议骨干网的多协议本地网络。

  • GRE隧道为包含与有限的跳数的协议的网络提供应急方案。

  • GRE隧道连接不连续的子网络。

  • GRE隧道允许在WAN间的VPN。

然而,如果远端是不可得到的,在GRE隧道的当前实施,配置的隧道没有能力减少任一个隧道终点线路通信协议。因此,从通道发送的流量黑洞,并且不能跟随备选路径,因为通道总是坚持。

这个情况是可靠对于依靠在静态路由或该的路由协议会聚路由查找路由到隧道目的地的通道。也是真的在控制飞机的数据跟随从数据的一个不同的路径在数据飞机的情况。

隧道保活机制

此部分为隧道保活机制提供一功能描述在示例帮助下。此部分也列出此功能修改的软件元素,并且讨论在内存和性能的影响。

功能描述

隧道保活机制启用,扩大并且执行一interface-specific命令隧道接口的,并且提供能力减少通道的线路通信协议。欲知更多信息,请参阅命令和配置部分

隧道保活机制也解决这些另外的需求:

  • 隧道保活机制作用,即使更隧道终点不支持Keepalive。

  • 隧道保活机制产生Keepalive。

  • 隧道保活机制处理Keepalive。

  • 隧道保活机制回复到远端的keepalive数据包,既使当通道的线路通信协议发生故障。

这是示例隧道保活机制如何工作(请参见图1)

图1 –隧道保活机制的示例

/image/gif/paws/63760/F1_63760a.gif

输出

interface tunnel 0                       interface tunnel 0
ip address 1.1.1.1 255.255.255.240       ip address 1.1.1.2 255.255.255.240
tunnel source 128.8.8.8                  tunnel source 129.9.9.9
tunnel destination 129.9.9.9             tunnel destination 128.8.8.8
keepalive 5 4                            keepalive 5 4
interface loopback 0                     interface loopback 0
ip address 128.8.8.8 255.255.255.255     ip address 129.9.9.9 255.255.255.255

起源于A到B的keepalive数据包

       ---outer IP header---'      ---inner IP header---'
       =============================================================
       |IP | IP src  | IP dst  | GRE | IP | IP src  | IP dst  | GRE |
       |   |128.8.8.8|129.9.9.9|PT=IP|    |129.9.9.9|128.8.8.8| PT=0|
       =============================================================
                               ----'                         ---'
                                GRE header                    GRE header

当您启用在路由器A时隧道终点的Keepalive,在每个间隔的路由器修建内在IP报头。在报头结束时,路由器也不添附与协议类型(PT)的一个GRE报头0和其他有效负载。路由器通过通道,导致其与外面IP报头的封装和与IP PT的一个GRE报头然后发送该数据包。由一个的隧道保活计数器增量。如果有方式到达远端的隧道终点,并且通道线路通信协议不是在于下其他原因,数据包在路由器B.到达。它然后匹配隧道0,是已解封的,并且转发对目的地IP,是隧道源,路由器在路由器A的A. Upon到达,数据包再被解封装,并且PT被检查。如果PT检查的结果是0,表示这是keepalive数据包。在这种情况下,隧道保活计数器重置到0,并且数据包丢弃。

万一路由器B是不可得到的,路由器A继续与正常流量一起修建和发送keepalive数据包。如果线路通信协议发生故障, Keepalive不回来到路由器A。所以,保活计数器继续增加。通道线路通信协议比配置值坚持,只有只要隧道保活计数器依然是零,或者较少。如果该情况不是真的,当下次您尝试发送Keepalive到路由器B,线路通信协议减少,当保活计数器达到已配置的keepalive值。除keepalive数据包外,在上下状态下,通道不转发也不处理任何流量。为了使此仅工作为keepalive数据包,通道一定是转发和接收友好的。因此,如果线路通信协议发生故障,通道查找算法一定在所有的情况下是成功的,并且必须丢弃仅数据包。当keepalive数据包接收时,暗示隧道终点再可及的。隧道保活计数器然后重置到0,并且线路通信协议恢复。

内存和性能影响

功能在路由器系统内存不放置几乎另外的需求,并且性能由其新增内容预计依然是未受影响。Keepalive数据包被对待作为普通的数据包,和,因此很可能,他们可以在高流量情况下丢弃。此刻,您能更改重试次数数量处理此问题。如果这最终证明不适于的,您在发射的一个高优先级队列能放置本地生成的keepalive数据包。除默认或配置值之外,您能然后设置在IP头的TOS值为一个更加适当的值。

包的考虑事项

功能包括在基本IP隧道代码和在GRE子系统。所以,它一定取得到用有通道和GRE子系统的一个基本IP包。

命令和配置

此部分寻址此功能启用和仅扩展的保活命令在Cisco Bug ID CSCuk26449下。其他命令在respectiveCisco IOS配置指南和命令参考描述。[no] Keepalive <period> <retries>命令启用并且扩展与第二个参数,并且是可用的在Cisco IOS软件版本12.2(8)T及以上版本。它也被移植在Cisco Bug ID CSCuk29980和CSCuk29983下对Cisco IOS软件版本12.1E和12.2S。

因为Keepalive是启用在隧道接口的Keepalive的接口配置命令,只有当前支持GRE/IP模式的Keepalive。命令(重试次数)的第二个参数为隧道接口是可视和仅可用的。第一个参数的值能范围自1到32767。当值是0时,与“no keepalive”是等同的。此参数有默认值为10。第二个参数的值能范围自1到255,并且指示被发送,但是没有返回Keepalive的编号,在后隧道接口拉下线路通信协议。在隧道接口的默认情况下Keepalive禁用。

输出示例:和屏面格式

此部分提供输出示例:。

cisco-7505#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
cisco-7505(config)#interface tunnel 1
cisco-7505(config-if)#?
  access-expression   Build a bridge boolean access expression
  ……………
  keepalive           Enable keepalive			<=====
  ……………
  timeout             Define timeout values for this interface

cisco-7505(config-if)#keepalive ?				<=====
  <0-32767>  Keepalive period (default 10 seconds)

cisco-7505(config-if)#keepalive 5 ?				<=====
  <1-255>    Keepalive retries (default 3 times)
cisco-7505(config-if)#keepalive 5 4				<=====
cisco-7505(config-if)#end

cisco-7505#show interfaces tunnel 1

Tunnel1 is up, line protocol is up 
  Hardware is Tunnel
  Internet address is 10.1.1.1/24
  MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, rely 255/255, load 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive set (5 sec), retries 4				<=====
  Tunnel source 9.2.2.1, destination 6.6.6.2
  Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled
  Tunnel TOS 0xF, Tunnel TTL 128
  Checksumming of packets disabled, fast tunneling enabled
  Last input never, output 00:57:05, output hang never
  Last clearing of "show interface" counters never
  Queueing strategy: fifo
  Output queue 0/0, 1 drops; input queue 0/75, 0 drops
  30 second input rate 0 bits/sec, 0 packets/sec
  30 second output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     3 packets output, 1860 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 output buffer failures, 0 output buffers swapped out

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 63760