1、GRE的概念
1)全称:GRE(Generic Routing Encapsulation):通用路由封装协议。
2)功能:定义了在一种网络层协议上封装另一种协议(或同一种协议)。
3)举例:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。
4)所在层次:GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。
2、GRE的特点
GRE是一个标准协议
支持多种协议和多播
能够用来创建弹性的VPN
支持多点隧道
能够实施QOS
3、GRE的缺点
缺乏加密机制
没有标准的控制协议来保持GRE隧道(通常使用协议和keepalive)
隧道很消耗CPU
出现问题要进行DEBUG很困难
MTU和IP分片是一个问题

4、Tunnel技术
定义:Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封 。

5、使用GRE构建VPN:

GRE 使用什么协议 gre协议是哪一层协议_VPN


应用GRE组建Intranet VPN 或Extranet VPN:公司总部的局域网和公司分支机构或合作伙伴的局域网通过路由器之间通过GRE协议建立的Tunnel进行通信;并采用IPSec 在IP层通过加密与数据源验证,以保证数据包在Internet网上传输时的私有性、完整性和真实性。实现点到点的连接,保障了数据的安全性。

6、GRE安全机制
GRE本身提供两种基本的安全机制:校验和验证,识别关键字。
校验和验证
校验和验证是指对封装的报文进行端到端校验。
若GRE报文头中的C位标识位置1,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进一步处理,否则丢弃。
隧道两端可以根据实际应用的需要决定配置校验和或禁止校验和。如果本端配置了校验和而对端没有配置,则本端将不会对接收到的报文进行校验和检查,但对发送的报文计算校验和;相反,如果本端没有配置校验和而对端已配置,则本端将对从对端发来的报文进行校验和检查,但对发送的报文不计算校验和。
识别关键字
识别关键字(Key)验证是指对Tunnel接口进行校验。通过这种弱安全机制,可以防止错误识别、接收其它地方来的报文。
RFC1701中规定:若GRE报文头中的K位为1,则在GRE头中插入一个四字节长关键字字段,收发双方将进行识别关键字的验证。
关键字的作用是标志隧道中的流量,属于同一流量的报文使用相同的关键字。在报文解封装时,GRE将基于关键字来识别属于相同流量的数据报文。只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。这里的“完全一致”是指两端都不设置识别关键字,或者两端都设置相同的关键字。

图片来源于网络