暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【日积月累】GRE的理解

老张的技术博客 2018-04-04
1627

GRE(通用路由封装)采用了隧道技术(Tunnel),目的是为了封装某些网络层协议的数据报文,使这些报文能够在另一个网络层协议中传输。

GRE技术的实现主要分为四个组件:routerA、隧道入口加封装、隧道出口解封装、routerB

简单来说,GRE是一个点对点的连接。其中的隧道就好比高速公路,隧道的两端就相当于收费站。进站时需要拿小票(加封装过程),出站的时候需要交钱(解封装过程)。下面就来重点讨论下这两个过程。


一、加封装过程

如上图所示,routerA连接Group1接口收到X协议报文后,会首先交于X协议处理

X协议检查报文头中的地址域来确定如何路由此包

设备将此报文发给相应的Tunnel接口

Tunnel接口收到此报文后进行GRE封装,封装了IP报文头后进行相应转发

二、封装后报文格式

封装好之后的报文由三个部分组成:Delivery  header、GRE  header、Payload  header

如下图所示


所谓payload就是需要封装和传输的数据报文,协议类型为乘客协议(Passenger Protocol)。这非常形象,很容易理解。当系统收到一个payload后,首先使用封装协议(Encapsulation  Protocol)进行封装。也就是给这个乘客穿上衣服,加上了一个GRE头部成为GRE报文。然后再把穿好衣服的乘客丢进公共汽车里去,将原始报文和GRE头部封装在IP报文中,这样就可完全由IP层负责此报文的向前转发。这个向前转发的IP协议就是传输协议(Transport  protocol)。根据IP层协议的区别,可以分为IPv4和IPv6两种隧道模式。

三、解封装过程

1、经Tunnel传输完成后的数据报文会被发到RouterB上,以检查目的地址

2、若发现目的地是本路由器,则RouterB会剥掉此报文的IP报头,交于GRE协议处理。GRE协议会进行检验密钥、检查校验和及报文的序列号等操作。

3、GRE完成处理后会剥掉GRE报头,再交由目的端的某网络层协议进行后续转发处理。

四、GRE数据包头的格式



文章转载自老张的技术博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论