一、硬件设备虚拟化
硬件设备虚拟化主要有两个方向:在传统的基于x86架构机器上安装特定操作系统,实现路由器的功能,以及传统网络设备硬件虚拟化。通常,网络设备的操作系统软件会根据不同的硬件进行定制化开发,以便设备能以最高的速度工作,比如思科公司的IOS操作系统,在不同的硬件平台需使用不同的软件版本。近年来,为了提供低成本的网络解决方案,一些公司提出了网络操作系统和硬件分离的思路。典型的网络操作系统是Mikrotik公司开发的RouterOS。这些网络操作系统通常基于Linux内核开发,可以安装在标准的x86架构的机器上,使得计算机可以虚拟成路由器使用,并适当扩展了一些防火墙、VPN的功能。此类设备以其低廉的价格以及不受硬件平台约束等特性,占据了不少低端路由器市场。传统网络设备硬件(路由器和交换机)的路由功能是根据路由表转发数据报文。在很多时候,一张路由表已经不能满足需求,因此一些路由器可以利用虚拟路由转发(VirtualRoutingandForwarding,VRF)技术,将路由信息库(ForwardingInformationBase,FIB)虚拟化成多个路由转发表。此外,为增加大型设备的端口利用率,减少设备投入,还可以将一台物理设备虚拟化成多台虚拟设备,每台虚拟设备仅维护自身的路由转发表。比如思科的N7K系列交换机可以虚拟化成多台VDC。所有VDC共享物理机箱的计算资源,但各自独立工作,互不影响。此外,为了便于维护、管理和控制,将多台物理设备虚拟化成一台虚拟设备也有一定的市场,比如H3C公司的IRF技术。
二、链路虚拟化
链路虚拟化是日常使用最多的网络虚拟化技术之一。常见的链路虚拟化技术有链路聚合和隧道协议。这些虚拟化技术增强了网络的可靠性与便利性。1.链路聚合链路聚合(PortChannel)是最常见的二层虚拟化技术。链路聚合将多个物理端口捆绑在一起,虚拟成为一个逻辑端口。当交换机检测到其中一个物理端口链路发生故障时,就停止在此端口上发送报文,根据负载分担策略在余下的物理链路中选择报文发送的端口。链路聚合可以增加链路带宽、实现链路层的高可用性。在网络拓扑设计中,要实现网络的冗余,一般都会使用双链路上连的方式。而这种方式明显存在一个环路,因此在生成树计算完成后,就会有一条链路处于block状态,所以这种方式并不会增加网络带宽。如果想用链路聚合方式来做双链路上连到两台不同的设备,而传统的链路聚合功能不支持跨设备的聚合,在这种背景下出现了虚链路聚合(VirtualPortChannel,vPC)的技术。vPC很好地解决了传统聚合端口不能跨设备的问题,既保障了网络冗余又增加了网络可用带宽。2.隧道协议隧道协议(TunnelingProtocol)指一种技术/协议的两个或多个子网穿过另一种技术/协议的网络实现互联。使用隧道传递的数据可以是不同协议的数据帧或包。隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过网络传递被封装的负载数据。隧道可以将数据流强制送到特定的地址,并隐藏中间节点的网络地址,还可根据需要,提供对数据加密的功能。一些典型的使用到隧道的协议包括GenericRoutingEncapsulation(GRE)和InternetProtocolSecurity(IPsec)。
三、虚拟网络
虚拟网络(VirtualNetwork)是由虚拟链路组成的网络。虚拟网络节点之间的连接并不使用物理线缆连接,而是依靠特定的虚拟化链路相连。典型的虚拟网络包括层叠网络、VPN网络以及在数据中心使用较多的虚拟二层延伸网络。1.层叠网络层叠网络(OverlayNetwork)简单说来就是在现有网络的基础上搭建另外一种网络。层叠网络允许对没有IP地址标识的目的主机路由信息,例如分布式哈希表(DistributedHashTable,DHT)可以路由信息到特定的结点,而这个结点的IP地址事先并不知道。层叠网络可以充分利用现有资源,在不增加成本的前提下,提供更多的服务。比如ADSLInternet接入线路就是基于已经存在的PSTN网络实现。2.虚拟专用网虚拟专用网(VirtualPrivateNetwork,VPN)是一种常用于连接中、大型企业或团体与团体间的私人网络的通信方法。虚拟专用网通过公用的网络架构(比如互联网)来传送内联网的信息。利用已加密的隧道协议来达到保密、终端认证、信息准确性等安全效果。这种技术可以在不安全的网络上传送可靠的、安全的信息。需要注意的是,加密信息与否是可以控制的。没有加密的信息依然有被窃取的危险。3.虚拟二层延伸网络虚拟化从根本上改变了数据中心网络架构的需求。虚拟化引入了虚拟机动态迁移技术,要求网络支持大范围的二层域。一般情况下,多数据中心之间的连接是通过三层路由连通的。而要实现通过三层网络连接的两个二层网络互通,就要使用到虚拟二层延伸网络(VirtualL2ExtendedNetwork)。传统的VPLS(MPLSL2VPN)技术,以及新兴的CiscoOTV、H3CEVI技术,都是借助隧道的方式,将二层数据报文封装在三层报文中,跨越中间的三层网络,实现两地二层数据的互通。也有虚拟化软件厂商提出了软件的虚拟二层延伸网络解决方案。例如VXLAN、NVGRE,在虚拟化层的vSwitch中将二层数据封装在UDP、GRE报文中,在物理网络拓扑上构建一层虚拟化网络层,从而摆脱对底层网络的限制。
四、基于SDN的网络虚拟化
SDN改变了传统网络架构的控制模式,将网络分为控制层(ControlPlane)和数据层(DataPlane)。网络的管理权限交给了控制层的控制器软件,通过OpenFlow传输通道,统一下达命令给数据层设备。数据层设备仅依靠控制层的命令转发数据包。由于SDN的开放性,第三方也可以开发相应的应用置于控制层内,使得网络资源的调配更加灵活。网管人员只需通过控制器下达命令至数据层设备即可,无需一一登录设备,节省了人力成本,提高了效率。可以说,SDN技术极大地推动了网络虚拟化的发展进程。SDN有三种主流实现方式,分别是OpenFlow组织主导的开源软件(包括Google,IBM,Citrix等公司支持),思科主导的应用中心基础设施(ApplicationCentricInfrastructure,ACI),以及VMware主导的NSX。1.OpenFlowOpenFlow的核心是将原本完全由交换机/路由器控制的数据包转发,转化为由支持OpenFlow特性的交换机和控制服务器分别完成的独立过程。OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlow交换机至少由三部分组成:流转发表(FlowTable),告诉交换机如何处理流;安全通道(SecureChannel),连接交换机和控制器;OpenFlow协议,一个公开的、标准的供OpenFlow交换机和控制器通信的协议。OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。OpenFlow架构如图2所示。2.思科ACIACI可以根据应用需求来确定如何应用网络策略和逻辑拓扑。和使用公开的OpenFlow协议产品不同,思科ACI由应用策略基础设施控制器(ApplicationPolicyInfrastructureController,APIC)和Nexus9000系列产品组合而成。APIC为自动化管理、策略制定和监控状态提供了一个统一平台。APIC是一个高度可扩展的集群软件控制器。与传统SDN控制器不同的地方在于APIC和数据层以及控制层是完全独立的。因此即使APIC离线,网络也能够对终端变化做出响应。3.VMwareNSXNSX是VMware软件定义数据中心的一部分。NSX与其他SDN产品最大的不同在于完全是由软件模拟实现硬件功能。依托VMware的ESXi虚拟化操作系统,NSX可以虚拟化网络设备第二层至第七层的功能(包括路由、防火墙、负载均衡、VPN、QoS等)。对用户来说,NSX提供了一整套逻辑的、虚拟的、简化的网络环境和配置方法,完全不需理会底层的通信过程和数据中心的各种硬件网络设备的设置。NSX架构如图3所示。
五、网络虚拟化对数据中心的影响
网络虚拟化的具体实现会改变目前网络的架构以及网络维护流程。网络虚拟化可以使网络设计、维护简单化以及网络结构扁平化;快速进行网络部署、变更的操作,即可快速根据业务需求重新部署网络结构或进行网络策略的变更;开放性增加,基于OpenFlow的SDN协议是公开的,网络设备可以有更多的选择。当前,数据中心的网络虚拟化仍处在起步阶段,网络运维还需要较高的人工成本。基于SDN技术的网络虚拟化将在数据中心发挥重要的作用。并且随着服务器、存储、网络等硬件资源全面虚拟化,标志着软件定义数据中心(SoftwareDefineDataCenter,SDDC)得以实现。SDDC通过底层硬件架构上加载的一个虚拟基础架构层,提供了数据中心应用程序所需的运行环境,并能管理存储、服务器、交换机和路由器等多种设备。SDDC使数据中心由传统的以架构为中心改为以应用/业务为中心。SDDN使得硬件平台及其相应的操作对上层应用完全透明。管理人员只需定义应用所需的资源(包括计算、存储、网络)和可用性要求,SDDC可从硬件资源中提取出“逻辑资源”,供应用使用。未来,SDDC的发展将改变传统云计算的概念,提高数据中心的健壮性、运营效率以及资源利用率。
作者:刘方明 王彦丞 单位:马俊中国工商银行股份有限公司数据中心