网络协议学习:通用路由封装协议GRE

隧道技术 Tunneling

网络隧道技术(Tunneling)指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。

简单来说,使用隧道技术可以理解为,在一些网络链路中使用汽车运输载荷,在一些网络链路中使用渡轮运输载荷,汽车无法行驶在水上,但是可以把整个汽车封装在轮渡中进行运输。
在这里插入图片描述
例如如上图所示,某网络拓扑分布在北京Region和上海Region,可以使用隧道技术将物理上不连续的子网连接起来。
Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通道使封装的数据报能够在这个通路上传输,并在一个Tunnel的两端分别对数据报进行封装及解封装 。
隧道协议主要有两种,分别实现在OSI模型的第二层和第三层。

  • 二层隧道协议对应OSI模型中数据链路层,使用作为数据交换单位,是将数据封装在点对点协议的帧中通过互联网络发送,PPTP、L2TP、L2F都属于二层隧道协议
  • 三层隧道协议对应OSI模型中网络层,使用作为数据交换单位,是数据包封装在附加的IP包头中通过IP网络传送,GRE、IPSec、GRE都属于三层隧道协议

通用路由封装协议GRE

如上文中提到的,GRE隧道是一种三层隧道封装技术,可以对报文进行再封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。

特点

  • GRE报头包含一个协议类型字段,因此可通过隧道传输任意第3层协议的数据
  • 无状态,没有流量控制机制
  • 不提供安全机制

报文封装

封装方式:增加新的IP(外网IP)头,其后是ipsec包头,之后再将原来的整个数据包封装。

传输IP报头GRE报头原始IP报头+数据

在这里插入图片描述

字段含义
C校验和标志位
R路由标志位
K密钥标志位
S序列号同步标志位
s严格源路由标志位
递归控制置0
标志位置0
版本置0
协议类型封装的协议,如08000代表IP协议

封装过程

GRE封装报文时,封装前的报文称为净荷,封装前的报文协议称为乘客协议,然后先封装GRE头部,GRE成为封装协议,也叫运载协议,最后负责对封装后的报文进行转发的协议称为传输协议。

  1. 路由器从连接私网的接口接收到报文后,检查报文头中的目的IP地址字段,在路由表查找出接口,发现出接口是隧道接口,将报文发送给隧道模块进行处理。
  2. 隧道模块接收到报文后首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装,添加GRE报头
  3. 路由器给报文添加传输协议报头即IP报头(公网地址);该IP报头的源地址就是隧道源地址,目的地址就是隧道目的地址
  4. 路由器根据新添加的IP报头目的地址,在路由表中查找相应的出接口并发送报文,封装后的报文将在公网中传输
  5. 接收端路由器从连接公网的接口收到报文后,首先分析IP报文头,如果发现协议类型字段的值为47,表示协议为GRE,于是出接口将报文交给GRE模块处理。GRE模块去掉IP报文头和GRE报文头,并根据GRE报文头的协议类型字段,发现此报文的乘客协议为私网中运行的协议,于是将报文交给该协议处理

GRE隧道传输的流量是不加密的,将 IPSec技术与GRE相结合,先建立GRE隧道对报文进行GRE封装,然后再建立IPSec隧道对报文进行加密,这样就只可以保证报文传输的完整性和私密性。

作用

  1. 使隧道两端的网络组成一个更大的内部网络
  2. 把不支持的协议数据包打包成支持的协议数据包之后进行传输
  3. 克服IGP协议的一些局限性。例如RIP路由最大15跳即为不可达,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络的工作范围。

参考

GRE隧道是什么?他的作用是什么?
隧道技术GRE
通用路由封装协议GRE 是什么?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值