刚开始接触SDN的时候,就开始对虚拟网络很来兴趣,一直都觉的虚拟网络到底和SDN有什么区别,知道得知Flowvisor这一名字,我才真的了解了下他们的区别,想知道他们的区别在哪,请回看我之前的博客的写的一篇文章《SDN和网络虚拟化的区别》链接:http://blog.csdn.net/u010263670/article/details/8832956
这里可以很形象的说出SDN和虚拟网络的区别,虽然不是很专业,当可以带你们具体了解到他们的区别。
开始说下什么叫Flowvisor:就如同计算机虚拟化的效果一样,我们可以把一个硬件层抽象成一个逻辑层,希望让网络可以抽象出一层虚拟网络,让底层的设备傻瓜化,可以通过上层的控制端来进行对底层虚拟网络层的控制转发。总体提点如下:MPLS—虚拟转发表的问题,WDM—物理层切片,VLAN—链路层切片。
虚拟网络(VrtualNetwork)特点:
1. 带宽(Bandwidth):可以对每个切出来的片来进行带宽分配
2. 全局拓扑(Topology):可以对部署的虚拟网络的节点进行全图拓扑结构查看,有一个比较友好的试图。
3. 流量控制:可以对我们切分出来的虚拟网络中(特定的分层结构),进行对每个进和出的端口进行流量控制,比如HTTP的协议,我们都通过对虚拟端口进行流量控制(这个基础,希望是可以在头文件的openflow协议上进行)。
4. CPU驱动:可以对所有切片的switches和routers进行计算,前提是CPU要进行切分,让CPU对数据报文进行计算。(IGMP概念的理解,是基于IP包的数据。SNMP)
转发表:对转发表的接受量增大,不再像传统的交换机中的(TCAM),很有限,在这里可以把故障和安全的转发表分离。如下图,是一个简单的flowvisor和虚拟主机的对比:
Similar to computervirtualization, FlowVisor is a network virtualization layer that residesbetween the hardware and software architectural components. OpenRoads,PlugNServe, and OpenPipes are examples of virtual network controllers built onNOX
FlowVisor结构:是坐落在底层硬件和控制层,类似一个指令来控制底层的硬件设施,flowvisor利用了openflow协议来对底层网络硬件进行管理,openflow泄露了网络中包的转发是可以编程的。
Flow visor的工作在一个局域网中的特征:
1. Flow visor定义了一个流运行在一个拓扑图中的交换机上
2. Flow visor坐落在控制器和底层物理网络设备之中
3. Flow visor要分配一个link中的最小数据带宽率给一个流
4. Flow visor要分配一个flow table在每一个switch时,flow entry会指定哪一个控制器
Flowspacs:是一个用于存放flow entry位数的切片,现在的openflow版本(0.9版本),是10 fields(fromthe physical port the packet arrived on, the MAC addresses, through to the TCPport numbers)等于256bits。
下面我简单介绍下openflow:现在openflow出到了1.31版本了,不过现在主流的还是1.2的版本。openflow协议是的路由和交换是由一些指令执行的,一般是一个flow entry,它由一个位模式行为,一组计数器list,一个行为动作组成,一个典型的动作,就是一个数据包要在哪个端口转出,还有就是给哪个数据包集合定义到表给定的匹配模式,这些收集每个flow entry都是又一个网络中的flow table来记录的。外部控制器的作用是,在flow entry无法找到目标地址,或者在中途停止转发的时候,动作转发到外部控制器,又外部控制进行对flow entry进行头修改,然后再把修改好的flow entry随后发送给flowtable里,继续达到datapath,通常情况下,外部控制器只接触第一个转发数据包和最后一个数据包,剩下的控制都执行在flow table来进行处理,这样更好的为控制器节省负担,也达到了数据的转发速率。
下面来举个例子,如下图
Flowvisor是一个专门的openflow控制器,主要是用来充当物理层和控制层之间的透明代理。
过程请看如上图。我们可以看到,如果Bob要把HTTP流量传输到指定的用户上,那就要先通过Bob控制器发送一个消息到flowvisor,它会检查Bob的切片策略,然后找到指定的目标,然后就进行报文匹配,再而进行数据传输。这些步骤主要是通过检查、改写、维持这些openflow消息所达到flowvisor的功能。
可以想想,从两个角度来看,如果从switch去看flowvisor,它是个控制器,如果空guest来看,flowvisor就是一个switch。一个flowvisor不一定要一一映射一个物理交换机,它可以映射多个物理交换机,或者映射别的虚拟网络。如下图
A single FlowVisor instance can virtualize manyswitches in parallel. Additionally, because of the transparent design,FlowVisor can trivially recursively slice a virtual slice, creating hierarchiesof FlowVisors.
(1)切片策略
切片主要是用来衡量每一个flowvisor的策略,可以看做,多个切片形成多个flowvisor组件,可以看做多个切片配置文件形成多个转发策略。每一个切片规则都可以说明有关联的动作,例如:允许/拒绝只读,或着按指定的规则去解析,作用在第一匹配规则。
(2)隔离机制:有带宽隔离、拓扑隔离、交换机CPU隔离、Flowspace isolation、流入口隔离、OpenFlow控制器隔离
以上的说明希望可以给大家带来对flowvisor的理解,也可以对virtualnetworw有个深入的了解。希望可以把SDN和virtualnetwork分开理解。