曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2415|回复: 0
打印 上一主题 下一主题

[转载]GRE技术介绍

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-3-24 00:14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GRE简介

协议简介
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如 IP 和 IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如 IP)中传输。GRE 采用了 Tunnel(隧道)技术,是 VPN(Virtual Private Network)的第三层隧道协议。

Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个 Tunnel 的两端分别对数据报进行封装及解封装。

一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程,下面以图1的网络为例说明这两个过程:

图1 X协议网络通过GRE隧道互连

1. 加封装过程
  • Router A连接Group 1的接口收到X协议报文后,首先交由X协议处理;

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

  • 若报文的目的地址要经过 Tunnel才 能到达,则设备将此报文发给相应的Tunnel接口;

  • Tunnel 口收到此报文后进行 GRE 封装,在封装 IP 报文头后,设备根据此 IP 包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。


2. GRE封装后的报文格式
封装好的报文的形式如下图所示:

图2 封装好的Tunnel报文格式

举例来说,一个封装在 IP Tunnel 中的X协议报文的格式如下:

图3 Tunnel中传输报文的格式

需要封装和传输的数据报文,称之为净荷(Payload),净荷的协议类型为乘客协议(Passenger Protocol)。系统收到一个净荷后,首先使用封装协议(Encapsulation Protocol)对这个净荷进行GRE封装,即把乘客协议报文进行了“包装”,加上了一个GRE头部成为GRE报文;然后再把封装好的原始报文和GRE头部封装在IP报文中,这样就可完全由IP层负责此报文的前向转发(Forwarding)。通常把这个负责前向转发的IP协议称为传输协议(Delivery Protocol或者Transport Protocol)。

根据传输协议的不同,可以分为GRE over IPv4和GRE over IPv6两种隧道模式。

3. 解封装的过程
解封装过程和加封装的过程相反。

  • Router B从Tunnel接口收到IP报文,检查目的地址;


  • 如果发现目的地是本路由器,则Router B剥掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等);


  • GRE协议完成相应的处理后,剥掉GRE报头,再交由X协议对此数据报进行后续的转发处理。

说明:
GRE收发双方的加封装、解封装处理,以及由于封装造成的数据量增加,会导致使用GRE后设备的数据转发效率有一定程度的下降。


GRE的安全选项
为了提高 GRE 隧道的安全性,GRE还支持由用户选择设置 Tunnel 接口的识别关键字(或称密钥),和对隧道封装的报文进行端到端校验。

在RFC1701中规定:
  •   若 GRE 报文头中的 Key 标识位置1,则收发双方将进行通道识别关键字的验证,只有 Tunnel 两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。


  •    若GRE报文头中的Checksum标识位置1,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进一步处理,否则丢弃。


应用范围

GRE主要能实现以下几种服务类型:

1. 多协议的本地网通过单一协议的骨干网传输

上图中,Group 1和Group 2是运行Novell IPX协议的本地网,Team 1和Team 2是运行IP协议的本地网。通过在 Router A 和 Router B 之间采用 GRE 协议封装的隧道(Tunnel),Group 1和 Group 2、Team 1 和 Team 2 可以互不影响地进行通信。

2. 扩大了步跳数受限协议(如RIP)的网络的工作范围

图5 扩大网络工作范围
两台终端之间的步跳数超过 15,它们将无法通信。而通过在网络中使用隧道(Tunnel)可以隐藏一部分步跳,从而扩大网络的工作范围。

3. 将一些不能连续的子网连接起来,用于组建VPN

图6 Tunnel连接不连续子网
运行Novell IPX协议的两个子网Group 1和Group 2分别在不同的城市,通过使用隧道可以实现跨越广域网的VPN。

4. 与IPSec结合使用

图7 GRE-IPSec 隧道应用
对于诸如路由协议、语音、视频等数据先进行GRE封装,然后再对封装后的报文进行 IPSec 的加密处理。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-5 05:27 , Processed in 0.060958 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表