GRE简介

GRE简介

介绍GRE的基本概念和应用场景。
General Routing Encapsulation,简称GRE,是一种三层VPN封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后的报文能够在另一种网络中(如IPv4)传输,从而解决了跨越异种网络的报文传输问题。异种报文传输的通道称为Tunnel(隧道)。如图1所示,通过在IPv4网络上建立GRE隧道,解决了两个IPv6网络的通信问题。
IPv6网络通过GRE隧道跨越IPv4网络通信
GRE简介(图1)

GRE除了可以封装网络层协议报文以外,它还具备封装组播报文的能力。由于动态路由协议中会使用组播报文,因此更多时候GRE会在需要传递组播路由数据的场景中被用到,这也是GRE被称为通用路由封装协议的原因。以下几个场景就是GRE在路由封装方面的应用。
GRE over IPSec
如图2所示,IPSec隧道两端的IP网络需要通信,彼此就要获取到对端网络的私网路由信息。假设隧道两端的IP网络部署的是动态路由协议,那么IPSec隧道中就需要传递路由协议的组播报文。由于IPSec本身并不具备封装组播报文的能力,因此该场景下就需要寻求GRE的协助。GRE首先将组播报文封装成单播报文,封装后的单播报文就可以经过IPSec隧道发送到对端网络。此时,建立在两个IP网络中的隧道被称为GRE over IPSec隧道。
GRE简介(图2)

扩大跳数受限的网络工作范围
如图所示,网络中运行RIP协议,如果两台电脑之间的跳数超过15,它们将无法通信。通过在网络中使用GRE隧道可以隐藏一部分跳数,从而扩大网络的工作范围。
例如,在FW_A和FW_B之间建立GRE隧道后,FW_A和FW_B就相当于相邻的路由器,距离为一跳。这就隐藏了FW_A和FW_B之间的跳数,使网络得到了扩展。

GRE简介(图3)


原理描述
介绍GRE的封装概念、GRE报文转发流程、安全策略以及GRE安全选项等内容。
GRE封装
无论哪一种VPN封装技术,其基本的构成要素都可以分为3个部分:乘客协议、封装协议和运输协议,GRE也不例外。
    乘客协议
    乘客协议是指用户在传输数据时所使用的原始网络协议。
    封装协议
    封装协议的作用就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输。
    运输协议
    运输协议是指被封装以后的报文在新网络中传输时所使用的网络协议。
在FW中GRE使用到的协议如图所示。可以看出,GRE能够承载的乘客协议包括IPv4、IPv6和MPLS协议,GRE所使用的运输协议是IPv4协议。
GRE的协议栈

GRE简介(图4)

GRE是按照协议栈对报文进行逐层封装,如图所示。封装过程可以分成两步,第一步是为原始报文添加GRE头,第二步是在GRE头前面再加上新的IP头。加上新的IP头以后,就意味着原始报文可以在新网络上传输了。GRE的封装操作是通过逻辑接口Tunnel完成的,Tunnel接口是一个通用的隧道接口,所以GRE协议在使用这个接口的时候,会将接口的封装协议设置为GRE协议。
GRE报文封装

GRE简介(图5)

GRE报文转发流程
下面结合FW的流量处理过程,介绍GRE报文转发流程,如图所示。
GRE报文转发流程

GRE简介(图6)

PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上的报文转发过程如下:
    PC_A访问PC_B的原始报文进入FW_A后,首先匹配路由表。
    根据路由查找结果,FW_A将报文送到Tunnel接口进行GRE封装,增加GRE头,外层加新IP头。
    FW_A根据GRE封装后报文的新IP头的目的地址(2.2.2.2),再次查找路由表。
    FW_A根据路由查找结果将报文发送至FW_B,图中假设FW_A查找到的去往FW_B的下一跳地址是1.1.1.2。
    FW_B收到报文后,首先判断这个报文是不是GRE报文。
    如何判断?在图1中可以看到封装后的GRE报文会有个新的IP头,这个新的IP头中有个Protocol字段,字段中标识了内层协议类型,如果这个Protocol字段值是47,就表示这个报文是GRE报文。如果是GRE报文,FW_B则将该报文送到Tunnel接口解封装,去掉新的IP头、GRE头,恢复为原始报文;如果不是,则报文按照普通报文进行处理。
    FW_B根据原始报文的目的地址再次查找路由表,然后根据路由匹配结果将报文发送至PC_B。
安全策略
从原始报文进入GRE隧道开始,到GRE报文被FW转出,这个过程报文跨越了两个域间关系。由此可以将GRE报文所经过的安全域看成两个部分,一个是原始报文进入GRE隧道前所经过的安全域,一个是报文经过GRE封装后经过的安全域,如图4所示。假设FW_A和FW_B上GE0/0/1接口连接私网,属于Trust区域;GE0/0/2接口连接Internet,属于Untrust区域;Tunnel接口属于DMZ区域。
FW_A上的报文走向

GRE简介(图7)

在图中,PC_A发出的原始报文进入Tunnel接口这个过程中,报文经过的安全域间是Trust—>DMZ;原始报文被GRE封装后,FW_A在转发这个报文时,报文经过的安全域间是Local—>Untrust。
在图中,当FW_A发出的GRE报文到达FW_B时,FW_B会进行解封装。在此过程中,报文经过的安全域间是Untrust—>Local;GRE报文被解封装后,FW_B在转发原始报文时,报文经过的安全域间是DMZ—>Trust。
FW_B上的报文走向

GRE简介(图8)

由上可知,在GRE中报文所经过的安全域间与Tunnel接口所在的安全域有关联。以上图为例,介绍PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上配置的安全策略如下表所示。

业务方向

设备

源安全区域

目的安全区域

源地址

目的地址

应用

PC_A访问PC_B

FW_A

Trust

DMZ

192.168.1.0/24

192.168.2.0/24

*

Local

Untrust

1.1.1.1/32

2.2.2.2/32

GRE

FW_B

Untrust

Local

1.1.1.1/32

2.2.2.2/32

GRE

DMZ

Trust

192.168.1.0/24

192.168.2.0/24

*

*:此处的应用与具体的业务类型有关,可以根据实际情况配置,如tcp、udp等。

GRE的安全选项
为了提高GRE的安全性,隧道双方支持对对端设备的身份验证。建立隧道的双方事先约定好一个密钥,在传输GRE报文的时候,该密钥信息会被封装到GRE头中,接收端在收到GRE报文时会用自己的密钥和报文中的密钥进行比对。密钥一致则验证通过;密钥不一致,则表示对方身份不合法,丢弃此报文。GRE报文头中的Key标识位置1,表示启用了身份验证功能,为0表示未启用身份验证功能,FW中GRE缺省未开启此功能。
TCP-MSS自动调整
设备支持对TCP建链阶段的SYN或SYN-ACK报文的最大报文长度MSS(Maximum Segment Size)进行动态调整。
背景信息
TCP建链阶段,SYN或SYN-ACK报文的Option选项中可能会携带MSS字段,用来告知对端设备本端能够接收的最大报文段长度。设备交换过MSS值后会进行比较,选择较小MSS的值用于转发报文,保证网络中不存在分片报文。在不存在报文分片的情况下,MSS值越大允许每个报文段传送的数据就越大,网络利用率就越高。适当调整MSS值可以使得TCP报文端到端传输过程中尽量不分片,同时尽量传输大字节的数据报文,提高端到端TCP传输效率。
实现机制
    当SYN或SYN-ACK报文中没有带MSS字段时,设备会自动插入合适的MSS值:
    MSS=MTU-40–APPENDLEN
    其中,MSS表示自动插入的MSS值,MTU表示接口的最大传输单元,APPENDLEN表示进行VPN加密封装时增加的报文长度。
    当SYN或SYN-ACK报文中带有MSS字段时,设备会比较MSS-APPENDLEN与MTU-40-APPENDLEN的大小,并把过大的MSS值改小:
        若MTU-40-APPENDLEN>MSS-APPENDLEN,则保留并使用原有的MSS值。
        若MTU-40-APPENDLEN<MSS-APPENDLEN,则使用MTU-40-APPENDLEN作为新的MSS值。
    其中,MSS表示自动插入的MSS值,MTU表示接口的最大传输单元,APPENDLEN表示进行VPN加密封装时增加的报文长度。
使用限制
    设备上VPN通过的接口的MTU值必须完全一致。
    只有当接口的MTU值在256~9600时才进行TCP-MSS自动调整。
    仅单纯的IPSec、GRE、L2TP业务支持此功能,L2TP over IPSec、GRE over IPSec等业务不支持此功能。


VPN配置案例汇总、VPN汇总(列表、list、全)vpnlist
http://www.zh-cjh.com/wenzhangguilei/1193.html

1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » GRE简介

作者: cjh


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!