为何引入GRE技术?

无法在隧道的两个端点之间运行RIP和OSPF等路由协议。GRE本身并不支持加密,因而通过GRE隧道传输的流量是不加密的。将IPSec技术与GRE相结合,可以先建立GRE隧道对报文进行GRE封装,然后再建立IPSec隧道对报文进行加密,以保证报文传输的完整性和私密性。

 什么是GRE?

  通用路由封装协议GRE(Generic Routing Encapsulation) 提供了将一种协议的报文封装在另一种协议报文中(如IPv4)的机制,是一种三层隧道封装技术。

GRE的优点?

  • GRE实现机制简单,对隧道两端的设备负担小。
  • GRE隧道扩展了跳数受限网络协议(RIP最大15跳)的工作范围,支持企业灵活设计网络拓扑。
  • GRE可以解决异种网络的传输问题。(如OSPF、RIP)
  • GRE隧道可以通过IPv4网络连通多种网络协议的本地网络,有效利用了原有的网络架构,降低成本。
  • GRE可以实现传输语音、视频、动态路由协议信息等组播数据流量。
  • GRE隧道将不连续的子网连接起来,用于组建VPN,实现企业总部和分支间安全的连接。

GRE的应用场景

  

gre报文抓包 gre网络_IP

  • IPsec VPN与GRE结合保证报文传输的完整性和私密性

GRE报文结构

  

gre报文抓包 gre网络_封装_02

 

 

    

gre报文抓包 gre网络_VPN_03

  • 乘客协议(Passenger Protocol):封装前的报文称为净荷,封装前的报文协议称为乘客协议。
  • 封装协议(Encapsulation Protocol):GRE Header是由封装协议完成并填充的,封装协议也称为运载协议(Carrier Protocol)。
  • 输协议(Transport Protocol或者Delivery Protocol):负责对封装后的报文进行转发的协议称为传输协议。

关键字Key:隧道两端设备通过关键字字段( Key )来验证对端是否合法,完全一致时才能通过验证,否则报文将被丢弃。

注意:GRE在封装数据时,会添加GRE头部信息,还会添加新的传输协议头部信息。

封装过程

  1. 检查报文头中的目的IP地址字段,在路由表查找出接口,若出接口是隧道接口,则将报文发送给隧道模块进行处理
  2. 隧道模块根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装,即添加GRE报文头
  3. 设备给报文添加传输协议报文头,即IP报文头。该IP报文头的源地址就是隧道源地址,目的地址就是隧道目的地址。
  4. 根据新添加的IP报文头目的地址,在路由表中查找相应的出接口,并发送报文。封装后的报文将在公网中传输
  5. 接收端设备从连接公网的接口收到报文后,首先分析IP报文头,如果发现协议类型字段的值为47,表示协议为GRE,于是出接口将报文交给GRE模块处理。
  6. GRE模块去掉IP报文头和GRE报文头,并根据GRE报文头的协议类型字段,发现此报文的乘客协议为私网中运行的协议,于是将报文交给该协议处理。

Keepalive机制

  

gre报文抓包 gre网络_gre报文抓包_04

  • Keepalive检测功能用于检测隧道对端是否可达。
  • 在隧道一端配置了Keepalive功能,无论对端是否配置Keepalive,配置的Keepalive功能在该端都生效,都会给源端发送一个回应报文

GRE基础配置

[RTA]interface Tunnel 0/0/1            // 创建隧道
[RTA-Tunnel0/0/1]ip address 40.1.1.1 24     // 隧道地址
[RTA-Tunnel0/0/1]tunnel-protocol gre      // 选择gre协议
[RTA-Tunnel0/0/1]source 20.1.1.1          // 隧道对应的源物理地址
[RTA-Tunnel0/0/1]destination 20.1.1.2     //  隧道对应的目的物理地址
[RTA-Tunnel0/0/1]quit
[RTA]ip route-static 10.1.2.0 24 Tunnel 0/0/1   // 实现互通的方式有静态和动态(ospf),这里是静态,配置时需要隧道两边都配置
[RTA]interface Tunnel 0/0/1
[RTA-Tunnel0/0/1]keepalive period 3         // 检测报文发送周期,默认为5秒
[RTA-Tunnel0/0/1]quit

 

 文档参考来自华为官网:https://support.huawei.com/enterprise/zh/doc/EDOC1000141464/b09bbebc