[周报全文]关于网络虚拟化的完备指南

2013-03-01 |  作者:CNW.com.cn |  来源:独家 |  查看原文

摘要网络领域如今正处在一个剧烈变化的时代。这种巨变的主要技术推力之一,就是从服务器虚拟化开始的虚拟化技术波及到了网络,网络虚拟化遂成为网络创新的焦点,本文便是对网络虚拟化最新技术的全面解读。

针对如何优化数据中心以太网,支持其提供服务器虚拟化,已经出现了很多新的和推荐的协议。其中有些协议的目的是希望通过创建多个可共享同一物理基础设施的虚拟以太网来实现网络虚拟化,其共享方式有些类似于让多个虚拟机共享同一台物理服务器的方式。

适用于网络虚拟化的大部分协议的基本原理都是利用封装和隧道技术来创建虚拟网络。其中业界讨论最多的协议包括VXLAN、NVGRE、STT,以及SPB(MAC-in-MAC)。SPB已是IEEE标准,而在有望成为IETF标准的各种协议中,可能性最大的是VXLAN。

传统意义上的网络虚拟化

网络中一对多的虚拟化并不是什么新概念,最常见的例子就是VLAN和VRF(虚拟路由与转发)。

VLAN可将网络划分为最多4094个广播域,在以太网报头中为每个广播域指定一个12位的VLAN ID。VLAN是在共享同一个包交换LAN基础设施中用来隔离不同类型流量的一种很方便的方法。

数据中心在大量使用着服务器虚拟化,而VLAN数量上的限制可能会引起问题,尤其当大量的租户需要获得支持,每个租户都需要多个VLAN的时候。借助802.1Q的链路捆绑,可在数据中心内部扩展VLAN,以支持VM(虚拟机)的迁移,但这样会增加运营成本和复杂程度。即便在基于二层的服务器与服务器之间连接的数据中心里,大量的虚拟机都有自己单独的访问控制地址,而这也会给二层交换机的转发表功能带来负担。

VRF是三层网络虚拟化的一种,其中的物理路由器支持多个虚拟路由器,每个虚拟路由器都运行自己的路由协议并维护自己的转发表。

和VLAN不同,VRF不会在报头中使用标签为每个分组指定具体的VRF。在每一跳都会根据输入接口和帧的信息产生适当的VRF。另外一个要求是,在数据包经过的端到端路径中的每一个中转路由器都需要配置一个VRF实例,以便能够转发该数据包。

利用叠加技术实现网络虚拟化创新

由于传统VLAN或VRF模式存在缺陷,于是开始涌现出众多创建虚拟网络的新技术。其中大多数都是采用封装和隧道技术,在同一个物理网络上通过叠加技术来构建多个虚拟网络拓扑。

一个虚拟网络可以是二层的或三层的网络,而物理网络也可以是二层的、三层的,或者两者结合而成的,这要取决于采用了何种叠加技术。利用叠加技术,外层(封装)报头包含一个24位长的域,其携带一个虚拟网络实例ID(VNID),给要转发的数据包专门指定一个虚拟网络。

虚拟网络的叠加可提供众多的好处,包括:

● 可支持基本上没有数量限制的虚拟网络。例如24位报头可创建高达1600万个虚拟网络。

● 可解耦虚拟网络拓扑、服务类别(L2或L3)和物理网络寻址。这种解耦可避免出现诸如物理交换机上MAC表过大的问题。

● 支持虚拟机的迁移与物理网络的无关性。如果一个VM要改变位置,甚至迁移到新的子网,在叠加边缘的交换机只须更新其映射表便可反映出这个VM的新位置。新VM的网络完全可在网络边缘进行预配置。

● 管理多个租户间相互叠加IP地址的能力。

● 在虚拟网络中支持多路径转发。

各种叠加协议之间的主要差异在于其封装格式和控制平面的功能不同,即允许入口(封装)设备将一个帧映射到适当的出口(拆封)设备。

VXLAN先声夺人

虚拟可扩展LAN(Virtual eXtensible LAN,VXLAN)是在一个三层网络上借助MAC-in-UDP封装,叠加一个二层网络来实现网络虚拟化。VXLAN网段是一个三层构建,可替代VLAN为数据中心的虚拟机生成LAN网段。

因此,一个虚拟机只能在一个VXLAN段内通信或迁移。该VXLAN段有一个24位的VXLAN网络标识符。VXLAN对虚拟机来说是透明的,仍可使用MAC地址来通信。VXLAN封装借助所谓VXLAN隧道端点(VTEP)来完成,该端点一般是通过一台hypervisor交换机或物理接入交换机来提供的。

VXLAN封装允许二层与任何端点进行通信,只要该端点在同一个VXLAN网段内即可,即便这些端点是在不同的IP子网内也没有关系。这可以让虚拟机的实时迁移穿越三层边界。因为MAC帧是在IP包内封装的,因此对二层交换机来说是无须知道MAC地址的。

这样做可以减轻交换机MAC地址表的硬件容量问题。叠加的IP和MAC地址可由VXLAN ID来处理,这个VXLAN ID就像是特定VXLAN网段的限定符或标识符——在这一网段内,IP和MAC地址都是有效的。

如上所述(+微信网络世界),VXLAN采用的是MAC-in-UDP封装。这么做的理由之一是现代的三层设备可解析5个元组(包括4层的网源和目的端口)。VXLAN虽然采用了清晰明确的目的UDP端口,但源UDP端口却可以是任何值。因此一个VTEP便可从跨很多UDP源端口的单一虚拟机上传播所有的流,这样便允许中转的三层交换机在即使是两个虚拟机之间也可以充分利用多路径,甚至是多流的优势来提高效率。

在一个VXLAN叠加网络上,如果VXLAN节点需要和网络的传统网段(例如VLAN)中的节点通信,可以用一个VXLAN网关来执行隧道终端功能,包括封装/拆装。该网关的功能既可利用硬件,也可利用软件来实现。

VXLAN是IETF标准草案的一个子集,其支持厂商有VMware、思科、Arista、博科、红帽和Citrix。IBM也支持VXLAN。在hypervisor 虚拟交换机和物理交换机上实现这个预标准的部署已开始出现。

NVGRE分庭抗礼

采用通用路由封装的网络虚拟化(NVGRE)用的是RFC 2784和RFC 2890所定义的GRE隧道协议。NVGRE在很多方面和VXLAN相似,只有两处例外。其一是 ,虽然GRE封装不是什么新概念,但大多数网络设备却不会去解析硬件的GRE报头,因为这样做可能会影响性能,并且在多路径数据中心LAN中解析流量分发的5元组哈希表也可能产生问题。

另一个是现有的IETF NVGRE标准草案并没有为前面讲述的一般网络叠加时所提到的控制平面功能指定一种解决方案,这可能得留待未来的草案去解决,或者留待SDN控制器去解决。

支持NVGRE的一些厂商(例如微软和Emulex)认为,某些性能问题可通过智能网卡来解决,即用智能网卡卸载hypervisor vSwitch上的NVGRE端点处理。智能网卡或许还拥有与叠加控制器和hypervisor管理系统集成的API。Emulex还演示过从VMware分布式交换机卸载VXLAN处理的智能网卡。

STT身手不凡

无状态传输隧道协议(SST)是在数据中心的二层/三层物理网络上创建二层虚拟网络的第三种叠加技术。从理论上看,VXLAN和STT之间有很多相似之处。如隧道端点都是由hypervisor vSwitch提供的,VNID的长度都是24位,可通过控制传输源报头发挥多路径优势等。

STT封装在两个方面与NVGRE和VXLAN有所不同。第一,在IP报头内使用了无状态TCP类报头,允许端系统的隧道端点利用服务器网卡上的TCP卸载引擎(TCP offload engines,TOE)的TCP分段卸载功能(TCP segmentation offload,TSO)。

利用服务器的好处包括降低了CPU的使用率,并提高了万兆以太网接入链路使用率。STT还可为每个数据包的元数据分配更多的头空间,从而可为虚拟网络的控制平面提供额外的灵活性。有了这些功能,STT便可针对hypervisor vSwitch作为封装/拆装隧道端点进行优化。

STT IETF草案的支持厂商是Nicira,但是也还没有具体的控制平面解决方案。不过Nicira自己的虚拟化解决方案包括类似OpenFlow的hypervisor vSwitch,以及基于中央网络虚拟化控制器的控制平面,可简化虚拟网络的管理。

SPBM、OTV、LISP异曲同工

IEEE 802.1aq SPBM(SPB MAC-in-MAC)采用IEEE 802.1ah MAC-in-MAC封装和IS-IS路由协议,通过VLAN扩展来提供二层网络虚拟化。此外还有通常与SPB相关的无环路等价成本多路径二层转发功能。

VLAN的扩展可借助24位虚拟服务网络(VSN)实例服务ID(I-SID)来实现,后者是外层MAC封装的一部分。和其他网络虚拟化解决方案不同的是,实现SPBM,在hypervisor vSwitch或网卡,以及现有的支持IEEE 802.1ah MAC-in-MAC封装的交换机硬件上无须做什么改变。对SPBM而言,控制平面是IS-IS路由协议提供的。

正如IP/SPB IETF草案所描述的,利用外层SPBM MAC的IP封装,还可对SPBM进行扩展以支持三层转发和三层虚拟化。这一草案规定了SPBM节点如何执行Inter-ISID或Inter-VLAN路由。此外,IP/SPB还可通过在网络边缘扩展虚拟路由和虚拟转发(VRF)实例来提供跨SPBM网络的三层虚拟网络服务,而无须同样支持VRF实例的核心交换机。

通过VLAN扩展的VSN和通过VRF扩展的VSN可在同一个SPB网络上同时运行,为多租户环境提供隔离的二层和三层流量。目前可用的SPBM硬件交换机有Avaya和阿尔卡特朗讯的产品。

如果有关网络虚拟化的探讨没有考虑到思科两种协议中的至少一种,那将是不完全的——这两种协议是:叠加传输虚拟化(Overlay Transport Virtualization,OTV)和位置/ID分离协议(Locator/ID Separation Protocol,LISP)。

OTV是为数据中心内的VLAN在广域网或互联网上的扩展做了优化的,采用的是MAC-in-IP封装。它使用IS-IS路由协议扩展,通过将MAC地址的可到达性广而告之,防止广域网上目的端点未知的泛洪流量。

LISP是一种IP-in-IP封装技术,即便在端点系统迁移到同一张网络的不同子网时,它也允许其保留IP地址(ID)。利用LISP的虚拟机迁移性,IP各端点,如虚拟机便可迁移至任何地方,而不必管它们的IP地址是什么,同时又能维持客户端流量的直接路径路由。利用映射VRF给LISP实例ID来创建三层虚拟网络的方法,LISP还可支持多租户环境。

?外,OpenFlow的未来版本毫无疑问还将支持某些基于标准的叠加功能。不过,OpenFlow还有可能提供另一种类型的网络虚拟化,即通过基于区隔流来隔离网络流量,从而实现网络虚拟化。实现这一点的一个非常简单的方法,就是通过给OpenFlow控制器增加一个过滤层来隔离MAC地址集,而不必依赖VLAN。目前Big Switch的v0.85 Floodlight控制器已经可以提供此类功能。在多租户环境中,OpenFlow控制器也有可能支持每个租户使用一个分离控制器。

网络领域正处在一个剧烈变化的时代。这种巨变的主要技术推手之一就是从服务器虚拟化开始的虚拟化技术的持续发展,这一发展如今已开始波及到了网络。目前IT部门可以使用多种技术实现网络虚拟化:这既包括思科的两个协议OTV和LISP,也包括了众多基于封装和隧道技术的新技术,如VXLAN等。此外,IT组织对SDN的关注程度也开始加速,网络虚拟化就是和SDN有关的主要应用案例之一。(更多内容详见: http://www.cnw.com.cn/P/4743)

相关文章