• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

05-三层技术-IP业务配置指导

目录

14-GRE配置

本章节下载 14-GRE配置  (262.93 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500/Configure/Operation_Manual/H3C_S12500_CG-R7128-6W710/05/201211/764178_30005_0.htm

14-GRE配置


1 GRE

1.1  GRE简介

GRE(Generic Routing Encapsulation,通用路由封装)协议用来对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。

1.1.1  GRE封装后的报文格式

图1-1 GRE封装后的报文格式

 

图1-1所示,GRE封装后的报文包括如下几个部分:

·              净荷数据(Payload packet):需要封装和传输的数据报文。净荷数据的协议类型,称为乘客协议(Passenger Protocol)。

·              GRE头(GRE header):系统收到净荷数据后,在净荷数据上添加GRE头,使其成为GRE报文。对净荷数据进行封装的GRE协议,称为封装协议(Encapsulation Protocol)。

·              传输协议的报文头(Delivery header):负责转发封装后报文的网络协议,称为传输协议(Delivery Protocol或者Transport Protocol)。在GRE报文上需要增加传输协议的报文头,以便传输协议对封装后的报文进行转发处理。

图1-1 GRE封装报文举例

 

IPv6报文通过GRE隧道穿越IPv4网络时,报文格式如图1-2所示。其中,乘客协议为IPv6,封装协议为GRE,传输协议为IPv4。

根据传输协议的不同,GRE隧道可以分为:

·              GRE over IPv4:传输协议为IPv4,乘客协议为任意网络层协议。

·              GRE over IPv6:传输协议为IPv6,乘客协议为任意网络层协议。

1.1.2  GRE加解封装过程

图1-2 X协议网络通过GRE隧道互连

 

下面以图1-3的网络为例说明X协议的报文通过GRE隧道穿越IP网络进行传输的过程:

1. 加封装过程

·              Device A连接Group 1的接口收到X协议报文后,首先交由X协议处理;

·              X协议根据报文头中的目的地址,确定如何路由此包;

·              若报文的目的地址要经过GRE隧道才能到达,则Device A将此报文发给相应的Tunnel接口;

·              Tunnel接口收到此报文后先进行GRE封装,再封装IP报文头;

·              Device A根据封装的IP报文头的目的地址,查找路由表,对封装后的报文进行转发。

2. 解封装的过程

解封装过程和加封装过程相反:

·              Device B从Tunnel接口收到IP报文,检查目的地址;

·              如果目的地是本设备,且IP报文头中的协议号为47(表示封装的报文为GRE报文),则Device B剥掉此报文的IP报头,交给GRE协议处理(检验GRE key、检查校验和、检查报文的序列号等);

·              GRE协议完成相应的处理后,剥掉GRE报头,将报文交给X协议进行后续的转发处理。

提示

GRE收发双方的加封装、解封装处理过程,以及由于封装造成的数据量增加,会导致使用GRE后,设备的数据转发效率有一定程度的下降。

 

1.1.3  应用范围

GRE主要应用于以下几种环境:

1. 通过单一协议的骨干网连接采用不同协议的本地网

图1-3 通过单一协议的骨干网连接采用不同协议的本地网

 

图1-4中,Group 1和Group 2是运行IPv6协议的本地网,Team 1和Team 2是运行IP协议的本地网。通过在Device A和Device B之间建立GRE隧道,Group 1和Group 2、Team 1和Team 2可以互不影响地进行通信。

2. 扩大网络的工作范围

图1-4 扩大网络的工作范围

 

在IP网络中,报文的TTL值最大为255。如果两台设备之间的跳数超过255,它们将无法通信。通过在网络中使用GRE隧道可以隐藏一部分跳数,从而扩大网络的工作范围。例如,图1-5中Host A和Host B之间的跳数为3跳,GRE隧道经过的设备中只有隧道两端的设备(Device A和Device D)参与跳数计算。

3. 组建VPN

图1-5 组建VPN

 

图1-6所示,属于VPN 1的两个站点Site 1和Site 2分别位于不同的城市,通过使用GRE隧道可以实现跨越广域网连接VPN 1的两个站点。

1.1.4  协议规范

与GRE相关的协议规范有:

·              RFC 1701:Generic Routing Encapsulation (GRE)

·              RFC 1702:Generic Routing Encapsulation over IPv4 networks

·              RFC 2784:Generic Routing Encapsulation (GRE)

1.2  配置GRE over IPv4隧道

配置GRE over IPv4隧道时,需要注意:

·              Tunnel两端必须都配置隧道的源端地址和目的端地址,且本端配置的源端地址应该与对端配置的目的端地址相同、本端配置的目的端地址应该与对端配置的源端地址相同。

·              使用同种封装协议的Tunnel接口不能同时配置完全相同的源端地址和目的端地址。

·              隧道两端可以根据实际应用的需要决定配置校验和或禁止校验和。如果本端配置了校验和而对端没有配置,则本端将不会对接收到的报文进行校验和检查,但对发送的报文计算校验和;相反,如果本端没有配置校验和而对端已配置,则本端将对从对端发来的报文进行校验和检查,但对发送的报文不计算校验和。

·              配置通过Tunnel转发的路由时,可以手工配置一条静态路由,目的地址是未进行GRE封装的报文的目的地址,下一跳是对端Tunnel接口的地址。也可以在Tunnel接口、与私网相连的设备接口上分别使能动态路由协议,由动态路由协议来建立通过Tunnel转发的路由表项。

·              在Tunnel接口上配置的隧道目的端地址不能与Tunnel接口的地址在同一网段。

配置GRE over IPv4隧道前,需要确保:设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

表1-1 配置GRE over IPv4隧道

操作

命令

说明

进入系统视图

system-view

-

创建模式为GRE over IPv4隧道的Tunnel接口,并进入该Tunnel接口视图

interface tunnel interface-numbe mode gre

缺省情况下,设备上不存在任何Tunnel接口

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的IPv4地址或IPv6地址

IPv4地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IP地址”

IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上没有设置IPv4地址和IPv6地址

乘客协议为IPv4时,需要配置Tunnel接口的IPv4地址;乘客协议为IPv6时,需要配置Tunnel接口的IPv6地址

设置隧道的源端地址或源接口

source { ip-address | interface-type interface-number }

缺省情况下,没有设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

设置隧道的目的端地址

destination ip-address

缺省情况下,没有设置隧道的目的端地址

隧道的目的端地址是对端从GRE隧道上接收报文的实际物理接口的地址,该地址将作为封装后隧道报文的目的地址

(可选)使能GRE的keepalive功能,并配置keepalive报文发送周期及最大发送次数

keepalive [ interval [ times ] ]

缺省情况下,未使能GRE的keepalive功能

退回系统视图

quit

-

 

说明

Tunnel接口的详细介绍,及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”;interface tunnel、sourcedestination命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”。

 

1.3  GRE显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后GRE的运行情况,通过查看显示信息验证配置的效果。

表1-2 GRE的显示和维护

操作

命令

显示Tunnel接口的相关信息(本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“隧道”)

display interface [ tunnel [ number ] ] [ brief ]

显示Tunnel接口的IPv6相关信息(本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”)

display ipv6 interface [ tunnel [ number ] ] [ brief ]

 

1.4  GRE典型配置举例

说明

缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于up。

 

1.4.1  GRE over IPv4典型配置举例

1. 组网需求

Switch A和Switch B之间通过Internet相连,Internet运行IPv4协议。通过在两台交换机之间建立GRE隧道,实现运行IPv4协议的两个私有网络Group 1和Group 2互联。

2. 组网图

图1-6 GRE over IPv4应用组网图

 

3. 配置步骤

说明

在开始下面的配置之前,需确保Switch A和Switch B之间路由可达。

 

(1)      配置Switch A

# 配置接口Vlan-interface100

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port GigabitEthernet 3/0/1

[SwitchA-vlan100] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Vlan-interface101

[SwitchA] vlan 101

[SwitchA-vlan101] port GigabitEthernet 3/0/2

[SwitchA-vlan101] quit

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ip address 1.1.1.1 255.255.255.0

[SwitchA-Vlan-interface101] quit

# 创建Tunnel1接口,并指定隧道模式为GRE over IPv4隧道。

[SwitchA] interface tunnel 1 mode gre

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 10.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(Switch A的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] source vlan-interface 101

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 配置从Switch A经过Tunnel1接口到Group 2的静态路由。

[SwitchA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1

(2)      配置Switch B

# 配置接口Vlan-interface100

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port GigabitEthernet 3/0/1

[SwitchB-vlan100] quit

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 10.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Vlan-interface101

[SwitchB] vlan 101

[SwitchB-vlan101] port GigabitEthernet 3/0/2

[SwitchB-vlan101] quit

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ip address 2.2.2.2 255.255.255.0

[SwitchB-Vlan-interface101] quit

# 创建Tunnel1接口,并指定隧道模式为GRE over IPv4隧道。

[SwitchB] interface tunnel 1 mode gre

# 配置Tunnel1接口的IP地址。

[SwitchB-Tunnel1] ip address 10.1.2.2 255.255.255.0

# 配置Tunnel1接口的源端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchB-Tunnel1] source vlan-interface 101

# 配置Tunnel1接口的目的端地址(Switch A的Vlan-interface101的IP地址)。

[SwitchB-Tunnel1] destination 1.1.1.1

[SwitchB-Tunnel1] quit

# 配置从Switch B经过Tunnel1接口到Group 1的静态路由。

[SwitchB] ip route-static 10.1.1.0 255.255.255.0 Tunnel 1

4. 验证配置

# 完成以上配置后,分别查看Switch ASwitch BTunnel接口状态。

[SwitchA] display interface tunnel 1

Tunnel1 current state: UP

Line protocol current state: UP

Description: Tunnel1 Interface

The Maximum Transmit Unit is 1476

Internet Address is 10.1.2.1/24 Primary

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel bandwidth 64 (kbps)

Tunnel keepalive disabled

Tunnel TTL 255

Tunnel protocol/transport GRE/IP

    GRE key disabled

    Checksumming of GRE packets disabled

Last clearing of counters:  Never

    Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

    Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

    0 packets input, 0 bytes, 0 drops

    0 packets output, 0 bytes, 0 drops

[SwitchB] display interface tunnel 1

Tunnel1 current state: UP

Line protocol current state: UP

Description: Tunnel1 Interface

The Maximum Transmit Unit is 1476

Internet Address is 10.1.2.2/24 Primary

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel bandwidth 64 (kbps)

Tunnel keepalive disabled

Tunnel TTL 255

Tunnel protocol/transport GRE/IP

    GRE key disabled

    Checksumming of GRE packets disabled

Last clearing of counters:  Never

    Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

    Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

    0 packets input, 0 bytes, 0 drops

    0 packets output, 0 bytes, 0 drops

# 从Switch B可以Ping通Switch A上VLAN接口100的地址。

[SwitchB] ping -a 10.1.3.1 10.1.1.1

PING 10.1.1.1 (10.1.1.1) from 10.1.3.1: 56 data bytes

56 bytes from 10.1.1.1: icmp_seq=0 ttl=255 time=11.000 ms

56 bytes from 10.1.1.1: icmp_seq=1 ttl=255 time=1.000 ms

56 bytes from 10.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms

56 bytes from 10.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms

56 bytes from 10.1.1.1: icmp_seq=4 ttl=255 time=0.000 ms

 

--- 10.1.1.1 ping statistics ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/stddev = 0.000/2.400/11.000/4.317 ms

1.5  常见配置错误举例

GRE的配置相对比较简单,但要注意配置的一致性,大部分的错误都可以使用调试命令debugging gredebugging tunnel定位。这里仅就一种错误进行分析。

1. 故障现象

图1-8所示,Tunnel两端接口配置正确且Tunnel两端可以ping通,但Host A和Host B之间却无法ping通。

图1-7 GRE排错示例

 

2. 故障分析

出现该故障的原因可能是Device A或Device C上没有到达对端网络的路由。

3. 故障排除

(1)      在Device A和Device C分别执行display ip routing-table命令,观察在Device A是否有经过Tunnel0接口到10.2.0.0/16的路由;在Device C是否有经过Tunnel0接口到10.1.0.0/16的路由。

(1)      如果不存在上述路由,则在系统视图下使用ip route-static命令添加静态路由。以Device A为例,配置如下:

[DeviceA] ip route-static 10.2.0.0 255.255.0.0 tunnel 0

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们