8.5、GRE原理与配置
- 前言
- IPSec VPN用于在两个端点之间提供安全的IP通信,但只能加密并传播单播数据,无法加密和传输语音、视频、动态路由协议信息等组播数据流量
- 通用路由封装协议GRE(Generic Routing Encapsulation)提供了将一种协议的报文封装在另一种协议报文中的机制,是一种隧道封装技术。GRE可以封装组播数据,并可以和IPSec结合使用,从而保证语音、视频等组播业务的安全
- 日常生活中,需要提供视频会议、传播语音。对于组播数据流量,可以通过通用路由封装协议GRE进行传播。但是GRE不能够提供加密,要想实现组播业务的安全性,可将IPSec和GRE结合使用
- GRE应用场景
- GRE支持将一种协议的报文封装在另一种协议报文中
- eg
- 当IPSec技术创建一个隧道以后,无法进行传输OSPF路由协议、RIP路由协议,这时可以通过GRE将路由信息封装在另一种协议报文中进行传输
- eg
- GRE可以解决异种网络传输问题
- eg
- 企业分支和企业网络实现的是IPX的协议,但是运营商使用的是IP协议。此时两者之间不能进行通信,但是通过GRE可以实现两者的通信
- eg
- GRE隧道扩展了受跳数限制的路由协议的工作范围,支持企业灵活设计网络拓扑
- Eg
- 在IPSec路由器之间假设有20台路由器,路由器之间运行的是RIP协议,路由器之间的最大跳数是15,超过15之后设备无法通信。由于网络中有20个路由器,所以使用RIP无法进行通信
- 此时可以通过GRE隧道,对于GRE隧道使用RIP协议,对于RIP协议来讲不管中间有多少台路由器,实际上中间RIP检查到的只有两台,因为做了隧道,所以只识别RTC和RTD两台路由器,这样就可以扩大网络的工作范围
- Eg
- 首先通过GRE对报文进行封装,然后再由IPSec对封装后的报文进行加密和传输
- GRE本身是不支持加密的,可以通过IPSec来进行保证报文的安全性
- GRE报文结构
- GRE在封装数据时,会添加GRE头部信息,还会添加新的传输协议头部信息
- 正常的数据是IP报文加数据,但是传输数据时要经过GRE隧道。经过GRE隧道时会添加一个GRE头部信息,再加上一个IP地址,这是IP地址是外层地址,另一个是内层地址
- GRE关键字验证
- 隧道两端设备通过关键字字段(Key)来验证对端是否合法
- GRE提供一定的验证的,但是验证方法非常弱,只是通过Key关键字进行验证
- Keepalive检测
- Keepalive检测功能用于检测隧道对端是否可达
- 对于GRE而言,只要一端设置成功以后,物理链路进行UP,但是对端是否UP本端并不知道,所以通过检测技术检测对端是否可达。使用的是Keepalive检测方法
- 当我们去使能Keepalive的检测功能之后,GRE隧道源端就会创建一个计时器来周期性的发送Keepalive的探测报文检测不可达数
- 每发送一个探测报文不可达数就会加1,以此来检测对端的可达性
- 配置时建议开启Keepalive检测
- Keepalive默认是关闭的,需要我们去进行开启。Keepalive可以检测隧道链路是否是处于Keepalive的状态,是否是可达的。
- 如果不可达,隧道连接就会被关闭
- GRE配置
- GRE配置比较简单
- 1、创建一个Tunnel接口
- 2、配置IP地址
- 使用公网地址
- 3、指定Tunnel协议为GRE协议
- 4、配置隧道对端地址
- 源地址
- 目的地址
- 配置一个静态路由指定Tunnel接口转发的路由
- 路由地址是GRE封装前原始报文的目的地址
- 出接口是隧道的接口
- 配置验证
- 查看隧道状态
- 隧道状态
- 协议状态
- 接口地址
- Tunnel地址
- 源地址
- 目的地址
- 查看路由
- 静态路由
- 静态路由的目的是之前的目的IP地址
- 下一跳
- 出接口
- 静态路由
- 配置Keepalive检测
- 配置Keepalive检测
- 直接在隧道下开启Keeplive检测即可
- 默认重传次数是3
- 发送周期是5s
- 直接在隧道下开启Keeplive检测即可
- 配置验证
- 查看Keepalive配置
- 重传次数是3次
- 发送周期是3s
- 总结
- GRE的应用场景有哪些?
- 1、解决异种网络的问题
- 2、扩展受跳数限制的路由协议工作范围
- 3、IPSec结合实现加密传输组播数据
- Display interface tunnel命令显示的信息中会包含Internet Address和Tunnel source,这两种的区别是什么?
- Internet Address
- GRE隧道使用的虚拟隧道地址
- Tunnel source
- 表示隧道起点的地址,是设备出口的物理地址
- 两者最大区别
- 一个是物理地址,一个是虚拟的隧道地址
- Internet Address
- GRE的应用场景有哪些?