隧道协议_GRE

隧道协议_GRE一 隧道概念隧道 通过在一种协议中承载另一种协议 实现跨越不同域的互通 具体可以是 IPv6 in IPv4 IPv6 in MPLS IPv4 in IPv6 等隧道类型

一、 隧道概念

二、 GRE定义

通用路由封装(GRE: Generic Routing Encapsulation),可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPv4网络中传输

三、 报文格式

3.1 GRE封装后的报文格式
Delivery Header GRE Header Payload packet

Delivery Header:隧道所处网络的协议数据头,是实现一种协议报文穿越另一种协议网络的传输协议。
GRE Header:封装协议,包含GRE协议本身以及和负载协议相关的信息。
Payload Packet:进入隧道前的网络层数据报文,该报文的协议号会作为GRE头部字段中的ProtocolType字段。

3.2 GRE Header格式
 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|R|K|S|s|Recur| Flags | Ver | Protocol Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum (optional) | Offset (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Key (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Routing (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  • C:校验和标志位
    若该位为1,则16位的校验和字段会出现在GRE头部。若该位或路由标志位被置为1,则16位的校验和字段和16位的偏移字段都会出现在GRE头部。
  • R:路由标志位
    若该位为1,则16位的偏移字段和32位的路由字段都会出现在GRE头部。
  • K:密钥标志位
    若该位为1,则32位的密钥字段会出现在GRE头部。
  • S:序列号标志位
    若该位为1,则32位的序列号字段会出现在GRE头部。
  • s:严格源路由标志位
    只有当所有的路由都符合严格源路由(IP数据报经过路径上的每一个路由器,相邻路由器之间无中间路由器,并且所经过路由器的顺序不可更改)时该位才会为1,通常为0.
  • Recur:递归控制字段(3bit)
    表示被允许额外封装的数目,应该全部置为0.
  • Flags:未定义,5位全部置为0
  • Ver:版本号(3bit)
    全部置为0
  • Protocol Type:协议类型字段(16bit)
    即进入隧道前的网络层数据报文(Payload Packet)的协议号,常用协议号如下:
    在这里插入图片描述

四、封装过程

系统接收到一个需要封装和路由的数据报文,我们称之为有效负载(Payload)。这个有效负载首先被GRE封装然后被称之为GRE报文,这个报文接着被封装在IP报文中,然后完全由IP层负责此报文的转发(Forwarding)。我们也称这个负责向前传输的IP 协议为传递(Delivery)协议或传输(Transport)协议。
GRE实际上是第三层隧道的一种运载协议(Carrier Protocol)。GRE的协议号47。
在这里插入图片描述

五、解封装过程

当IP层接收到GRE报文,检查到外层IP报文头部中的协议号是47时(UDP为17,TCP为6,ICMP为1),那么,IP层输入入口函数会根据协议开关表,直接调用GRE的解封装处理函数,对GRE解封装。解封装完成后,再将原始数据报文送入IP输入队列中,以便进行进一步的传输。

六、参考

GRE封装解封装过程
GRE VPN技术简介及其封装过程
GRE 协议rfc总结
通用路由封装协议(GRE)-rfc1701中文翻译
GRE协议
GRE协议介绍

今天的文章 隧道协议_GRE分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-21 21:30
下一篇 2024-12-21 21:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/92291.html