一 理论
1 GRE 概念
GRE(Generic Routing Encapsulation,通用路由封装)协议用来对某种协议(如IP、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IP)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。
2 GRE 协议
如 图1-1所示,GRE封装后的报文包括如下几个部分:
· 净荷数据(Payload packet):需要封装和传输的数据报文。净荷数据的协议类型,称为乘客协议(Passenger Protocol)。乘客协议可以是任意的网络层协议。
· GRE头(GRE header):采用GRE协议对净荷数据进行封装所添加的报文头,包括封装层数、版本、乘客协议类型、校验和信息、Key信息等内容。添加GRE头后的报文称为GRE报文。对净荷数据进行封装的GRE协议,称为封装协议(Encapsulation Protocol)。
· 传输协议的报文头(Delivery header):在GRE报文上添加的报文头,以便传输协议对GRE报文进行转发处理。传输协议(Delivery Protocol或者Transport Protocol)是指负责转发GRE报文的网络层协议。设备支持IPv4和IPv6两种传输协议:当传输协议为IPv4时,GRE隧道称为GRE over IPv4隧道;当传输协议为IPv6时,GRE隧道称为GRE over IPv6隧道。
3 GRE 原理
(1) Device A从连接IPv6 network 1的接口收到IPv6报文后,查找路由表判定此报文需要通过GRE隧道模式的Tunnel接口(本例中为Tunnel0)转发,并将报文发给相应的Tunnel接口。
(2) GRE隧道模式的Tunnel接口收到此IPv6报文后,先在报文前封装上GRE头,再封装上IPv4头。IPv4头中的源地址为隧道的源端地址(本例中为Device A的Interface A接口的IP地址),目的地址为隧道的目的端地址(本例中为Device B的Interface B接口的IP地址)。
(3) Device A根据封装的IPv4头中的目的地址查找路由表,将封装后的IPv4报文通过GRE隧道的实际物理接口(Interface A)转发出去。
(4) 封装后的IPv4报文通过GRE隧道到达隧道的目的端设备Device B后,由于报文的目的地是本设备,且IPv4头中的协议号为47(表示封装的报文为GRE报文),Device B将此报文交给GRE协议进行解封装处理。
(5) GRE协议先剥离掉此报文的IPv4头,再对报文进行GRE Key验证、校验和验证、报文序列号检查等处理,处理通过后再剥离掉报文的GRE头,将报文交给IPv6协议进行后续的转发处理。
4 GRE 配置思路
(1) 进入系统视图。
system-view
(2) 创建模式为GRE over IPv4隧道的Tunnel接口,并进入该Tunnel接口视图。
interface tunnel number mode gre
在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败。
(3) 根据乘客协议,设置Tunnel接口的IP地址。
(IPv4网络)
IPv4地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IP地址”。
(IPv6网络)
IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
缺省情况下,Tunnel接口上未设置IP地址。
ip address 30.30.30.1 255.255.255.0
(4) 设置隧道的源端地址或源接口。
source { ip-address | interface-type interface-number }
缺省情况下,未设置隧道的源端地址和源接口。
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv4地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IPv4地址。
(5) 设置隧道的目的端地址。
destination ip-address
缺省情况下,未设置隧道的目的端地址。
隧道的目的端地址是对端从GRE隧道上接收报文的实际物理接口的地址,该地址将作为封装后隧道报文的目的IPv4地址。该地址不能与Tunnel接口的地址在同一网段。
(6) (可选)开启GRE的keepalive功能,并配置keepalive报文发送周期及最大发送次数。
keepalive [ interval [ times ] ]
缺省情况下,GRE的keepalive功能处于关闭状态。
(7) (可选)配置GRE安全功能。
? 开启GRE报文校验和功能。
gre checksum
缺省情况下,GRE报文校验和功能处于关闭状态。
? 设置GRE类型Tunnel接口的GRE Key。
gre key key
缺省情况下,未设置GRE类型Tunnel接口的GRE Key。
隧道两端必须设置相同的GRE Key,或者都不设置GRE Key。
(8) (可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志。
tunnel dfbit enable
缺省情况下(默认情况下),未设置隧道报文的不分片标志,即转发隧道报文时允许分片。
二 实操
FW1 脚本
FW2 脚本
R1 脚本
GRE 测试
三 脚本技术解析
- IRF(Intelligent Resilient Framework):IRF是华三交换机的高可用性技术,可以将多台交换机虚拟化为单个逻辑设备,提供冗余和容错功能。
- VLAN:虚拟局域网(VLAN)是将局域网划分为多个逻辑网段的技术,可以增强网络的安全性和性能。
- 接口配置:配置了各个物理接口(GigabitEthernet1/0/0到GigabitEthernet1/0/23)的链路模式、协议类型和IP地址。
- 安全区域(Security Zone):安全区域将不同的接口划分到不同的安全域中,可以实现流量隔离和安全策略。
- 用户角色(User Role):配置了用户角色,用于授权不同用户访问交换机的权限。
- SSH、Telnet和HTTP/HTTPS管理:配置了通过SSH、Telnet、HTTP和HTTPS协议对交换机进行远程管理。
- IP路由:配置了静态路由,用于指定数据包的转发路径。
- 安全策略(Security Policy):配置了IP层面的安全策略,包括允许或禁止特定源和目的IP地址之间的通信。
- GRE(Generic Routing Encapsulation)是一种隧道协议,可用于在不同的网络中传输IP数据包。GRE VPN(GRE Virtual Private Network)是通过GRE协议在公共网络上创建一个私密的虚拟网络。它可以通过将IP数据包封装在GRE封装中来实现数据的安全传输和隐私保护。