26-GRE
本章节下载 (800.33 KB)
目 录
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE是Tunnel(隧道)技术的一种,属于第三层隧道协议。
GRE隧道是一个虚拟的点对点的连接,为封装的数据报文提供了一条传输通路,GRE隧道的两端分别对数据报进行封装及解封装。
图1-1 X协议网络通过GRE隧道互连
下面以图1-1的网络为例说明X协议的报文穿越IP网络在GRE隧道中传输的过程。
l Device A连接Group 1的接口收到X协议报文后,首先交由X协议处理。
l X协议检查报文头中的目的地址域来确定如何路由此包。
l 若报文的目的地址要经过Tunnel才能到达,则设备将此报文发给相应的Tunnel接口。
l Tunnel接口收到此报文后进行GRE封装,在封装IP报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。
封装后的报文的形式如图1-2所示。
举例来说,一个封装在IP Tunnel中的X协议报文的格式如图1-3所示。
图1-3 IP Tunnel中传输报文的格式
需要封装和传输的数据报文,称之为净荷(Payload),净荷的协议类型为乘客协议(Passenger Protocol)。系统收到一个净荷后,首先使用封装协议(Encapsulation Protocol)对这个净荷进行GRE封装,即把乘客协议报文进行了“包装”,加上了一个GRE头部成为GRE报文;然后再把封装好的原始报文和GRE头部封装在IP报文中,这样就可完全由IP层负责此报文的前向转发(Forwarding)。通常把这个负责前向转发的IP协议称为传输协议(Delivery Protocol或者Transport Protocol)。
根据传输协议的不同,可以分为GRE over IPv4和GRE over IPv6两种隧道模式。
解封装过程和加封装的过程相反。
l Device B从Tunnel接口收到IP报文,检查目的地址。
l 如果发现目的地是本设备,则Device B剥掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等)。
l GRE协议完成相应的处理后,剥掉GRE报头,再交由X协议对此数据报进行后续的转发处理。
GRE收发双方的加封装、解封装处理,以及由于封装造成的数据量增加,会导致使用GRE后设备的数据转发效率有一定程度的下降。
为了提高GRE隧道的安全性,GRE还支持由用户选择设置Tunnel接口的识别关键字(或称密钥),和对隧道封装的报文进行端到端校验。
在RFC1701中规定:
l 若GRE报文头中的Key标识位置1,则收发双方将进行通道识别关键字的验证,只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。
l 若GRE报文头中的Checksum标识位置1,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进行进一步处理,否则丢弃。
GRE主要应用于以下几种环境:
图1-4中,Group 1和Group 2是运行Novell IPX协议的本地网,Team 1和Team 2是运行IP协议的本地网。通过在Device A和Device B之间采用GRE协议封装的隧道,Group 1和Group 2、Team 1和Team 2可以互不影响地进行通信。
两台终端之间的跳数超过15,它们将无法通信。通过在网络中使用隧道可以隐藏一部分跳数,从而扩大网络的工作范围。
图1-6 Tunnel连接不连续子网
运行Novell IPX协议的两个子网Group 1和Group 2分别在不同的城市,通过使用隧道可以实现跨越广域网的VPN。
图1-7 GRE-IPSec隧道应用
GRE可以和IPSec结合使用,即对于路由协议、语音、视频等数据先进行GRE封装,再对封装后的报文进行IPSec的加密处理,以提高数据在隧道中传输的安全性。
GRE与IPSec结合使用的支持情况与设备的型号有关,请以设备的实际情况为准。
与GRE相关的协议规范有:
l RFC1701:Generic Routing Encapsulation (GRE)
l RFC1702:Generic Routing Encapsulation over IPv4 networks
l RFC2784:Generic Routing Encapsulation (GRE)
Web目前仅支持对GRE over IPv4隧道的配置。
设备上的接口(如VLAN接口、Ethernet接口、Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
GRE over IPv4隧道配置的推荐步骤如表1-1所示。
表1-1 GRE over IPv4隧道配置步骤
步骤 |
配置任务 |
说明 |
1 |
必选 新建Tunnel接口,并配置GRE隧道的相关参数 |
|
2 |
配置通过隧道的路由 |
可选 在源端设备和目的端设备上都必须存在经过隧道转发的路由,这样需要进行GRE封装的报文才能正确转发。可以选择配置静态路由,也可以选择配置动态路由。在隧道的两端都要进行此项配置 详细配置请参见“路由设置” |
在导航栏中选择“VPN > GRE”,进入如图1-8所示的页面。单击<新建>按钮,进入新建GRE隧道的页面,如图1-9所示。
新建GRE隧道的详细配置如表1-2所示。
表1-2 新建GRE隧道的详细配置
配置项 |
说明 |
Tunnel接口编号 |
设置Tunnel接口的编号 |
IP地址/掩码 |
设置Tunnel接口的IP地址和子网掩码 在Tunnel接口配置的静态路由的目的地址不能与Tunnel接口的IP地址在同一网段 |
隧道源端地址/接口 |
设置Tunnel接口的隧道源端IP地址和隧道目的端IP地址 对于隧道源端地址,可以手动输入一个IP地址;也可以选择一个接口,用该接口的主IP地址作为隧道源端地址 隧道的源端地址与目的端地址唯一标识了一个隧道。隧道两端必须配置源端地址与目的端地址,且两端地址互为源端地址和目的端地址 |
隧道目的端地址 |
|
GRE密钥 |
设置Tunnel接口的密钥,通过这种弱安全机制防止错误地识别或接收其它地方来的报文 隧道两端要么设置相同的密钥,要么都不设置密钥 |
GRE报文校验和功能 |
设置是否启用Tunnel接口的GRE报文校验和功能,从而验证报文的正确性,并丢掉验证不通过的报文 |
发送Keepalive报文 |
设置是否启用GRE的keepalive功能,探测Tunnel接口的状态 当启用了发送Keepalive报文后,设备会从Tunnel口定期发送GRE的keepalive报文。如果在指定的间隔时间内没有收到隧道对端的回应,则本端重新发送keepalive报文。如果超过指定的最大发送次数后仍然没有收到对端的回应,则把本端Tunnel口的协议连接down掉。如果Tunnel口为down状态,当收到对端回复的Keepalive确认报文时,Tunnel接口的状态将转换为up,否则保持down状态 |
发送Keepalive报文间隔 |
设置发送Keepalive报文的时间间隔和最大发送次数 当选择“启用”发送Keepalive报文时可以配置此两项 |
发送Keepalive报文次数 |
可点击返回“表1-1 GRE over IPv4隧道配置步骤”。
Router A和Router B之间通过Internet相连。运行IP协议的私有网络的两个子网Group 1和Group 2,通过在两台设备之间使用GRE建立隧道实现互联。
在开始下面的配置之前,需确保Router A和Router B之间路由可达。
(1) 配置Router A
# 配置接口Ethernet0/0的IP地址。
l 在Router A的导航栏中选择“接口配置 > WAN接口设置”,单击接口Ethernet0/0对应的图标,进行如下配置,如图1-11所示。
l 选择连接模式为“手动指定IP地址”。
l 输入IP地址为“10.1.1.1”。
l 选择子网掩码为“24 (255.255.255.0)”。
l 单击<确定>按钮完成操作。
# 配置接口Ethernet0/1(隧道的实际物理接口)的IP地址。
l 单击接口Ethernet0/1对应的图标,进行如下配置,如图1-12所示。
l 选择连接模式为“手动指定IP地址”。
l 输入IP地址为“1.1.1.1”。
l 选择子网掩码为“24 (255.255.255.0)”。
l 单击<确定>按钮完成操作。
# 新建GRE隧道。
l 在导航栏中选择“VPN > GRE”,单击<新建>按钮,进行如下配置,如图1-13所示。
l 输入Tunnel接口编号为“0”。
l 输入IP地址/掩码为“10.1.2.1/24”。
l 输入隧道源端地址为“1.1.1.1”(Ethernet0/1的IP地址)。
l 输入隧道目的端地址为“2.2.2.2”(Router B的Ethernet0/1的IP地址)。
l 单击<确定>按钮完成操作。
# 配置从Router A经过Tunnel0接口到Group 2的静态路由。
l 在导航栏中选择“高级配置 > 路由设置”,单击“创建”页签,进行如下配置,如图1-14所示。
图1-14 配置从Router A经过Tunnel0接口到Group 2的静态路由
l 输入目的IP地址为“10.1.3.0”。
l 输入掩码为“24”。
l 选中“接口”前的复选框,选择出接口为“Tunnel0”。
l 单击<应用>按钮完成操作。
(2) 配置Router B
# 配置接口Ethernet0/0的IP地址。
l 在Router B的导航栏中选择“接口配置 > WAN接口设置”,单击接口Ethernet0/0对应的图标,进行如下配置,如图1-15所示。
l 选择连接模式为“手动指定IP地址”。
l 输入IP地址为“10.1.3.1”。
l 选择子网掩码为“24 (255.255.255.0)”。
l 单击<确定>按钮完成操作。
# 配置接口Ethernet0/1(隧道的实际物理接口)的IP地址。
l 单击接口Ethernet0/1对应的图标,进行如下配置,如图1-16所示。
l 选择连接模式为“手动指定IP地址”。
l 输入IP地址为“2.2.2.2”。
l 选择子网掩码为“24 (255.255.255.0)”。
l 单击<确定>按钮完成操作。
# 新建GRE隧道。
l 在导航栏中选择“VPN > GRE”,单击<新建>按钮,进行如下配置,如图1-17所示。
l 输入Tunnel接口编号为“0”。
l 输入IP地址/掩码为“10.1.2.2/24”。
l 输入隧道源端地址为“2.2.2.2”(Ethernet0/1的IP地址)。
l 输入隧道目的端地址为“1.1.1.1”(Router A的Ethernet0/1的IP地址)。
l 单击<确定>按钮完成操作。
# 配置从Router B经过Tunnel0接口到Group 1的静态路由。
l 在导航栏中选择“高级配置 > 路由设置”,单击“创建”页签,进行如下配置,如图1-18所示。
图1-18 配置从Router B经过Tunnel0接口到Group 1的静态路由
l 输入目的IP地址为“10.1.1.0”。
l 输入掩码为“24”。
l 选中“接口”前的复选框,选择出接口为“Tunnel0”。
l 单击<应用>按钮完成操作。
# 完成以上配置后,从Router B可以Ping通Router A上Ethernet0/0接口的地址。
l 在Router B的导航栏中选项“辅助工具 > 诊断工具”,单击“Ping”页签。
l 输入Ping的目的地址为“10.1.1.1”。
l 单击<开始>按钮。
l 在“概要信息”框中可以查看到如图1-19所示的Ping操作结果。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!