GRE简介
通用路由封装协议GRE(Generic Routing Encapsulation), 它实际上是一种封装协议,提供了将一种协议的报文封装在另一种协议报文中的机制。使报文能够在异种网 络中传输,异种报文传输的通道称为 tunnel (隧道)。
GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。
对某些网络层协议(如IPX、ATM、IPv6、AppleTalk等)的数据报文进行封装,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。

GRE封装后的报文格式

gre报文详解 gre报文长度_封装


GRE报头的格式

gre报文详解 gre报文长度_网络协议_02


GRE头部最小4个字节长度,其后为可选字段,第一个字节中的标志位决定是否存在后面的字段,最大长度为16个字节。

C, K, and S : 分别对应Checksum、Key和Sequence Number字段,置1表示存在相应的字段,否则无此字段。

Ver : GRE版本号(为0),对于PPTP GRE,此字段为1。

Protocol Type : 封装的以太网协议类型(例如IPv4,此处为0x0800,如IPV6,此处为0x86dd)

Checksum : 如果C位为1,此字段包含由GRE头部开始的所有数据的校验和

Key : 如果K位为1,此字段包含秘钥信息

Sequence Number: 如果S位为1,此字段包含GRE数据包的序号IPv6 over IPv4隧道

在IPv4网络向IPv6网络过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv4网络上创建隧道,从而实现IPv6孤岛之间的互连。在IPv4网络上用于连接IPv6孤岛的隧道成为IPv6 over IPv4隧道。为了实现IPv6 over IPv4隧道,需要在IPv4孤岛的隧道称为IPv6 over IPv4隧道。为了实现IPv6 over IPv4隧道,需要在IPv4网络与IPv6网络交界的边界路由设备商启动IPv4/IPv6双协议栈。

gre报文详解 gre报文长度_封装_03


*边界路由设备启动IPv4/IPv6双协议栈,并配置IPv6 over IPv4隧道。

边界路由设备在收到从IPv6网络侧发来的报文后,如果报文的目的地址不是自身且下一跳出接口为Tunnel接口,就要把收到的IPv6报文作为负载,加上Ipv4报文头,封装成IPv4报文。

*在IPv4网络中,封装后的报文被传递到对端的边界路由设备。

*对端边界路由设备对报文解封装,去掉IPv4报文头,然后将封装后的IPv6报文发送到对端的IPv6网络中。

*其他隧道原理类似IPv4 over IPv6隧道

在IPv4 Internet向IPv6 Internet过渡后期,IPv6网络被大量部署后,而IPv4网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv6网络上创建隧道,从而实现IPv4孤岛的互联,IPv4孤岛能通过IPv6公网访问其他IPv4网络。

gre报文详解 gre报文长度_网络协议_04