企业云计算:原理、架构与实践指南
上QQ阅读APP看书,第一时间看更新

3.4 虚拟专有网络

3.4.1 网络虚拟化的演进

在网络领域,虚拟化并不是一个新概念。在网络发展之初,为了方便网络管理和隔离,就提出了VLAN技术,随后在广域网场景,又有VPN技术,根据业务场景的不同,分别有基于MPLS的三层VPN和基于VPLS的二层VPN等。在数据中心场景,网络虚拟化也经历了将多台交换机虚拟成一台设备的多虚一技术,以及将一台交换机虚拟成多台交换机的一虚多技术。多虚一技术有IRF(Intelligent Resilient Framework,智能弹性架构)、VSS(Virtual Switch System,虚拟交换机系统)、CSS(Cluster Switch System,集群交换机系统);一虚多技术有MDC(Multitenant Device Context,多租户设备环境)。从路由转发角度看,也有虚拟路由转发(Virtual Routing Forwarding,VRF)技术,通过软件的方式,在一台硬件设备上实现逻辑上的转发面隔离,每个VRF有独立的路由表。

传统的网络虚拟化技术并不能解决云计算时代网络所面临的主要矛盾。以实现逻辑隔离的VLAN技术为例,在大规模云网络环境部署中有两个局限性:一是VLAN基于第二层网络进行标签隔离,在存在大量虚拟机的云计算环境中,虚拟机可能会被调度到数据中心网络中的任何一台物理服务器,而一个VLAN的范围不能无限制放大,配置到所有接入交换机;二是IETF定义的标准协议中,VLANID长度为12位,取值范围为0~4095,可用数量为4096,而在云计算环境中,对网络隔离的需求将远不止4096个虚拟网络。

在云计算场景下,对网络虚拟化的理解主要是两个维度:一是在一个物理网络可以虚拟出多个相互隔离的虚拟网络,从而不同用户可以使用独立的网络资源切片,在满足用户网络隔离需求的同时,提高网络资源利用率;二是通过NFV(Network Function Virtualization,网络功能虚拟化)的方式,将部分网络功能虚拟化,用标准化的服务器替代专有硬件设备,以更灵活的方式提供网络服务。

1.Overlay网络虚拟化技术

鉴于传统虚拟化技术的局限性,业界开始采用新的虚拟化技术来满足云计算对虚拟网络隔离的要求,当前的主要思路是采用Overlay(逻辑隔离)技术。Overlay在网络领域指的是一种物理网络架构上叠加虚拟网络的模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其他网络业务分离。Overlay网络是建立在物理网络上的虚拟网,逻辑节点和逻辑链路构成了Overlay网络。广义上讲,VPN其实也是一种Overlay,但在数据中心场景下,Overlay主要指通过VXLAN、GRE等技术实现的数据中心网络虚拟化。针对上文提到的VLAN技术的两个局限性,Overlay在很大程度上提供了全新的解决方案。

(1)虚拟机创建的灵活性:Overlay是一种封装在IP报文之上的新的数据格式,可以在三层路由的网络中建立起逻辑的二层网络,因而具备大规模扩展能力。同时,IP网络本身具备很强的故障自愈和负载均衡能力,采用Overlay技术后,利用现有网络进行技术迭代,便可用于支撑新的云计算业务。

(2)针对网络隔离规模的限制:在Overlay技术中引入了类似VLANID的用户标识,但对标识的范围做了很大的扩展,如VXLAN技术引入的VXLANID,支持上千万级别的用户标识。

Overlay网络由边缘设备、控制平面和转发平面组成。边缘设备是指与虚拟机直接相连的设备;控制平面主要负责虚拟隧道的建立维护以及主机位置性信息的通告;转发平面是承载Overlay报文的物理网络,如图3.4所示。

图3.4 Overlay体系架构

Overlay的类型可以分为网络Overlay、主机Overlay和混合式Overlay三大类,如图3.5所示。

图3.5 Overlay的类型

(1)网络Overlay指的是隧道封装和解封装在接入交换机完成,通过隧道协议构建起逻辑二层网络。

(2)主机Overlay指的是隧道封装在服务器的vSwitch上完成,不用增加新的网络设备即可完成Overlay部署,可以支持虚拟化的服务器之间组网互通。

(3)混合Overlay指的是采用网络Overlay和主机Overlay的混合组网,可以支持物理服务器和虚拟服务器之间的组网互通。混合Overlay采用软硬件结合的方式,使得软硬件都能发挥自己的优势,也保障了Overlay网络的整体性能。

Overlay在现阶段有如下三大主流技术路线:VXLAN、NVGRE和STT。这三种Overlay技术,大体思路均是将以太网报文承载到某种隧道层面,差异在于选择和构造隧道的实现方式不同,而底层均是IP转发。

表3.1展示了这三种技术的主要特性对比。VXLAN和STT对网络设备的流量平衡要求较低,即对链路的负载分担适应性较好,一般网络设备可以对L2~L4数据进行链路聚合或等价路由流量负载分担;NVGRE要求网络设备检测GRE扩展头并对FlowID执行哈希算法,对硬件要求比较高;STT对TCP进行了修改,让隧道模式接近UDP性质,技术相对复杂;VXLAN利用通用的UDP传输技术,适用性很强。总体来看,VLXAN技术优势明显。

表3.1 Overlay三大主流技术的主要特性对比

由于VXLAN是基于通用UDP运行,所以只要是在以IP构建的物理网络上,所有IP可达的边缘设备(VTEP,可以是交换机或服务器)都有条件构建一个大范围二层网络。这种实现,屏蔽了物理网络的模型与拓扑差异,将物理网络的技术实现与计算虚拟化的关键要求分离开来,几乎可以支持以太网在任意网络上的透传,使得云计算资源调度范围急速扩大。

VXLAN在IP网络的每个端点上都有一个VTEP负责VXLAN协议报文的封包和解包,也就是在原始数据报文上封装VTEP通信的报文头部。物理网络上可以创建多个VXLAN网络,这些VXLAN网络可以认为是多个隔离的隧道,不同节点的虚拟机能够通过隧道直连。每个VXLAN网络由唯一的VNI标识,不同的VXLAN相互隔离。

2.网络虚拟化功能

除了通过Overlay技术解决用户的网络隔离需求外,在云计算场景下,用户会按需购买、使用和释放L4~L7层网络服务,如与互联网通信时用到的负载均衡、公网IP地址映射等功能,这些网络服务具有生命周期动态变化和服务性能弹性伸缩等特点。在此背景下,一是要解决不同租户网络资源的隔离;二是要做到快速创建、配置、扩容和回收这些网络资源。

负载均衡、VPN和NAT等这些L4~L7层网络服务在传统数据中心都依赖于专有硬件设备去提供,但基于硬件的网络功能设备存在灵活性差、扩展能力差、统一管理困难等问题。NFV是一种利用虚拟化技术实现网络功能的方式,在标准服务器上提供以往在专用硬件中实现的网络功能,通过将网络功能和物理设备解耦,使网络功能不受硬件设备限制,部署方式更灵活。对于NFV产品的研发,在业界也是热点,传统厂商、运营商和云计算厂商都在投入资源研发NFV,NFV的概念很广,在这里不做展开介绍,对云计算场景而言,最为重要的是将租户最常用的NAT、ELB、VPN等功能通过软件化的方式实现,并按需分配给租户使用。

有了虚拟网络的Overlay和NFV之后,还需要对网络进行统一的编排和控制。通过API自动化编排,允许网络根据需要进行扩展,使网络服务能够在多个设备上进行配置,并且可以根据需要部署资源,从而使网络的部署更加便捷和快速,让用户获得更好的使用体验。网络的自动化编排主要涉及两方面内容:一是网络资源的生命周期管理,包括创建、删除、修改、扩容等一系列动作;二是对转发的指导,确保数据报文可以按网络编排的需要进行转发。

3.4.2 软件定义网络与网络虚拟化

传统的网络建设方式,需要工程师手动部署所有网络设备的配置,这样不但效率低下,而且对人力的消耗也很大。同时,每个设备都独立完成网络控制,从源地址到目的地址的转发行为由每个网络节点独自决定。在云数据中心场景中,为了满足服务的快速部署和动态调整,传统的网络建设方式已完全不能适应业务的发展,必须实现对网络资源的自动化交付。对数据报文的转发也应该按云计算业务的需要进行表项和策略的下发。

2006年,SDN(Software Defined Network,软件定义网络)诞生于美国的斯坦福大学Clean Slate课题,其核心理念是对传统网络的控制和转发层面进行改造,让其控制与转发分离,将软件应用到网络控制当中。

2011年,一个以网络用户为主导的非营利性组织ONF(Open Networking Foundation)诞生了。ONF是致力于推进SDN标准化的一个用户驱动的组织,工作重点是制定南向接口标准协议OpenFlow,制定硬件行为转发标准。

2013年以设备商和软件商为主导的SDN组织ODL(Open Day Light)腾空出世。ODL是由Linux基金会推出的一个开源项目,集聚了行业中领先的供应商和Linux基金会的一些成员。ODL的主要目的在于推出一个通用的SDN控制平台,在这个平台上进行SDN普及与创新,供开发者基于其构建商业产品,或者贡献代码。至此,SDN进入一个崭新的时期,逐渐应用到商业产品当中。

SDN将网络划分为数据转发层和控制层,控制层与数据转发层分离:控制层更灵活,数据转发层更标准化。SDN的出现为网络虚拟化服务部署提供了新的解决方案。通过集中控制,网络管理员可以通过控制器的API编写程序,实现自动化服务部署,大大缩短业务部署周期,并实现按需动态调整。SDN的体系架构如图3.6所示。

图3.6 SDN的体系架构

SDN的出现使网络虚拟化更加灵活、高效,网络虚拟化已成为SDN的重量级应用。当前的SDN网络架构通常采用控制器集群的形式,收集整个网络的拓扑和流量信息,计算流量转发路径,并将转发表项发送给交换机(包括硬件交换机和vSwitch)。交换机根据下发的转发表里的条目执行转发操作。控制层从传统网络的单个设备剥离并集中在控制器上。转发层由交换机组成。

与传统网络相比,SDN网络具有许多优点,例如控制和转发的分离。这一设定打破了传统设备的约束,提高了新服务的部署速度,并优化了整个网络层的流量。在SDN网络中,开发人员和用户都可以更多地发挥想象力,而不受各种传统网络协议的限制。

狭义的SDN主要是转控分离,通过SDN控制器集中进行转发表项的下发;广义的SDN更强调网络的可编排性,通过软件的方式实现网络业务的自动化开通,并根据业务需要进行网络调整。在云计算场景下,SDN对网络的编排,主要是以下两方面。

(1)租户网络的虚拟化:通过Overlay技术将物理网络抽象出来,划分出多个隔离的虚拟网络提供给租户,让不同的租户独立管理自己的网络环境。而这里的网络虚拟化,都通过SDN控制器对网络设备进行统一控制来实现。租户可以根据自己的业务需求,灵活编排自己的网络。

(2)网络功能的虚拟化:通过标准服务器将网络功能虚拟化以后,NFV网元具备了提供网络服务的能力。但是,要满足租户使用云计算网络服务的要求,还需要对NFV网元进行统一编排。按照云计算的业务需求,对NFV网元实现生命周期管理,可以按需动态创建、删除和扩容NFV资源,并且根据业务的流量模型,下发对应的转发表项或转发规则,确保业务报文被正确转发。

3.4.3 虚拟网络的安全隔离技术

云环境下的虚拟网络是构建在物理网络上的逻辑网络,如何实现虚拟网络的安全隔离,可以从以下三方面展开来看。

(1)网络资源的安全隔离:网络资源虚拟化只是完成从物理资源到虚拟资源的抽象过程,资源本身还是混在一起的。为了实现真正意义上的网络虚拟化,还需要有租户的概念,根据租户来分配隔离的网络资源,以便不同租户的计算和存储等资源不受其他租户的影响。

(2)虚拟网络内部的安全隔离:虚拟化带来的最大威胁是虚拟机之间如何隔离。云计算环境通过部署分布式防火墙(例如,iptables),实现在同一虚拟网络内部(同一台物理服务器或者不同的物理服务器)不同虚拟机之间的安全隔离,避免虚拟机被非法访问或被恶意攻击,虚拟机之间的访问规则可以由租户自己定义。

(3)网络地址映射:出于安全的考虑,并不会将云主机的地址直接暴露在互联网,而是通过地址映射的方式,实现对云主机的保护。租户可以购买提供互联网服务的NAT网关或负载均衡产品,当租户的虚拟机需要与互联网通信时,可以将云主机的IP转化成公网IP。不同租户的虚拟网络是相互隔离的,而与互联网通信时,公网IP地址映射确保租户在创建云主机时可以使用自定义的IP地址,即便不同租户的IP地址发生冲突,也不会对业务产生影响。

3.4.4 平安云的虚拟专有网络

1.VPC

平安云的虚拟专有网络(Virtual Private Cloud,VPC)是基于平安云构建的一个隔离的网络环境,是用户在云上的私有网络,可以由用户自定义,不同VPC在逻辑上相互隔离。用户能够在自己定义的虚拟网络中使用平安云资源,例如,在VPC中创建云主机、存储和数据库等资源,并通过安全组实现VPC内的访问控制,通过NAT网关、ELB等产品连接公网。平安云VPC的架构如图3.7所示。

图3.7 平安云VPC的架构

对于企业用户而言,VPC主要起以下作用。

(1)资源隔离:VPC提供隔离的计算和网络环境,满足不同部门/业务的网络隔离需求;

(2)增值业务接入:每个VPC可以提供独立的NAT网关、弹性IP、安全组、VPN、ELB等增值业务。

VPC是地域级的产品,而一个地域内可以有多个可用区(AZ),所以VPC是可以覆盖到不同AZ的。VPC中的子网是AZ级的产品,只在一个AZ内有效。同一个VPC的子网可以分布在不同的AZ来实现业务在网络层面的高可用。

平安云的用户可以根据业务需求创建多个VPC,多个VPC在网络层通过隧道进行逻辑隔离。而不同用户的VPC之间如果要进行通信,除了需要打通底层网络的隧道隔离,还需要在API层进行用户账号之间的授权,为用户的云上资源提供双层保护。

一个VPC内的ECS云主机之间的传输数据包都会加上隧道封装,带有唯一的隧道标签进行标识,然后送到传统物理网络上进行传输。不同VPC内的ECS云主机因为所在的隧道标签不同,本身处于两个不同的逻辑网络,所以不同VPC内的ECS实例无法进行通信,天然地进行了隔离。

平安云最早沿用金融数据中心的标准,将VPC划分为DMZ、SF、PTR三个默认隔离的网络域,以方便进行业务部署。用户可以在网络域下创建子网,并将虚拟机部署在子网里。在逐步发展演进的过程中,也为了更好地服务平安云的用户,对于VPC内的隔离已经交由用户自主规划,可通过安全组来自定义VPC内的隔离区域。

另外,平安云通过NFV软件化了L4~L7层网络功能,提供了负载均衡ELB、VPN网关、NAT网关等服务。通过NFV,实现了网元纯软件化和硬件设备解耦,一方面可以采用通用硬件降低成本;另一方面可以快速部署业务,并且实现网络资源的智能调度,满足自动扩容和节能减排的需求。

2.安全组

针对VPC内的云主机访问控制的需求,平安云提供了安全组进行云主机之间的安全隔离。安全组从底层技术实现来看是一种分布式的防火墙,可以对云主机的出入流量进行访问控制,帮助用户在云上的网络环境中划分隔离区域。

安全组中可以定义各种访问规则,当云主机加入该安全组后,即受到这些访问规则的保护。可以说安全组其实是一组云主机的集合,当集合有与其他隔离区域互通的需求时,就需要设置对应的安全组规则。安全组会记录有关进出云主机实例的流量的信息。将基于流量的连接状态以确定允许还是拒绝流量。这使安全组可以是有状态的。有状态是一种记忆功能,即一个包允许入站就允许出站,允许出站就允许入站。

用户可以根据虚拟机的属性灵活定义安全组,包括授权策略、出入方向、协议、授权地址等元数据。安全组是具有同等安全要求的一组虚拟机。安全组的策略可以细化到每台云主机。每个安全组对应一个安全隔离域,可以基于安全组定义自己的访问控制规则,实现域内和域外的安全隔离。用户可以将具有相同属性的虚拟机绑定到同一个安全组,实现VPC内的业务划分。如果一台虚拟机具有多重属性,可以通过绑定到不同的安全组来满足业务需求。