GRE(通用路由封装协议 Greneric Routing Encapsulation)
概述;一种隧道技术,支持将一种协议报文封装在另一种协议报文中。
缺陷:本身无安全性,不提供加密
解决:可与ipsec结合使用,保证安全
作用:
(1)解决异种网络传输问题
(2)可封装组播数据
(3)GRE扩展了受跳数限制的路由协议的工作范围,支持企业灵活设计网络拓扑。
eg.使用RIP协议,最大跳数15,使用GRE隧道后只会检测到两台路由器
(4)GRE先对报文封装,再用IPSec进行加密传输
封装:
添加数据时,添加GRE头部信息和新的传输协议头部信息
PayLoad(净荷)系统收到需要封装路由的数据报文
Passenger Protocol(乘客协议):GRE头部右边的部分,封装前的报文协议。
Transport Protocol(传输协议):GRE头部左边部分,对封装后报文传输的协议
GRE报文:
C(校验和验证):1bit,1值表含校验和字段,0值表不含
K(关键字位):1bit,1值表含关键字字段,0表不含
Recursion(封装层数):3bit,用于防止报文无限封装,完成一次GRE封装,字段加1,直到大于3丢弃报文
Flags(预留字段):5bit,必须为0
Version(版本):3bit,置0。
Protocol Type(协议类型):16bit,乘客协议类型
Checksum(校验和):16bit,校验
Key(关键字):32bit, 验证对端是否合法,安全性弱
GRE关键字认证:
隧道两端通过关键字字段(Key)来验证对端合法性
Keepalive检测:
背景:一端设置成功后,物理链路会up,对端状态不可知
作用:检测隧道对端是否可达,不可达,隧道会关闭。(默认不开)
原理:开启keepalive功能后,源端会创建一个计时器,周期性发送keepalive探测报文,每发送一次,不可达数加1
GRE基础配置
【设备】int tunnel接口
【设备-tunnel接口】ip add 地址
【设备-tunnel接口】tunnel-protocal gre
【设备-t接口】source 地址
【设备-t接口】destination 地址
【设备-t接口】keepalive period 时间
【设备】ip route -static 目的地址 掩码 tunnel接口
【设备】disp int tunnel接口 //内含internet add(虚拟地址)和tunnel source(物理地址)