admin管理员组

文章数量:1567551

2024年7月26日发(作者:)

第六章 VPN简介及防火墙GRE VPN技术v1.0

幻灯片 1

幻灯片 2

幻灯片 3

幻灯片 4

幻灯片 5

虚拟专用网(VPN)是指通过共享的公共网络建立私有的数据通道,将各个需要

接入虚拟网的网络或终端通过通道连接起来,构成一个专用的、具有一定安全性

和服务质量保证的网络。

传统的VPN组网主要采用专线VPN和基于客户端设备的加密VPN两种方式。

专线VPN是指用户租用数字数据网(DDN)电路、ATM永久性虚电路(PVC)、

帧中继(FR)PVC等组建一个二层的VPN网络,骨干网络由电信运营商进行

维护,客户负责管理自身的站点和路由。基于客户端设备的加密VPN则将VPN

的功能全部由客户端设备来实现,VPN各成员之间通过非信任的公网实现互联。

第一种方式的成本比较高,扩展性也不好;第二种方式对用户端设备及人员的要

求较高。

IETF草案对基于IP的VPN的理解是:“使用IP机制仿真出一个私有的广域网”。

即通过隧道技术在公共数据网络上模拟出一条点到点的专线技术。所谓虚拟,是

指用户不再需要拥有实际的专用长途数据线路,而是利用Internet的长途数据线

路建立自己的私有网络。所谓专用网络,则是指用户可以为自己制定一个最符合

自己需求的网络。

随着IP数据通信技术的不断发展,基于IP的VPN技术逐渐成为VPN市场的主

流。由于IP VPN采用IP网络来承载,而且运营商网络越来越完善,因此成本

较低,服务质量也足以满足客户需求,并且具有较好的可扩展性和可管理性。也

正是如此,越来越多的用户开始选择IP VPN,运营商也建设IP VPN来吸引更

多的用户。

幻灯片 6

VPN主要通过隧道技术来实现业务,但是由于公网上业务复杂,安全性较差,

因此VPN还需采取其他技术保证数据的安全性,主要包括加解密技术、密钥管

理技术、 数据认证技术和身份认证技术等。

隧道技术

隧道技术是VPN技术中最关键的技术。隧道技术是指在隧道的两端通过封装以

及解封装技术在公网上建立一条数据通道,使用这条通道对数据报文进行传输。

隧道是由隧道协议形成的,分为第二、三层隧道协议。二层隧道协议,使用二层

网络协议进行传输,它主要应用于构建远程访问虚拟专网,第二层隧道协议主要

有L2F、PPTP、L2TP等。L2TP协议是目前IETF的标准,由IETF融合PPTP

与L2F而形成;三层隧道协议,用于传输三层网络协议,它主要应用于构建企

业内部虚拟专网和扩展的企业内部虚拟专网,主要的第三层隧道协议有VTP、

IPSec等。IPSec(IP Security)由多个协议组成,并通过这个协议集来提供安

全协议选择、安全算法,确定服务所使用密钥等服务,从而在IP层提供安全保

障。

加解密技术

加解密技术是数据通信中一项较成熟的技术,VPN技术可以借助加解密技术保

证数据在网络中传输时不被非法获取。即当数据被封装入隧道后立即进行加密,

只有当数据到达隧道对端后,才能由隧道对端对数据进行解密。

密钥管理技术

密钥管理技术再VPN中的主要任务是在不安全的公用数据网上安全地传递密钥

而不被窃取。最典型的应用就是IKE技术,IKE技术主要被IPSec VPN所借用,

具体原理将在随后章节进行介绍。

数据认证技术和身份认证技术

数据认证技术主要保证数据在网络传输过程中不被非法篡改。数据认证技术主要

采用哈希算法,由于哈希算法的不可逆特性以及理论上的结果唯一性,因此在摘

要相同的情况下可以保证数据没被篡改过。

身份认证技术主要保证接入VPN的操作人员的合法性以及有效性,主要采用“用

户名密码”方式进行认证,对安全性较高的还可以使用USB KEY等认证方式。

幻灯片 7

按照业务用途类型,可以将VPN划分为远程访问虚拟网(Access VPN)、企

业内部虚拟网(Intranet VPN)和企业扩展虚拟网(Extranet VPN),这三种类

型的VPN分别与传统的远程访问网络、企业内部的Intranet以及企业网和相关

合作伙伴的企业网所构成的Extranet相对应。

Access VPN

如果企业的内部人员移动或有远程办公需要,或者商家要提供B2C的安全访问

服务,就可以考虑使用Access VPN。

Access VPN通过一个拥有与专用网络相同策略的共享基础设施,提供对企业内

部网或外部网的远程访问。AccessVPN能使用户随时、随地以其所需的方式访

问企业资源。Access VPN包括模拟、拨号、ISDN、数字用户线路(xDSL)、

移动IP和电缆技术,能够安全地连接移动用户、远程工作者或分支机构。

Access VPN最适用于公司内部经常有流动人员远程办公的情况。出差员工利用

当地ISP提供的VPN服务,就可以和公司的VPN网关建立私有的隧道连接。

幻灯片 8

Intranet VPN

如果要进行企业内部各分支机构的互联,使用Intranet VPN是很好的方式。

越来越多的企业需要在全国乃至世界范围内建立各种办事机构、分公司、研究所

等,各个分公司之间传统的网络连接方式一般是租用专线。显然,在分公司增多、

业务开展越来越广泛时,网络结构趋于复杂,费用昂贵。利用VPN特性可以在

Internet上组建世界范围内的Intranet VPN。利用Internet的线路保证网络的互

联性,而利用隧道、加密等VPN特性可以保证信息在整个Intranet VPN上安全

传输。Intranet VPN通过一个使用专用连接的共享基础设施,连接企业总部、远

程办事处和分支机构。企业拥有与专用网络的相同政策,包括安全、服务质量

(QoS)、可管理性和可靠性。

幻灯片 9

Extranet VPN

如果是提供B2B(Business to Business)之间的安全访问服务,则可以考虑

Extranet VPN。

随着信息时代的到来,各个企业越来越重视各种信息的处理。希望可以提供给客

户最快捷方便的信息服务,通过各种方式了解客户的需要,同时各个企业之间的

合作关系也越来越多,信息交换日益频繁。Internet为这样的一种发展趋势提供

了良好的基础,而如何利用Internet进行有效的信息管理,是企业发展中不可避

免的一个关键问题。利用VPN技术可以组建安全的Extranet,既可以向客户、

合作伙伴提供有效的信息服务,又可以保证自身的内部网络的安全。

Extranet VPN通过一个使用专用连接的共享基础设施,将客户、供应商、合作

伙伴或兴趣群体连接到企业内部网。企业拥有与专用网络的相同政策,包括安全、

服务质量(QoS)、可管理性和可靠性。

Extranet VPN对用户的吸引力在于:能容易地对外部网进行部署和管理,外部

网的连接可以使用与部署内部网和远端访问VPN相同的架构和协议进行部署。

主要的不同是接入许可,外部网的用户只有在被许可时才有机会接入企业内网,

访问特定的资源。

幻灯片 10

L3VPN

三层VPN主要是指VPN技术工作在协议栈的网络层。以IPSec VPN技术为例,

IPSec报头与IP报头工作在同一层次,封装报文时或者是以IPinIP的方式进行

封装,或者是IPSec报头与IP报头同时对数据载荷进行封装。

除IPSec VPN技术外,主要的三层VPN技术还有GRE VPN。GRE VPN产生

的时间比较早,实现的机制也比较简单。GRE VPN可以实现任意一种网络协议

在另一种网络协议上的封装。与IPSec相比,安全性没有得到保证,只能提供

有限的简单的安全机制。

L2VPN

与三层VPN类似,二层VPN则是指VPN技术工作在协议栈的数据链路层,即

数据链路层。二层VPN主要包括的协议有点到点隧道协议(PPTP, Point-to-Point

Tunneling Protocol)、二层转发协议(L2F, Layer 2 Forwarding)以及二层隧

道协议(L2TP, Layer 2 Tunneling Protocol)。

幻灯片 11

幻灯片 12

通用路由协议封装(GRE, Generic Routing Encapsulation)是由Cisco和

Net-smiths等公司于1994年提交给IETF的,标号为RFC1701和RFC1702。

GRE是用来对某些网络层协议如IPX(Internet Packet Exchange)的报文进行

封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。GRE可以

作为VPN的第三层隧道协议,为VPN 数据提供透明传输通道。作为一种封装

方法,它的实用性很强,只是规定了在一种协议上封装并转发另一种协议的通用

方法,所以在VPN中,GRE封装使用的非常普遍。

系统收到需要进行封装和路由的某网络层协议(如IPX)数据时,将首先对其加

上GRE报文头,使之成为GRE 报文,再将其封装在另一协议(如IP)中。这

样,此报文的转发就可以完全由IP协议负责。

相关的概念解释如下:

载荷(Payload):系统收到的需要封装和路由的数据报称为载荷。

乘客协议(Passenger Protocol):封装前的报文协议称为乘客协议。

封装协议(Encapsulation Protocol):上述的GRE协议称为封装协议,也称为

运载协议(Carrier Protocol)

传输协议(Transport Protocol或者Delivery Protocol):负责对封装后的报文

进行转发的协议称为传输协议。

幻灯片 13

各字段解释如下:

C:校验和验证位。如果该位置1,表示GRE 头插入了校验和(Checksum)

字段;该位为0 表示GRE 头不包含校验和字段。

K:关键字位。如果该位置1,表示GRE 头插入了关键字(Key)字段;该位

为0表示GRE 头不包含关键字字段。

Recursion:用来表示GRE 报文被封装的层数。完成一次GRE 封装后将该字

段加1。如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限

次的封装。

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

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

Protocol Type:乘客协议的协议类型。

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

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

幻灯片 14

GRE的特点

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

本身不提供数据的加密。

不提供流量控制和QoS。

幻灯片 15

幻灯片 16

GRE在设备上具体实现时,一般都需要生成一个虚拟的逻辑接口——隧道接口

(Tunnel接口)。隧道接口是为实现报文的封装而提供的一种点对点类型的虚

拟接口,与Loopback接口类似,都是一种逻辑接口。

隧道接口包含以下元素:

源地址:报文传输协议中的源地址。从负责封装后报文传输的网络来看,隧道的

源地址就是实际发送报文的接口IP地址。

目的地址:报文传输协议中的目的地址。从负责封装后报文传输的网络来看,隧

道本端的目的地址就是隧道目的端的源地址。

隧道接口IP地址:为了在隧道接口上启用动态路由协议,或使用静态路由协议

发布隧道接口,要为隧道接口分配IP地址。隧道接口的IP地址可以不是公网地

址,甚至可以借用其他接口的IP地址以节约IP地址。但是当Tunnel接口借用

IP地址时,由于Tunnel接口本身没有IP地址,无法在此接口上启用动态路由

协议,必须配置静态路由或策略路由才能实现路由器间的连通性。

封装类型:隧道接口的封装类型是指该隧道接口对报文进行的封装方式。一般情

况下有四种封装方式,分别是GRE、MPLS TE、IPv6-IPv4 和IPv4-IPv6。

经过手工配置,成功建立隧道之后,就可以将隧道接口看成是一个物理接口,可

以在其上运行动态路由协议或配置静态路由。

幻灯片 17

报文在GRE 隧道中传输包括封装和解封装两个过程。以图的网络为例,如果私

网报文从防火墙A(FW A)向防火墙B(FW B)传输,则封装在FW A上完成;

而解封装在FW B上进行。

FW A 从连接私网的接口接收到私网报文后,首先交由私网上运行的协议模块处

理。

私网协议模块检查私网报文头中的目的地址并在私网路由表或转发表中查找出

接口,确定如何路由此包。如果发现出接口是Tunnel接口,则将此报文发给隧

道模块。

隧道模块收到此报文后进行如下处理:

1. 隧道模块根据乘客报文的协议类型和当前GRE隧道所配置的Key和

Checksum参数,对报文进行GRE 封装,即添加GRE头。

2. 根据配置信息(传输协议为IP),给报文加上IP头。该IP头的源地址就是

隧道源地址,IP头的目的地址就是隧道目的地址。

3. 将该报文交给IP模块处理。

IP模块根据该IP头目的地址,在公网路由表中查找相应的出接口并发送报文。

之后,封装后的报文将在该IP公共网络中传输。

解封装过程和封装过程相反。FW B从连接公网的接口收到该报文,分析IP 头

发现报文的目的地址为本设备,且协议字段值为47,表示协议为GRE(参见

RFC1700),于是交给GRE 模块处理。GRE 模块去掉IP头和GRE 报头,

并根据GRE头的Protocol Type字段,发现此报文的乘客协议为私网上运行的

协议,于是交由此协议处理。此协议像对待一般数据报一样对此数据报进行转发。

幻灯片 18

GRE本身提供两种安全机制:校验和验证以及识别关键字验证,这两种安全机

制都属于比较弱的安全机制,因此如果应用中需要更多的安全机制,可以将GRE

和其他安全性较高的VPN技术进行结合,例如和IPSEC进行配合。

校验和验证是指对封装的报文进行端到端校验。RFC1701(Generic Routing

Encapsulation)中规定:如果GRE 报文头中的C 位置为1,则校验和有效。

校验和是GRE 头中的可选字段。如果C 位置1,则发送方将根据GRE头及

payload 信息计算校验和,在报文头的Checksum 字段的位置插入校验和,将

包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中

的校验和进行比较。如果计算出来的校验和与报文中的校验和一致,则对报文进

一步处理,否则丢弃报文。实际应用时,隧道两端可以根据需要选择是否配置校

验和,从而决定是否触发校验功能。因校验和配置不同,对收发报文的处理方式

也不同。

识别关键字(key)是指对Tunnel接口进行校验。通过这种弱安全机制,可以

防止错误识别、接收其它地方来的报文。RFC1701中规定:若GRE报文头中

的K位置为1,则在GRE头中插入关键字字段,收发双方将进行通道识别关键

字的验证。关键字字段是一个四字节长的数,在报文封装时被插入GRE头。关

键字的作用是标志隧道中的流量。属于同一流量的报文使用相同的关键字。在报

文解封装时,隧道端将基于关键字来识别属于相同流量的数据报。只有Tunnel

两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。这里的“完

全一致”是指两端都不设置识别关键字;或者两端都设置关键字,且关键字的值

相等。

幻灯片 19

幻灯片 20

本文标签: 协议隧道报文技术