网络虚拟化之FlowVisor:网络虚拟层(下)

在前面两篇文章:网络虚拟化之FlowVisor:网络虚拟层(上)和网络虚拟化之FlowVisor:网络虚拟层(中)中分别介绍了FLowVisor的特性和实现,三连载的最后一篇介绍虚拟网络的隔离机制。

虚拟化的一个重要元素是切片之间的隔离,因为不同资源的隔离机制是不相同的,接下来将分别描述。

1. 带宽隔离

FLowVisor可以通过标记数据包的VLAN优先级比特位来利用现存的交换机带宽隔离特性。VLAN标签拥有三个比特域,PCP(VLAN Priority Code Point)有一个将数据包映射到八个优先级队列中的其中一个的标准机制,OpenFlow协议里面有对VLAN标签和优先级比特的管理,所以可以给流中的所有数据包一个优先级。

因为,为了增强带宽隔离,FLowVisor重写了所有切片的转发表,加了一个“set VLAN priority”的操作,将优先级置为八个优先级队列中的某一个,一个虚拟网络实例中的所有流根据资源分配策略映射到相应的流组(流组需要网络管理员通过CLI定义)

使用VLAN PCP比特位并不是FLowVisor所固有的,而是为了和商用硬件协调工作所选择的短期变通方案。

2. 拓扑隔离

控制器通过OpenFlow协议发现网络中的结点和链路,在非虚拟网络中,当一个网络设备连接到控制器的TCP监听端口的时候,控制器就可以发现这个设备。FLowVisor作为交换机和控制器中间的一个代理,他只代理用户虚拟网络中的交换机和控制器的连接,同理,用于罗列交换机所有物理端口的OpenFlow消息,也会被FLowVisor拦截,修改为只有虚拟网络中有的端口。

3. 交换机CPU隔离

商用交换机上的CPU都是典型的低功耗嵌入式处理器,因此很容易过载,在大多数交换机硬件中,一个高负载的CPU会导致严重的网络破坏。比如,一个CPU高负载的情况下,硬件转发数据会继续进行,但是交换机会停止响应控制器的OpenFlow请求,导致LLDP链路发现协议超时,让交换机误以为网络连接非常不稳定,网络变得不可用。

交换机的CPU负载主要被下面四种程序瓜分,这四个负载来源需要不同的隔离机制:

产生新流到达的消息:在OpenFlow交换机中,如果一个数据包无法匹配流表,就会向控制器发送PacketIn消息,这个过程消耗了一部分处理资源,如果新流比较多,消息产生很频繁,CPU资源就会耗尽。为了防止饿死,FLowVisor会追踪新流产生的消息到达速率,如果速率超过了阈值,FLowVisor插入一条转发流表规则在一个时间段内丢弃所有的数据包,就这样,FLowVisor利用OpenFlow协议限制了新流的速度。

处理控制器的请求:对于每个虚拟网络实例,FLowVisor通过限制OpenFlow消息速率来限制CPU消耗,因为不同类型的消息消耗不同的CPU资源,因此这个工作现在还略显不足。

“慢路径”转发:除了很快的专用的硬件转发路径,数据包通过“慢路径”转发,这当然会消耗一部分CPU资源,而这个消耗显然是不确定的。FLowVisor通过重写多个转发规则,将他们分开,分别为为一次数据包转发事件来防止控制器一次插入多个“慢路径”转发规则,比如OpenFlow的PacketOut消息,他可以一次下发很多转发规则,但是FLowVisor可以拦截,将其分为多个。这样,“慢路径”数据包会通过上面提到的两条机制:新流产生的消息和控制器的请求来限速。

维持内部状态:所有的网络设备会使用CPU去更新他们的内部计算器、处理事件等等,所以必须留有足够的CPU给交换机“记账”。FLowVisor通过限制上面三点的CPU消耗来保障交换机有足够的资源执行内部功能。

和带宽隔离一样,CPU隔离机制不是FLowVisor固有的设计,更像是一个解决现在硬件抽象问题的应急措施,这个方面未来还需要做很多工作。

4. 流空间隔离

每个虚拟网络只能处理他们流空间中的数据流,FLowVisor对OpenFlow消息进行重写,确保每个切片之恩那个控制他自己的流,不能影响别的切片的流。当然,不是所有的规则都能够被重写来满足某个切片的流空间,FLowVisor只能让规则更加详细精确,比如在网络虚拟化之FlowVisor:网络虚拟层(中)这篇文章中用于描述FLowVisor工作原理的例子中,如果Bob的控制器想创建一个规则去影响所有的流,FLowVisor应该重写规则让其只影响TCP数据流。但是FLowVisor不会重写影响22端口的数据流的规则,让其只影响80端口(TCP数据流),在这种情况下,FLowVisor会给控制器发送一个错误消息。

5. 流表项隔离

FLowVisor会统计每个虚拟网络使用的流表项数目,确保其不会超过一个预先给定的值。对于控制器插入到交换机的的每个规则,FLowVisor会给其计数器加一,如果某个流表到期失效,计数器会减一。由于硬件约束,一些交换机会内部扩展规则来满足多个输入端口,FLowVisor需要处理这个情况。OpenFlow协议为FLowVisor协议提供了一个机制来精确的列出交换机中的所有流表项,当控制器超出了流表项预先给定的值,任何新的规则插入都只会收到“table full”的错误提醒消息。

6. OpenFlow控制通道隔离

除了上面提到的所有物理资源外,OpenFlow控制器通道本身也必须虚拟化和隔离。比如,OpenFlow协议中的所有消息包含一个独一无二的传输ID,FLowVisor必须重写这些传输ID以确保不同控制器的消息不会使用同一个ID,类似的,如果一个数据包的处理需要交换机做决定,需要先将数据包存储在交换机队列中,OpenFlow协议使用一个32位的整数去标识这个队列中的不同数据包。FLowVisor需要确保每个交换机只能访问交换机队列中他自己的数据包。

到这里,将FLowVisor的由来,实现原理,隔离机制都分析了一遍,对于未来网络中必不可少的虚拟层有了一些了解和新的想法思路,我相信,书和论文是拓展思路的不二法门,相信FLowVisor只是网络虚拟层的一个先驱,未来将会有更加完善,更加功能强大,更加智能化的系统产生,希望自己能够在这些方面有所贡献。

作者:cotyb 

来源:51CTO

时间: 2024-08-13 23:20:09

网络虚拟化之FlowVisor:网络虚拟层(下)的相关文章

网络虚拟化之FlowVisor:网络虚拟层(上)

一. 网络虚拟化(虚拟网络) 人类社会的发展在很大方面得益于自然界,飞机受益于鸟,雷达受益于蝙蝠等等,所以专门有个学科为仿生学就是研究和模仿生物的特殊本质,利用生物的结构和功能原理来研制机械或各种新技术的科学技术.而人类社会已经发展了这么多年,沉淀了很多可以和自然界相媲美的创造和思想,计算机就是其中之一.所以,总结人类历史上成功的思想,伟大的创新,举一反三,也是科技进步的重要力量,这篇文章所提到的SDN和网络虚拟化等这些思想在计算机技术中早有应用. 与其说SDN是一种新的技术,不如称他为一种思想

通过SDN和网络虚拟化构建混合网络

部署软件定义网络(SDN)和网络虚拟化技术能够给IT企业带来很多优势,包括快速配置网络资源.降低运营成本以及改善网络可视性.政策和业务流程.而IT管理人员面临的挑战是,面对各种各样的 SDN技术,如何做出正确选择以帮助企业在短期内获得可衡量的优势,并确保其选择的技术可以发展为下一代网络架构.在本文中,我们将探讨IT管理人员在部署SDN和网络虚拟化时需主要考虑的因素.498)this.w idth=498;' onmousewheel = 'javascript:return big(this)'

网络虚拟化之FlowVisor:网络虚拟层(中)

一. 概念理解和回顾 上一篇博客说了,切片定义为一个虚拟网络的实例,而组成切片的流可以被当作有所有可能出现的数据包的包头构成的整个几何空间的一个子空间.举一个例子,OpenFlow的流表项会匹配一定的域,我们可以按照不同的域将整个几何空间进行划分. FLowVisor定义切片为一组流,因此我们可以将切片当作一组域,给定一个数据包包头,我们可以判断出这个数据包包含在哪个流空间中,即可判断出这个数据包属于哪个虚拟网络,所以可以将FLowVisor的一个实例等价于一个流空间. FLowVisor的设计

网络虚拟化:科技巨头们的下一个战场

上个月底,虚拟化网络服务提供商Big Switch Networks从红点创投(Redpoint Ventures)和高盛(Goldman Sachs)融资2500万美金.然而,该公司至今仍处于产品试用期--也就是说,它并没有任何真正发布的产品.那它凭什么值那么多钱?答案是它的概念:网络虚拟化.简而言之,现有的所有虚拟技术全部基于硬件,虚拟服务器的本质在于共享电脑的计算能力,避免计算能力的分配不均.举个例子,某公司有10服务器,假设每个上面只运行一个软件(现实生活中这个数据要大的多),那么,在某

删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡

  一.识别各类网络设备和网络连接 由于网络虚拟化会在物理机上新增许多虚拟网络设备 (包括虚拟网卡),情况会变得复杂,因而首先我们需要分清他们.当然如果没有进行网络虚拟化,那么就可以跳过这部分.网络虚拟化环境中,通过设备管理器应该可见:以Intel开始的物理网卡(根据物理网卡厂商而不同);Hyper-V Virtual Ethernet Adapter 虚拟网卡;Microsoft Network Adapter Multiplexor 网卡组(Windows Server 2012开始支持网卡

盘点网络虚拟化技术 软件定义网络时代到来

虚拟交换机 虚拟化的环境中,在主机内部,各虚拟机通过模拟物理功能的虚拟交换机vSwitch相互通信,虚拟机和外界通信则是通过虚拟机交换机捆绑的上联物理网卡来进行.这种纯软件实现的交换机功能的控制平面位于主机上,同时主机还负责数据平面,通过虚拟交换机,管理员可以灵活创建端口和端口组.网卡捆绑和vLan划分等配置.VMware标准交换机提供流量调整功能,管理员可对端口设置平均带宽.峰值带宽和突发流量.在方物虚拟化的标准交换机中,管理员还可以对端口组设置最小带宽. 分布式虚拟交换机 在VMware v

混合环境下部署网络虚拟化技术需要考虑的因素

虽然SDN最终可能改变我们架构网络的方式,但在短期内,我们仍然能够在传统和虚拟技术相得益彰的混合环境中部署网络虚拟化技术.在某些情况下,企业可以使用混合交换机,这种交换机既可以传统地转发流量,也可以使用SDN指令来转发流量.需要记住的是,并不是所有OpenFlow交换机都采用传统协议,因此,企业在评估时必须了解交换机的混合能力.另一种混合方法是在旧数据中心安装一个"新补丁".在这里,用户构建一个 新的网段来支持虚拟化,并将其桥接到传统基础设施.在新虚拟化网段 经过验证后,从中学到的教训

网络虚拟化提高安全性的四种方式

  虚拟化已经给IT部门带来了很多礼物.它让不可能不仅成为可能,更成为普遍.从服务器整合到云计算,虚拟化是目前世界范围内占主导地位的计算平台. 除了扩展计算能力,虚拟化也被认为是增加网络安全性的一种方法.VMware运营和销售发展总监Rod Stuhlmuller认为,在网络虚拟化中可以通过四种方式改善安全性. 网络虚拟化如何提高安全性 在云数据中心,应用程序工作负载随意配置,迁移和下线,云管理软件按需分配计算.存储和网络容量. 添加网络虚拟化到动态环境,彻底改变网络的运作模式.这样的深刻变化往

数据中心网络虚拟化三大优势及最佳实践

IT行业里扑面而来的种种流行词,往往使人产生错觉,认为网络虚拟化不过是是IT业为了虚拟一切而衍生出的附属品,或只是一时的流行.然而,我们可以看到网络虚拟化至少有三点好处,并且有几种最优做法值得我们遵循.那么,就让我们来看一下网络虚拟化的显着优势和它的最佳实践. 网络虚拟化优势 首先,网络虚拟化能够帮助更好的利用网络资源.有时候,这意味着能够提高物理资源的利用率.例如,可以把几台虚拟服务器连在单个物理性网络接口卡(NIC)上.单独一台虚拟服务器也许不能充分利用千兆以太网(GbE)或是10千兆以太网