码迷,mamicode.com
首页 > 其他好文 > 详细

FlowVisor相关

时间:2015-09-06 14:29:19      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

1. FlowVisor工作原理(转)

  作为一个网络虚拟化平台,FlowVisor部署在标准OpenFlow控制器和OpenFlow交换机之间,成为二者的透明代理。FlowVisor能够与多个控制器连接使得每个控制器控制一个虚网,保证各虚网相互隔离。FlowVisor的设计有如下几个原则:

  (a) FlowVisor对控制器和交换机而言是透明的,它们都感知不到FlowVisor的存在;

  (b)各个虚网之间是隔离的,即使在广播条件下各个虚网的流量也必须实现隔离;

  (c)虚网划分策略是丰富且可扩展的,由于当前网络虚拟化的技术还不成熟,因此划分虚网的策略需要是灵活的、模块化的且可扩展的。

  目前虚网划分范围涵盖了物理层、数据链路层、网络层和传输层的协议字段,以数据包的12元组作为划分依据,按照流的思想将网络资源进行合理分配,以达到限定当前切片内数据流量类型的目的。一般对于某个特殊的应用,可以通过指定源/目的IP地址、源/目的MAC地址或者TCP端口信息来把数据包划分到一个切片内。

  FlowVisor是一个特殊的OpenFlow控制器,所有OpenFlow消息都将透过FlowVisor进行传送。FlowVisor会根据配置策略对OpenFlow消息进行拦截、修改、转发等操作。这样,OpenFlow控制器就只控制其被允许控制的流,并不知道其所管理的网络被FlowVisor进行过分片操作。相似地,从交换机发出的消息经过FlowVisor也只会被发送到相应的控制器。

  FlowVisor主要由FVClassifier、FVSlicer和FlowSpace数据库三部分组成。FVClassifier用于维护与物理OpenFlow交换设备的连接,处理IO请求并记录每个物理设备的端口、性能等信息,每个FVClassifier对应一个OpenFlow交换设备。FVSlicer用于维护与控制器的连接,管理OpenFlow会话并对控制器下发的信令进行处理。当流从一个物理的OpenFlow交换设备到达FlowSpace后,FlowSpace根据数据库中切片规则,把OF消息交给本切片内的FVSlicer发送给连接的控制器。

技术分享

                               FlowVisor工作原理

  FlowVisor的核心主要是对上行消息的映射和对下行信令的过滤。如图1所示,控制器和交换机与FlowVisor的所有联系都通过Poll Loop来交互,交换机交给控制器的数据包通过FlowVisor的OFSwitchAcceptor模块接收后,FVClassifier对数据包的来源进行分析,再连接到FlowVisor中的数据库与Flowspace进行匹配,从而决定此数据包应该交由哪个控制器来处理。同理,控制器下发给交换机的数据包会通过相反的过程到达交换机。

 

2. 安装配置

2.1 安装依赖

  依赖包安装,需要安装ant和jdk,jdk要求使用jdk1.6版本或其以下版本,否则会发生错误。

# sudo apt-get install ant
# sudo apt-get install openjdk-6-jdk

 

2.2 安装

git clone git://github.com/OPENNETWORKINGLAB /FlowVisor.git
或者:wget https://github.com/OPENNETWORKINGLAB/flowvisor/archive/1.2-MAINT.zip
   unzip flowvisor-1.2-MAINT
   cd FlowVisor
 
   make   #编译,成功后“BUILD SUCCESSFUL”提示
 
   make install  #安装, 安装时使用默认路径,输入用户名,用户组,密码;

 注意:安装过程需要输入如下一些信息,根据界面提示信息输入。

  l  安装目录前缀,可以不填,默认是/usr/local

  l  输入用来运行flowvisor的用户名(当前虚拟机上已经存在的用户)。

  l  运行Flowvisor的用户的对应用户组名

  l  Fvadmin的密码,每次运行flowvisor命令的时候,都要输入的密码

    l  安装路径使用默认的

 

2.3 配置

(1).配置文件位于/etc/flowvisor/config.json

  配置文件中包括简单的Slice、FlowSpaceRule样例,以及FlowVisor的监听端口、日志等级、版本等信息。api_webserver_port是xml请求的监听端口,默认为8080; api_jetty_webserver_port是JSON请求的监听端口;listen_port是交换机的监听端口,默认为6633。参数配置如下所示:

  如修改flowvisor的控制端口为6634(默认6633),web端口8181(默认8080)

vi /etc/flowvisor/config.json

  技术分享

 

           

 

(2). 文件/usr/local/bin/fvctl

  找到fvctl里面MATCHSTRS(第812行),把其中的两个toInt改成toStr,主要是为了add-flowspace的时候,可以指定具体的mac

vi /usr/local/bin/fvctl

  技术分享

 

                

3 常用命令

3.1 常用命令

技术分享

  

 

FlowVisor相关

标签:

原文地址:http://www.cnblogs.com/zxqstrong/p/4785266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!