云数据中心网络虚拟化——网络虚拟化的传统技术之VPN

书接上文,说完了VLAN,该VPN隆重登场了。相比于VLAN这种简单的局域网技术,VPN可是要复杂的多。VPN并不是一种协议或者标准,而是一类技术的统称,或者更准确地说,是用户跨越广域网进行私有网络互联这样一种业务形态。

早期租用DDN专线或者通过ISDN拨号来实现私有网络互联是可行的,缺点是站点间的带宽是固定的,所用电路资源是独占的,不够灵活而且费用昂贵。之后,出现了ATM/FR/IP这类基于分组的广域网技术,克服了由资源独占引发的问题,VPN的概念也不过由于ATM/FR因为种种原因最后败给了IP,因此现在的VPN技术基本上都是基于IP的VPN了(MPLS也算是IP的一个变种)。当然,有实力的话可以自建光纤进行互联,不过可能也只有像Google这种级别的公司才玩得转。这个小节我们主要来讲一讲基于IP的VPN,如不特殊说明,以下简称IP VPN为VPN。

这段历史告诉我们,VPN并不是网络大牛们一时兴起,心血来潮搞的技术花花肠子,而是因为这是实打实的需求,是巨大的市场,是兵家必争的利益至高点。这十几年来,VPN为运营商带来了不可估量的效益,几乎靠一己之力支撑着运营商的Internet对公业务。如果说VLAN是网络虚拟化的鼻祖,那么VPN则真正把网络虚拟化作为一个领域推广开来了。

VPN的技术可谓五花八门,从这个大类技术的层面上来说,谈不到什么具体的帧格式或者包头,倒是以前面提到的“封装—寻址”通用技术模型来分析VPN技术非常的贴切,因为想要跨越公网进行私网的组网,只能通过封装后再寻址的方法。图中,CE是客户网络的边缘设备,PE是运营商网络的边缘设备,P是核心网中的转发设备。Payload可能是二层的帧也可能使三层的数据包,这取决于客户的目标数据业务。Tag就比较灵活了,QinQ中是S-Tag,PBB中是B-MAC + B-VLAN,MPLS VPN中是MPLS Label,IP GRE中是PE的公网IP地址。从这张图抽象出来VPN的实现非常好理解,客户通过CE把Payload送出来,PE根据特定的逻辑确定对端PE的Tag,进行封装后传给P网络,P网络根据Tag寻址到对端PE,该PE解封装后将Payload原封不动地转发给相关的CE。

在上述VPN技术模型中,又可以分为基于标签和基于隧道的技术。通常来说,基于标签的技术中,标签只负责打标记而不负责转发,如QinQ。而基于隧道的技术中,转发需要依赖于PE封装的数据帧头/数据包头,如MPLS类VPN、GRE等等。其中MPLS类技术较为特殊,是带有标签技术外在特征的隧道技术,而GRE这类需要PE封装完整的外层包头的技术,一般称为Overlay隧道。

讲完了技术模型,概括地讲讲一些具有代表性的VPN技术。之所以说概括性,是因为作者对一些技术里面的细节确实也不是很清楚,VPN的技术种类实在是太繁杂了,光是给VPN类技术的分类方法就能说出七八种来,而每种VPN技术的细节都能够讲上个几十页的。这里,我们将按照应用形式来对常见的VPN技术进行梳理和对比,分为站点对站点VPN以及远程接入VPN。

a)站点对站点
按照业务场景细分,站点对站点VPN还可以再具体分为内联网(Intranet) VPN和外联网(Extranet)VPN。两者的区别主要在前者联的是同一家公司的总部与分支,后者是指公司与外部利益相关群体。不过两者的区别主要是在与一些访问策略和地址规划上的不同,从网络虚拟化的角度来说区别并不大。故此这里的讲解将对两者等同看待,首先简单地介绍一下接下来会涉及到的VPN技术。

QinQ(802.1ad,PB,Provider Bridge),VLAN堆栈技术。通过将公网VLAN 标签(S-Tag)封装在用户私网VLAN 标签(C-Tag)前,使报文带着两层VLAN Tag穿越公网。PE负责增加/剥除4个字节的S-Tag,P要求支持802.1q中的Trunk概念,根据用户的MAC地址和S-VLAN在公网进行2层自学习转发。

PBB(802.1ah,Provider Backbone Bridge),运营商骨干网桥接技术,属于一种MACinMAC的隧道技术,可配合QinQ使用。通过定义双层MAC地址的帧结构,PE将B-MAC和B-Tag封装在CE数据帧前,以P要求支持Trunk概念,根据B-MAC和B-VLAN在公网进行2层自学习转发。

配一张VLAN,QinQ和PBB的格式图吧,一目了然。

GRE(RFC 2784),通用路由封装技术,是最早的Overlay隧道技术。PE封装外层网络层协议包头,P为外层网络层协议路由器,根据外层网络目的地址进行转发。

IPSec(RFC 4031)VPN,支持加密的VPN技术。IPsec VPN工作在IPsec隧道模式,PE封装外层IP包头,P可为任意IP路由器,根据外层公网目的IP进行转发。

BGP/MPLS IP VPN(RFC 2547),使用BGP协议在公网上发布VPN路由,使用MPLS在公网上转发VPN报文。PE负责BGP交互,封装MPLS头,P为支持MPLS的路由器,根据MPLS Label进行转发。

VPWS和VPLS,都属于MPLS VPN(RFC 4664)。VPWS由有Martini VPWS和Kompella VPWS两种实现方式,VPWS由有VPLS-LDP和VPLS-BGP两种实现方式。IPLS,是一种特殊的VPLS,只支持对IP分组的传输,CE为主机或者路由器。

这么多技术,看起来都眼花,技术细节作者确实讲不动了。下面直接从网络虚拟化的设计原则出发来对这些技术进行对比。

首先是连通性,包括两个方面,一是技技术所支持的数据业务类型,二是所支持的流量类型。多说无益,直接上表格。

VPN技术

数据业务

流量类型

QinQ

二层数据帧

点对点、点对多点

PBB

二层数据帧

点对点、点对多点

GRE

三层数据包

点对点、支持伪广播

IPsec VPN

三层数据包

点对点

BGP/MPLS IP VPN

三层数据包

点对点、支持伪广播

VPWS

二层数据帧

点对点、伪广播(有待确认)

VPLS

二层数据帧

点对点、支持伪广播

IPLS

二层数据帧,但是网络层只支持IP分组

点对点,支持伪广播

其次是安全性。从控制平面和转发平面的安全性考虑。

VPN技术

控制平面

数据平面

QinQ

无控制平面

依赖于公网配置

PBB

无控制平面

依赖于公网配置

GRE

无控制平面

不依赖于公网配置,提供Key值进行认证,但不提供加密

IPsec VPN

无控制平面

不依赖于公网配置,提供认证和加密

BGP/MPLS IP VPN

路由发布认证,VRF关联,路由RT等机制

依赖于公网配置

VPWS

Martini方式无控制平面,Kompella方式同BGP/MPLS IP VPN

依赖于公网配置

VPLS

VPLS-LDP方式无控制平面,VPLS-BGP方式同BGP/MPLS IP VPN

依赖于公网配置

IPLS

无控制平面(有待确认)

依赖于公网配置

然后是服务质量。广域网传输是VPN技术转发速率的瓶颈,这里主要考虑上述VPN技术在广域网的传输保障机制。

VPN技术

公网QoS

QinQ

S-Tag中的PRI

PBB

B-Tag中的PRI

GRE

IPsec VPN

专用广域网加速设备

BGP/MPLS IP VPN

MPLS/RSVP TE

VPWS

MPLS/RSVP TE

VPLS

MPLS/RSVP TE

IPLS

MPLS/RSVP TE

至于可扩展性,VPN支持的虚网数理论上限取决于标识虚网的字段位数,实际上受限于PE、P设备上资源的共享和分配。

VPN技术

虚网数量

其他因素

QinQ

S-VLAN标签, 4K*4K

CE为交换机时,P需要学习用户MAC地址,限制了用户规模

PBB

I-SID标签,16million

P根据运营商MAC转发,不需要学习用户MAC地址,比QinQ用户规模大

GRE

一般为特定用户内部自用

无明确因素

IPsec VPN

一般为特定用户内部自用

无明确因素

BGP/MPLS IP VPN

理论上无上限

PE数量,VPN接口数量,路由条目数量,LSP数量等等

VPWS

同上

同上

VPLS

同上

同上

IPLS

同上

同上

运维自动化方面,有控制平面的VPN技术相对好一些,没有控制平面的VPN技术一般为纯静态配置,自动化较差,见表2。

b)远程接入
远程接入这种VPN应用形式,常见的业务场景有两种。一种是移动办公人员接入企业私网,另一种是用户希望绕开默认的网络出口以获得完整的访问权限,俗称“翻墙”。大众所熟知的VPN基本上等同于“翻墙”,其实这只是VPN技术的冰山一角。

相比于站点对站点VPN,远程接入VPN的个人用户数量多而且位置分散。因此,远程接入VPN的技术基本上都是基于隧道的——具有标签性质的技术,大多依赖有限的标签资源和公网的配置,而基于Overlay方式的隧道技术对于公网来说是完全透明的,具备较强的可扩展性和灵活性。

根据隧道承载的数据业务,远程接入VPN可分为二层隧道,三层隧道和高层隧道。其中二层隧道以L2TP(RFC 2661),三层隧道以IPsec(RFC 4031)VPN,高层隧道以SSL(RFC 6101) VPN为目前的主流技术。下面仍然从网络虚拟化的几个基本设计原则出发,对三种技术进行对比。

首先是连通性。老规矩,直接上表格。其中Overlay隧道的特征决定了这些技术基本上都是点对点的,L2TP Multihop(RFC 2661)扩展了L2TP点对多点的能力。

VPN技术

数据业务

流量类型

L2TP

二层数据帧

点对点,点对多点

IPsec VPN

三层数据包

点对点

SSL VPN

主要为web应用

点对点

其次是安全性。远程接入的VPN技术需要直接或者间接地提供对身份验证和数据加密的支持,这同样是出于业务场景的需求。

VPN技术

身份验证

数据加密

L2TP

依赖于PPP实现PAP/CHAP

依赖于PPP/IPsec实现

IPsec VPN

AH/ESP

ESP,通过IKE协商加密算法

SSL VPN

SSL握手协议

通过SSL握手可协商加密算法

然后是服务质量。远程接入VPN,在公网上传输质量的保证只能靠专用设备加速。另外,L2TP扩展了在VPN接入服务器本地网络上的QoS机制(RFC 2661)。

VPN技术

公网QoS

本地QoS

L2TP

区分服务AVP

IPsec VPN

专用广域网加速设备

无直接支持

SSL VPN

专用广域网加速设备

无直接支持

相比于站点对站点VPN技术的复杂性,远程接入VPN技术一般都为Overlay方式,属于公司内部的业务,运营商是不可见的。其可扩展性主要取决于VPN接入服务器的性能,接运维需要通过手工配置,但不需要经常变动。

c)其它VPN分类
除了根据应用形式来对VPN技术进行分类,还有很多其它的分类方式,下面列出其中常见的几种分类,以便读者对VPN技术有更多维度的认识。

分类方式

类型名称

举例/说明

VPN数据业务类型

L3VPN

为用户提供数据包的传输服务,GRE、IPsec、BGP/MPLS VPN等等

 

L2VPN

VPWS

点对点链路仿真

 

 

VPLS

LAN仿真

 

 

IPLS

LAN仿真,但是只用于承载IP数据包

VPN隧道协议层次

二层

在数据链路层封装用户数据,如L2TP、MPLS VPN、QinQ/PBB等

 

三层

在网络层封装用户数据,如GRE、IPsec VPN等

 

高层

在高层封装用户数据,如传输层的SSL VPN

VPN设备归属权

基于PE

由运营商提供并管理,由运营商端设备完成封装/解封装

 

基于CE

技术、运维面向用户,由用户端设备完成封装/解封装

VPN承建运维主体

自建

同前面基于CE

 

运营商实施

基于PE

同前面基于PE

 

 

基于CE

VPN设备位于用户一侧,运营商负责运维

作者简介:
张晨,北京邮电大学未来网络理论与应用实验室研究生
主要研究方向:SDN、虚拟化、数据中心
个人博客:http://sdnv.xyz/
个人邮箱:zhangchen9211@126.com


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/15890.html
分享到:
相关文章
条评论

登录后才可以评论

张晨 发表于16-02-22
1