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

一. 概念理解和回顾

上一篇博客说了,切片定义为一个虚拟网络的实例,而组成切片的流可以被当作有所有可能出现的数据包的包头构成的整个几何空间的一个子空间。举一个例子,OpenFlow的流表项会匹配一定的域,我们可以按照不同的域将整个几何空间进行划分。

FLowVisor定义切片为一组流,因此我们可以将切片当作一组域,给定一个数据包包头,我们可以判断出这个数据包包含在哪个流空间中,即可判断出这个数据包属于哪个虚拟网络,所以可以将FLowVisor的一个实例等价于一个流空间。

FLowVisor的设计目标有三点:

这个虚拟化对控制器来说应该是透明的

不同的切片之间是完全独立的

切片定义是可扩展的

二. FLowVisor的的实现

1. 工作流程

FLowVisor类似于一个OpenFlow代理,对OpenFlow交换机和控制器之间的消息进行拦截,如下图左。所有的OpenFlow消息,不论从交换机到用户还是用户到交换机,都会经过FLowVisor,FLowVisor利用OpenFlow协议和用户、交换机进行通信,FLowVisor对交换机和用户来说是透明的,所以在用户看来,他们是直接和交换机通信的。接下来以下图左简单的例子来阐述FLowVisor的操作流程。

 



Bob在控制器上面运行了一个HTTP负载均衡应用,将所有的HTTP流散播到一组服务器上,Bob的FLowVisor的策略是切片网络从而让自己只处理所有源IP为一个固定值的HTTP流,而控制器上可以看到所有的HTTP流,控制器自信可以实现负载均衡的任务,他会下发流表,对所有的HTTP流负载均衡。当Bob的控制器下发一条流表(如将某个流指引到某个服务器),FLowVisor会拦截他(上图左1),和Bob's的切片策略进行对比(上图左2),重写流表项只对固定源IP的HTTP流有效,这样控制器就实现了只控制固定源IP的流,但是他觉得自己控制了所有的流。同样的,对于从交换机向控制器的消息,FLowVisor只允许满足对应切片流空间的消息上传。FLowVisor不需要FLowVisor实例和物理交换机一对一存在,一个FLowVisor实例可以控制多个物理交换机,甚至可以虚拟化另外一个虚拟网路。如上图右

作者公布了源码,是C语言写的,大约7000行。

2. 切片定义策略

FLowVisor中切片被定义为可插入模块(非常方便和便捷),每个策略由文本配置文件来描述的,一个切片一个。对于带宽分配,一个切片的所有流都会被映射到一个Qos组,每个切片有固定数量的交换机CPU和转发流表的预算,网络拓扑被指定为网络结点和端口的列表。

用一个有序的元素列表,类似于防火墙规则来定义的每个切片的流空间,每个规则描述有一个相关的操作,比如,允许,只读或者拒绝,这些被按照特定顺序来进行解析,执行第一个匹配规则的操作。将所有规则组合起来作为流空间的一部分,基本控制了整个切片。只读规则只允许切片接收OpenFlow控制消息,查询交换机的统计信息,不允许在转发表中插入流表。规则是允许重叠的。

我们接着复杂化前面的场景:Bob邀请了他的一些小伙伴和他合作来做HTTP负载均衡实验,网络管理员Alice准许Bob进行这些合作性实验,Alice将参与这个合作性HTTP实验的人员的HTTP流交由Bob控制,她继续负责剩余的HTTP流,另外,Alice还想要运行一个被动的切片来监测整个网络的性能,为了实现这样的功能,我们可以用下面的流空间规则。

Bob'的试验网络:被定义为所有参与实验的人员所需要的HTTP流,他的网络描述文件对每个用户只有一个规则,格式如下:

Allow: tcp_port: 80 and ip = user_ip

凡是来自于交换机中可以匹配这条规则的OpenFlow消息被转发到Bob的控制器,所有Bob意图插入的流表项都会满足这些规则

Alice的生产网络:是Bob网络的补集,所以规则如下:

Deny: tcp_port:80 and ip=user_ip

Allow: all

凡是不进入Bob虚拟网络的交换机的OpenFlow消息都会被进入生产网络的控制器,对于不满足Bob流空间的流生产控制器就可以随意对它们进行控制

Alice的监测网络:需要看到所有网络中的流,他的规则如下:

Read-only: all

这个规则确保Alice的检测网络是完全被动的,不与她的生产网、Bob的试验网产生任何冲突

通过上面的描述,我们可以发现,基于规则的策略是比较简单的,但是他可以满足实验和部署要求,更重要的是大家可以对自己所需要的规则完全DIY,所以十分灵活和可扩展。

经过这两篇文章,我基本理解了FLowVisor的原理和过程,进一步拓宽了自己的思路,下一篇文章详细说下FLowVisor如何隔离不同的虚拟网络

作者:cotyb 

来源:51CTO

时间: 2024-09-20 05:49:37

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

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

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

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

在前面两篇文章:网络虚拟化之FlowVisor:网络虚拟层(上)和网络虚拟化之FlowVisor:网络虚拟层(中)中分别介绍了FLowVisor的特性和实现,三连载的最后一篇介绍虚拟网络的隔离机制. 虚拟化的一个重要元素是切片之间的隔离,因为不同资源的隔离机制是不相同的,接下来将分别描述. 1. 带宽隔离 FLowVisor可以通过标记数据包的VLAN优先级比特位来利用现存的交换机带宽隔离特性.VLAN标签拥有三个比特域,PCP(VLAN Priority Code Point)有一个将数据包映

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

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

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

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

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

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

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

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

网络虚拟化:痛并快乐着

服务器虚拟化改变了IT运营方式,随着越来越多的网络被虚拟化,现在数据中心正在面临另一种变革技术.引入网络功能虚拟化(NFV),单个物理主机能够承载一个多层应用,甚至没有网络流量穿越物理网络.网络功能虚拟化使虚拟化网络设备或网络功能成为了可能,用户能够因网络虚拟化所具备的众多优势而获益. NFV的基础是虚拟交换机,这和服务器虚拟化一样古老,最基本的形式是为运行在单台物理主机之上的虚拟机提供二层连接.经过几年的发展,虚拟化厂商已经给虚拟交换机增加了新功能. 从逻辑角度看,虚拟交换机提供了许多与传统架

SDN解读:网络虚拟化和网络编排

SDN的一个重要目标是实现可以动态分配的灵活网络.虽然SDN的本质是实现集中控制和网络可编程性,但网络虚拟化和网络编排也 同样重要.为什么需要网络编排?通过SDN,网络可以通过一种编排好的方式进行分配,类似于服务器.存储和应用程序等其它IT组件.其中最重要的影响是软件定义网络可以实现自动化.自动化可以快速地分配服务,同时减少出现人为错误的机率.新创公司Anuta Networks和Alcatel-Lucent的Nuage Networks公司都已经推出了SDN编排工具.这些工具的目标用户是那些需

《新一代SDN——VMware NSX 网络原理与实践》——第2章 NSX网络虚拟化概览 2.1VMware NSX网络虚拟化解决方案简介

第2章 NSX网络虚拟化概览 网络虚拟化技术诞生后,有不少厂商都推出了所谓的网络虚拟化解决方案.这些厂商实现"网络虚拟化"的方式各异,有些是自己研发的项目,有些是通过收购,有些是利用开源项目进行再开发.而VMware NSX网络虚拟化平台的基本架构到底是怎样的,它与别的厂家有哪些不同?这些问题会在本章进行探讨. 2.1 VMware NSX网络虚拟化解决方案简介 尽管VMware NSX网络虚拟化平台是通过收购Nicira而获得的,但是在收购一年多时间之后,NSX才正式发布.在这一年多