一、GRE
通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPv4网络中传输。
中文名:通用路由封装
外文名:Generic Routing Encapsulation
作用:网络层协议封装一个其它网络协议
类 型:网络协议
隶 属:通信协议,路由协议
二、基本信息
1、GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。
2、Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。 一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程。
3、GRE 通用路由封装 – 一种简单的VPN技术 – 属于点到点网络类型
注:VPN虚拟专用网络 — 让两个网络穿越中间网络来直接通讯,逻辑的在两个网络间建立了一条新的点到点直连链路;
三、报文格式
GRE 封装后的报文格式为:
Delivery Header | GRE Header | Payload packet |
---|
- Delivery Header:封装的外部协议报文头(如IP报文头),即隧道所处网络的协议数据头,是实现一种协议报文穿越另一种协议网络的传输工具
- GRE Header:对数据报文进行封装后加入的数据,包含GRE协议本身以及和负载协议有关的一些信息
- Payload Packet:进入隧道之前的网络层数据报文,将作为隧道报文的有效负载,该报文的协议号将作为GRE头部字段中的ProtocolType字段。GRE头部信息具有如图所示的结构
四、配置(点到点GRE)
点到点的GRE配置:
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 10.1.1.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre
[r1-Tunnel0/0/0]source 12.1.1.1
[r1-Tunnel0/0/0]destination 23.1.1.2
五、MGRE(多点GRE)
1、MGRE—多点GRE — 多个节点构建为一个网段;结构为中心到站点结构;站点可以基于NHRP实现ip地址不固定;
2、NHRP:下一跳路径发现协议 非固定ip地址分支站点,主动到固定IP的中心站点注册;中心生成MAP映射—tunnel口IP与公有ip地址的对应;
若分支到分支,那么将在中心站点下载map来实现直接通讯;
MGRE配置:
中心站点配置:
interface Tunnel0/0/0 --------- 创建tunnel口
ip address 10.1.1.1 255.255.255.0 --------- 配置接口ip地址
tunnel-protocol gre p2mp ---------- 先修改接口模式为多点GRE
source 15.1.1.1 --------- 再定义公有的源IP地址
nhrp entry multicast dynamic -------- 本地成为NHRP中心,同时可以进行伪广播
nhrp network-id 100 --------- 默认为0号,该网段内所有节点tunnel接口必须为相同域
分支站点:
interface Tunnel0/0/0
ip address 10.1.1.2 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet0/0/2 --------假设分支站点ip地址不固定(可固定也可不固定)
nhrp network-id 100
nhrp entry 10.1.1.1 15.1.1.1 register -------- 分支需要到中心站点注册
注:[r1]dis nhrp peer all 查看分支站点注册结果
- 若所有tunnel对应的公有ip均为固定ip地址,可以让每台路由器均称为中心站点,两两间均进行注册;
- 可以形成全连网状结构拓扑;—rip这种存在水平分割机制的协议能够正常收敛;
- 当拓扑结构为中心到站点(轴辐状)—不是所有网点均为固定的公有ip,没法所有tunnel设备相互注册;只能通过关闭水平分割来实现路由的全网正常收敛;
- [r1-Tunnel0/0/0]undo rip split-horizon