GRE隧道技术在大型企业网中的应用

时间:2022-08-29 08:46:51

GRE隧道技术在大型企业网中的应用

摘要:随着Internet网络技术的普及,虚拟专用网VPN技术在网络发展中的突出地位越发显现。GRE隧道技术作为一种VPN组网技术,在私网IP穿越公网的情况下经常会用到其来组网。主要介绍了GRE的基本原理及在Intranet中的其它不同实际应用。

关键词:VPN;GRE;隧道;封装;NAT;路由

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)22-800-03

The Practical Applications of GRE in Intranet

TANG Qin

(Changsha Institute of Audio-visual District Vocational and Technical Center, Changsha 410004, China)

Abstract: Along with the popularization of Internet technology,VPN technology has shown its importance evidently. As one of VPN network set up technology, when private network visits public network, GRE tunnel often be required. This article mainly introduces the fundamental methods and different practical applications of GRE in Intranet.

Key words: VPN; GRE; tunnel; encapsulation; NAT; route

1 隧道技术概述

在VPN中广泛使用了各种各样的隧道技术,有二层隧道技术,也有三层隧道技术。隧道是一种封装技术,它利用一种网络传输协议,将其他协议产生的数据报文封装在自己的报文中,然后在网络中进行传输,到达对端之后再通过解封装来还原成原始数据报文。实际上隧道可以看作是一个虚拟的点到点连接。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

隧道技术简单地说就是:原始报文在A地进行封装,到达B地后把封装去掉,还原成原始报文,这样就形成了一条由A到B的通信隧道。

隧道是通过隧道协议来实现的,隧道协议规定了隧道的建立、维护与删除规则以及怎样将原始数据封装在隧道中进行传输。隧道并不是传统专用网的端到端的物理链路,而是一条专用的逻辑链路。隧道协议按工作的层次可分为以下两类:

1) 第二层隧道协议,如PPTP、L2TP协议等。

2) 第三层隧道协议,如GRE、IPsec协议等。

2 GRE基本原理及实际应用

2.1 GRE基本概念

GRE(Generic Routing Encapsulation),即通用路由封装技术,是一种隧道技术。目前企业内部的计算机之间一般都是使用私网IP,当一个企业及其在外地的一个分支机构需要通过Internet进行互连时,就必须解决私网IP穿越公网的问题。一个很简单的解决办法就是:在Internet中打一条“隧道”,企业和外地分支机构间通过该隧道透传Internet而实现互通。GRE技术可以有效解决此问题。

2.2 GRE协议原理

GRE是由Cisco和Net-smiths等公司于1994年提交给IETF的,标记号为RFC1701和RFC1702,目前大多数厂商的网络设备均支持该协议。

GRE提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输,异种报文传输的通道称为tunnel(隧道)。因GRE属于第三层协议,故其主要是对某些网络层协议(如:IP,IPX,AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。

GRE规定了如何用一种网络协议去封装另一种网络协议的方法。GRE隧道由两端的源IP地址和目的IP地址来定义,允许用户使用IP包封装IP、IPX、AppleTalk包,并支持全部的路由协议(如RIP、OSPF等)。通过GRE,用户可以利用公共IP网络连接IPX网络、AppleTalk网络,还可以使用保留地址进行网络互联,或者对公网隐藏企业网的私网IP地址。

GRE利用为隧道指定的实际物理接口完成转发,转发过程如下:

1) 所有发往远端VPN的原始报文,首先被发送到隧道源端。

2) 原始报文在隧道源端进行GRE封装,填写隧道建立时确定的隧道源地址和目的地址,然后再通过公共IP网络转发到远端VPN网络。

2.3 GRE数据报文格式

GRE协议数据包的格式是由乘客协议、封装协议和运输协议三部分组成的,其协议栈如下图1所示:

图1 GRE协议栈

1) 乘客协议:乘客协议是指用户要传输的数据,也就是被封装的数据。这是用户真正要传输的数据,它们可以是IP、IPX等。如果是IP协议,其中包含的地址有可能是保留IP地址,例如企业内部的私网IP地址。

2) 封装协议:封装协议用于建立、保持和拆卸隧道。它把乘客协议报文进行了“包装”,加上了一个GRE头部,然后再把封装好的原始报文和GRE头部,放在IP报文的“数据区”中,由IP进行传输。

3) 运输协议:运输协议是乘客协议被封装之后应用的运输协议。IP协议就是最常见的运输协议,一般使用IP协议对GRE协议报文进行运输。

2.4 GRE封解装过程

GRE隧道的封装过程如下:当报文需要经由隧道接口处理时,IP层的输出函数调用tunnel接口的输出函数进行加封装处理,处理结束后,再进行IP转发。

GRE隧道对端的解封装过程如下:当IP层接收到GRE报文,IP层输入入口函数会根据协议开关表,直接调用GRE的解封装处理函数,对GRE解封装。解封装完成后,再将原始数据报文送入IP输入队列中,以便进行进一步的传输。

具体封装过程如下图2所示:

图2 GRE的封装过程

2.5 GRE协议特点

GRE协议具有以下一些特点:

1) 机制简单,对隧道两端设备的CPU负担小。

2) 容易压缩非IP协议的数据包,如IPX或AppleTalk类型的数据包。

3) 数据通信限制在单个专用网络中进行。

4) 不提供数据加密,安全性较差。

5) 不对数据源进行验证。

6) 不保证报文正确到达目的地。

7) 不提供流量控制和QOS特性。

2.6 GRE实际应用

目前GRE这种技术在网络上的应用非常广泛,下面我们主要讲讲在公司内部的其它实际应用:

1)公网IP穿越公司内网访问Internet。假设某大型公司内网采用10.0.0.0/8网段的IP进行建设,不同园区与部门之间采用10网段不同的子网,之间网络通过路由实现互通。公司申请了多个公网固定IP地址用于WEB服务器、邮件服务器等,其中一个IP配置在出口路由器上用于公司内部访问外网。公司实验室有台设备需要与公司外的合作方进行联调测试,该设备需要配置一个公网IP,合作方才能通过Internet访问到。因为实验室用的是公司内网的IP地址,公司内网走的都是10网段的路由,无法走公网路由,只有将实验室设备搬迁至服务器区才能解决,这显然是不安全也是不方便的。那么如何才能在不改变现有网络环境又不用搬迁实验室设备的情况下实现与广域网设备的联调,建立GRE可以很好的解决这个问题。拓扑结构如图3所示:

图3 拓扑结构图

在实验室中放置一台路由器接入公司内网,路由器对外接口配置公司内网10网段的固定IP地址10.28.1.8,对内接口配置IP地址58.60.106.1做为联调设备的虚拟网关,由于10.28.1.8与Internet出口路由器内网接口地址10.29.1.3互通,故我们可以在Router A与Router B之间建一条GRE隧道,使公网IP能够透传公司内网而访问Internet。在Router A上要用命令“ip route 0.0.0.0 0.0.0.0 Tunnel 2”将访问Internet的默认路由全部送往隧道,这样联调设备访问Internet的路由到达Router A后才能经由隧道到达Router B,以致到达Internet。在Router B上要用命令“ip route 58.60.106.35 255.255.255.255 Tunnel 2”将32位掩码的目的IP路由送往隧道,这样从Internet返回的路由才能通过Router B经隧道到达Router A,最终到达联调设备。

2)私网IP穿越公司内网通过NAT方式访问Internet。假设某大型公司内网采用10.0.0.0/8网段的IP进行建设,不同园区与部门之间采用10网段不同的子网,之间网络通过路由实现互通。从安全角度考虑,公司在外网出口处放置防火墙限制用户访问Internet。假如公司某业务部门临时有需求需要实验室私网多台主机访问外网进行联调测试,但因为私网网段无法在公司内网路由,且公司进行了隔离无法访问外网,那么如何在不改变网络结构及配置的情况下最方便的解决此问题,可以通过建立GRE用NAT的方式实现,将多台主机的私网IP转换成出口路由器的公网IP而访问外网。拓扑结构如图4所示:

图4 拓扑结构图

在不改变实验室私网结构的基础上通过新增Router A接入公司内网,在内网接口10.28.1.8及10.29.1.3之间建立GRE,在Router B上启用NAT配置,使私网访问外网的路由经由隧道封装到达Router B之后再通过NAT方式转换为公网IP地址58.60.106.253访问Internet,而回来的路由则在Router B上通过命令“ip route 192.168.8.0 255.255.255.0 Tunnel 2”将整个私网网段的路由送往隧道,从而使得实验室整个私网可以访问外网进行联调测试。

3)同网段的公网IP通过内网实现互访。假设应用方式(1)中有两个相距甚远且为不同实验室的设备均需要配置公网IP与合作方进行联调测试,我们可以通过建立两个GRE去分别解决,但如果有业务需求需要这两个公网IP同时也实现互访,我们如何实现。拓扑结构如下图5所示:

图5 拓扑结构

按照目前的配置,这两个公网IP是无法互通的。因为58.60.106.184/24与58.60.106.151/24属于同一个网段,当PC1访问PC2的时候,其通过发送广播包来寻找对方,而永远不会将去往对方的数据包送往网关,根据目前的现实环境,数据出不了网关,也就实现不了互访。

在这里可以通过两种方案来解决此问题:

方案一:通过分别在两台主机上增加到对方的32位主机路由,使得同网段的IP互访也将数据包强制送往网关,然后在用户端GRE路由器上分别添加32位的精确路由以修改路由表,使到达对方IP的数据包再强制发往隧道来实现。

方案二:通过缩小两个IP的掩码范围,将24位掩码改为28位从而使得两个IP归属不同子网网段,然后在用户端GRE路由器上分别修改网关配置使其与各自IP分属同一网段,从而使到达对方的数据包直接送往网关,然后送往隧道来实现。

3 结束语

GRE隧道技术作为一种传统的 VPN 组网技术,由于其安全性较差,故在实际VPN组网中经常与IPSec协议一起使用,由IPSec提供用户数据的加密,从而给用户提供更好的安全性,但在相对较为安全的公司或企业的Intranet内部如果能够单独灵活运用,往往能够很好的满足各种业务需求,收到事半功倍的效果,甚至比其它技术更胜一筹,所以我们今后仍需关注此技术及与其它技术的结合使用。

参考文献:

[1] 王达军. 虚拟专用网(VPN)精解[M].北京:清华大学出版社,2004.

[2] 张世勇. 网络安全原理与应用[M].北京:科学出版社,2006.

[3] [RFC1701],Generic Routing Encapsulation[S].

[4] [RFC1702],Generic Routing Encapsulation over IPv4 networks[S].

[5] Tanenbaum A S. Computer Networks[M]. 4版. 北京:清华大学出版社,2004.

[6] Gert De Laet,Schauwers work Security Fundamentals[M].北京:清华大学出版社,2006.

[7] 孙建河,吉逸,周金星.虚拟专用网(VPN)技术详细介绍[EB/OL].[2008-05-30].[2008-06-02]..

上一篇:数字隔离器工作原理及应用实例 下一篇:机床夹具设计手册软件系统的研究