H3C GRE概述

发布时间:2019-06-24 15:27:07编辑:auto阅读(1385)

    协议简介

        GRE( Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如 IP 和 IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如 IP)中传输。 GRE是 Tunnel(隧道)技术的一种,属于第三层隧道协议。    GRE 隧道是一个虚拟的点对点的连接,为封装的数据报文提供了一条传输通路, GRE 隧道的两端分别对数据报进行封装及解封装。

    wKiom1RWXvrzHSJNAAEBkReYHqI010.jpg

        下面以 图 1-1 的网络为例说明X协议的报文穿越IP网络在GRE隧道中传输的过程。

        1. 加封装过程

       · Device A 连接 Group 1 的接口收到 X 协议报文后,首先交由 X 协议处理。

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

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

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


        2. GRE 封装后的报文格式

        封装后的报文的形式如 图 1-2所示。

    wKioL1RWX3rBu6hMAACvZPG_QbI032.jpg

        举例来说,一个封装在IP Tunnel中的X协议报文的格式如 图 1-3所示。

    wKiom1RWXy_hyK5PAACnQV8oVbE382.jpg

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

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


    3. 解封装的过程

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

       · Device B 从 Tunnel 接口收到 IP 报文,检查目的地址。

       · 如果发现目的地是本设备,则 Device B 剥掉此报文的 IP 报头,交给 GRE 协议处理(进行检验密钥、检查校验和及报文的序列号等)。

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

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


    GRE 的安全选项

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

        在 RFC1701 中规定:

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

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


    应用范围

        GRE 主要应用于以下几种环境:

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

        图1-4 多协议本地网通过单一协议骨干网传输

    wKiom1RWX4uTLiEMAAEnHizt9KQ318.jpg

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


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

    wKioL1RWYAyRCoyeAAE7WwoarUI877.jpg

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


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

    wKiom1RWX8rQGcZ5AAFCC3f1FNk719.jpg

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


        4. 与 IPSec 结合使用

        图1-7 GRE-IPSec 隧道应用

    wKioL1RWYE_AU3nmAAEDU0YQhFM585.jpg

        GRE 可以和 IPSec 结合使用,即对于路由协议、语音、视频等数据先进行 GRE 封装,再对封装后的报文进行 IPSec 的加密处理,以提高数据在隧道中传输的安全性。

        说明:GRE 与 IPSec 结合使用的支持情况与设备的型号有关,请以设备的实际情况为准。


    协议规范

        与 GRE 相关的协议规范有:

       · RFC1701 : Generic Routing Encapsulation (GRE)

       · RFC1702: Generic Routing Encapsulation over IPv4 networks

       · RFC2784: Generic Routing Encapsulation (GRE)


关键字