了解GRE隧道技术(上)

1.GRE是什么? 

        通用路由封装(Generic Routing Encapsulation GRE) 是一种协议,用于将使用一个路由协议的数据包封装在另一协议的数据包中。“封装”指将一个数据包包装在另一个数据包中,就像将一个盒子放在另一个盒子中一样。

2.GRE的作用是什么? 

        GRE 是在网络上建立直接点对点连接的一种方法,目的是简化单独网络之间的连接。它适用于各种网络层协议

        要了解其工作原理,请想像一下汽车和渡轮之间的区别。汽车在陆地上行驶,而渡轮在水上行驶。汽车通常不能在水上行驶,但是可以将汽车装载到渡轮上。

        在这个类比当中,地形类型好比是支持某些路由协议的网络,而车辆则好比是数据包。GRE 是一种将一种类型的数据包装载到另一种类型的数据包中的方式,以便第一个数据包可以穿越它通常无法穿越的网络,就像一种类型的运输工具(汽车)被装载到到另一种类型的运输工具(渡轮)上,以便穿越原本无法行驶的地形。

        例如,假设一家公司需要在位于两个不同办公室的局域网(LAN)之间建立连接。两个 LAN 都使用最新版本的 互联网协议 IPv6。但是,为了从一个办公网络到达另一个办公网络,流量必须通过一个由第三方管理的网络 — 该网络有些过时,仅支持较旧的 IPv4 协议。

        借助 GRE,该公司可以将 IPv6 数据包封装在 IPv4 数据包中,然后便可通过此网络传输流量。回到那个类比,IPv6 数据包是汽车,IPv4 数据包是渡轮,而第三方网络则是水。

        使用GRE还可以克服IGP协议的一些局限性。例如,RIP路由协议是一种距离矢量路由协议,最大跳数为15。如果网络直径超过15,设备将无法通信。这种情况下,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络的工作范围。

 3.GRE是如何工作的?

        系统收到需要进行封装和路由的某网络层协议(如IPX)数据时,将首先对其加上GRE报文头,使之成为GRE报文,再将其封装在另一协议(如IP)中。这样,此报文的转发就可以完全由IP协议负责。封装后的报文的格式如下图所示: 

图1 封装好的GRE报文格式

  • 净荷(Payload Packet):系统收到的需要封装和传输的数据报文称为净荷。
  • 乘客协议(Passenger Protocol):封装前的报文所属的协议称为乘客协议。
  • 封装协议(Encapsulation Protocol):上图的GRE协议称为封装协议,也称为运载协议(Carrier Protocol)。
  • 传输协议(Transport Protocol或者Delivery Protocol):负责对封装后的报文进行转发的协议称为传输协议。

        GRE首部各字段解释如下: 

表1-1 GRE Header首部各字段解释 

字段

长度

描述

C

1 bit

校验和验证位。如果该位置1,表示GRE头插入了校验和(Checksum)字段;该位为0表示GRE头不包含校验和字段。

K

1 bit

关键字位。如果该位置1,表示GRE头插入了关键字(Key)字段;该位为0表示GRE头不包含关键字字段。

Recursion

3 bits

用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限次的封装。

Flags

5 bits

预留字段。当前必须设为0。

Version

3 bits

版本字段,必须置为0。Version为1是使用在RFC2637的PPTP中。

Protocol Type

16 bits

乘客协议的协议类型。

Checksum

16 bits

对GRE头及其负载的校验和字段。

Key

31 bits

关键字字段,隧道接收端用于对收到的报文进行验证。

        报文在GRE隧道中传输包括封装解封装两个过程。如下图所示,如果私网报文从Ingress PE向Egress PE传输,则封装在Ingress PE上完成;而解封装在Egress PE上进行。

 图2 私有网络通过GRE隧道互连        

        整体封装与解封装的流程如下所示:

  • Ingress PE收到报文后,交由乘客协议处理,乘客协议判断出接口为GRE Tunnel接口。
  • Ingress PE将报文发送到对应的tunnel接口,并给报文加GRE报文头。
  • Ingress PE再根据配置信息,给报文加上IP头(IP头中包含源地址和目的地址)。
  • Ingress PE根据IP头中的目的地址,在公网路由表中查找相应的出接口并发送报文。
  • Egress PE收到报文并分析IP头发现自己是目的地。
  • Egress PE去掉IP头和GRE头。
  • Egress PE判断报文的乘客协议为私网上运行的协议,于是交由私网处理该报文。私网正常转发该报文。
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值