1. FlowVisor
1.1. FlowVisor介绍
FlowVisor是建立在OpenFlow之上的网络虚拟化平台,它可以将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SDN)。它为管理员提供了广泛定义规则来管理网络,而不是通过调整路由器和交换机来管理网络。 FlowVisor安装在商品硬件上,它是一个特殊的OpenFlow控制器,主要是作为OpenFlow交换机网络和其他标准OpenFlow控制器之间的透明代理。虽然FlowVisor仍被认为处于试验阶段,并且缺乏一些基本功能(例如命令行管理工具),但FlowVisor已经被部署在很多生产环境中,例如从2009年开始应用于斯坦福大学的校园网络。
FlowVisor通过抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,管理带宽、CPU利用率和流量表,这类似于管理程序位于服务器硬件和软件之间,以允许多个虚拟操作系统运行。
正如管理程序依赖于标准x86指令来虚拟化服务器一样,FlowVisor使用标准OpenFlow指令集来管理OpenFlow交换机,这些指令设置了低级别规则,比如如何基于数据包表头中的特点来转发数据包。
由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU使用率来看,网络虚拟化都没有增加很多开销或者几乎没有增加开销,不过另外需要设置和修改流量表规则的单独的带外物理控制器。
1.1.1. FlowVisor基本概念
1.1.2. 切片
FlowVisor网络的基本要素是网络切片(Slice),网络切片是由一组文本配置文件来定义的。文本配置文件包含控制各种网络活动的规则,例如允许、只读和拒绝,其范围包括流量的来源IP地址、端口号或者数据包表头信息。
例如,网络管理员可以将安全的Telnet流量(默认端口992)分配到其自身的切片,将执行团队IP地址的流量分配到另一个切片。然后他可以创建第三个默认切片来管理所有其他流量,把它当做“只读”切片来监控其他三个切片,以达到诊断目的。网络管理员可以动态地重新分配和管理这些切片,以确保浏览YouTube的人不会对Telnet应用程序和执行团队带宽造成负面影响。
1.1.3. 流规则
其英文名称Flowspace。表面上理解是流空间,但实际上切片定义了控制器的网络分区,不定义切片的匹配规则。需要创建的规则叫做FlowSpace。所以其翻译成流规则更好些。
Flowspace包含下面字段:
字段名 |
含义 |
priority |
优先级,0-65535 |
in_port |
进入端口 |
dl_vlan |
Vlan id, 0xffff 表示匹配非vlan包,否则指定为 0 - 4095表示12位的vlan id |
dl_vpcp |
Vlan优先级最外层VLAN头的PCP域 |
dl_src |
Ethernet源Mac地址 |
dl_dst |
Ethernet目的Mac地址 |
dl_type |
Ethernet协议类型, 采用0 – 65535表示 |
nw_src |
源IP地址 |
nw_dst |
目的IP地址 |
nw_proto |
IP协议类型,十进制数0-255 |
nw_tos |
IP Tos位,采用0-255表示 |
tp_src |