一、安装OVS
sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source
(与网上之前的资料相比。没有安装openvswitch-brcompat,提示没有这个包。笔者眼下的使用来看没有问题。可能是linux内核或OVS版本号变化造成的。不再须要安装?)
二、配置OVS虚拟OpenFlow交换机
1.新建一个桥(交换机)。命名为s1:
 sudo ovs-vsctl add-br s1
注意:进行OVS设置时非常easy造成虚拟交换机与物理交换机构成二层环路(比方虚拟交换机包括两块网卡,而这两块网卡都连接到物理交换机上,就是一个环路)。一旦有广播报文,比方ARP请求。就会引发广播风暴,使网络瘫痪。因此,应该把虚拟交换机开启STP支持,避免广播风暴:
ovs−vsctl set bridge 交换机名 stp_enable=true
2.启动要加入到虚拟交换机s1上的物理port(物理网卡。这里是eth0和eth3)。假设ifconfig里已经有了,那就不用又一次启动了。
sudo ifconfig eth3 up
sudo ifconfig eth0 up
3.加入物理port到虚拟交换机s1:
sudo ovs-vsctl add-port s1 eth3
sudo ovs-vsctl add-port s1 eth0
4.设置IP:
OpenFlow交换机与控制器连接须要用到TCP连接,因此交换机须要设置IP。

但当把物理port加入到虚拟交换机上之后,这些物理port上原先的IP设置将失效(IP属于三层,而交换机工作在二层)。无法与外界进行三层的互联。解决方法是加入一个类型为internal的port。然后设置IP和路由(本例是加入一个名为veth3的虚拟port):
首先。假设原先port有设置IP。应将其重置:
sudo ifconfig eth3 0
然后加入虚拟port:
sudo  ovs-vsctl add-port s1 veth3
 sudo ovs-vsctl set interface veth3 type=internal
这时假设运行ifconfig就会发现多了一个名为veth3的port。

然后设置该port并加入路由:
sudo  ifconfig veth3 192.168.1.3 netmask 255.255.255.0
sudo  route add default gw 192.168.1.1 veth3
P.S. 后来看到网上说事实上不须要额外加入veth3,由于创建s1后会自己主动生成一个名为s1的internalport,直接设置它就能够。

5.连接远程控制器(本例中控制器为POX,IP是192.168.1.100):
连接控制器之前控制器要先启动。

然后连接:
sudo ovs-vsctl set-controller s1 tcp:192.168.1.100:6633
这时远程控制器就能看到连接信息,比方:INFO:openflow.of_01:[00-d0-f8-0f-d6-e9 2] connected
三、经常使用OVS操作
1.加入网桥:ovs-vsctl add-br 交换机名
2.删除网桥:ovs-vsctl del-br 交换机名
3.加入port:ovs-vsctl add-port 交换机名 port名(网卡名)
4.删除port:ovs-vsctl del-port 交换机名 port名(网卡名)
5.连接控制器:ovs-vsctl set-controller 交换机名 tcp:IP地址:port号
6.断开控制器:ovs-vsctl del-controller 交换机名
7.列出全部网桥:ovs-vsctl list-br
8.列出网桥中的全部port:ovs-vsctl list-ports 交换机名
9.列出全部挂接到网卡的网桥:ovs-vsctl port-to-br port名(网卡名)
10.查看open vswitch的网络状态:ovs-vsctl show
11.查看 Open vSwitch 中的port信息(交换机相应的 dpid,以及每一个port的 OpenFlow port编号。port名称,当前状态等等):ovs-ofctl show 交换机名
12.改动dpid:ovs-vsctl set bridge 交换机名 other_config:datapath-id=新DPID
13.改动port号:ovs-vsctl set Interface port名 ofport_request=新port号
14.查看交换机中的全部 Table:ovs-ofctl dump-tables ovs-switch
15.查看交换机中的全部流表项:ovs−ofctl dump−flows ovs-switch
16.删除编号为 100 的port上的全部流表项:ovs-ofctl del-flows ovs-switch "in_port=100"
17.加入流表项(以“加入新的 OpenFlow 条目。改动从port p0 收到的数据包的源地址为 9.181.137.1”为例):
 ovs-ofctl add-flow ovs-switch "priority=1 idle_timeout=0,in_port=100,actions=mod_nw_src:9.181.137.1,normal"
(很多其它说明请查阅:《基于 Open vSwitch 的 OpenFlow 实践》)
18.查看 OVS 的版本号信息:ovs-appctl --version
19.查看 OVS 支持的 OpenFlow 协议的版本号:ovs-ofctl --version
很多其它设置可查看官方文档。

ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结的更多相关文章

  1. ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总

    一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...

  2. 在Ubuntu 14.04安装 Let’s Encrypt并配置ssl

    1.下载安装 Let's Encrypt客户端 cd /usr/local/sbin sudo wget https://dl.eff.org/certbot-auto 2.添加执行权限 sudo c ...

  3. 在Ubuntu 14.04安装和使用Docker

    Docker是一个开源软件,它可以把一个Linux应用和它所依赖的一切(比如配置文件)都封装到一个容器.然而,Docker与虚拟机不同,它使用了沙箱机制,Docker容器不运行操作系统,它共享主机上的 ...

  4. [转]在Ubuntu 14.04安装和使用Docker

    在Ubuntu 14.04安装和使用Docker 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs Docker是一个开源软件,它可以把一 ...

  5. Ubuntu 14.04 安装VMware 12

    /*********************************************************************** * Ubuntu 14.04 安装VMware 12 ...

  6. Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flas

    转自Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player Chromium谷歌的开源浏览器将不再支持Netscape浏览器插件API,Adobe ...

  7. ubuntu 14.04 安装搜狗拼音输入法

    原文:ubuntu 14.04 安装搜狗拼音输入法 ubuntu桌面系统下终于有了好用的拼音法-搜狗拼音输入法,欲在ubuntu 14.04下安装搜狗拼音输入法相当的简单. 先到搜狗拼音官网下载对应的 ...

  8. ubuntu 14.04 安装torch及编译环境zbstudio

    ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...

  9. ubuntu 14.04 安装svn server (subversionedge )

    ubuntu 14.04 安装subversionedge 请仔细阅读安装包自带的readme文件! 1.先去官网,找安装包: http://subversion.apache.org/ http:/ ...

随机推荐

  1. AC自动机练习

    多模板串匹配一般有两种方法 暴力kmp, 适用于模板串少的情形 直接trie上暴力, 适用于模板串比较短的情形, 并且可以动态插入合并 建立AC自动机, 复杂度是严格线性的, 但不能动态插入 cons ...

  2. hdu2087kmp

    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?  Input输入中含有一些数据,分别是成对出现的花布条和 ...

  3. python-day4笔记

    1.文件后缀名对python运行没关系 2.Python解释器执行python程序的过程:python3 C:\test.py 1)启动python解释器(内存中) 2)将C:\test.py内容从硬 ...

  4. h1042 N!大数乘int

    计算10000以内某个数的阶乘,即大数乘以int,考虑到一个int存一个数位过于繁琐且浪费空间,采用万进制 一个int存四个位数,但注意除了最高位,其他位不够四位数时要加上前导0凑够四位: 例1234 ...

  5. hdu 1024 最大M子段dp

    题目: Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  6. JDBC连接SQLSERVER

    package xhs;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; im ...

  7. CNN autoencoder 进行异常检测——TODO,使用keras进行测试

    https://sefiks.com/2018/03/23/convolutional-autoencoder-clustering-images-with-neural-networks/ http ...

  8. top k

    def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...

  9. windows创建窗口、关闭窗口流程

    NC,即 non-client 区域,包括标题栏.窗口边框.最大.最小按钮.滚动条等. 一.在调用Windows的::CreateWindowEx函数创建窗口时,一般会先发出 WM_NCCREATE消 ...

  10. HDU 2895 贪心 还是 大水题

    DESCRIPTION:大意是给你两个字符串.编辑距离只有add和delete会产生.所以.编辑距离最短一定是两个字符串的长度差.然后...呵呵呵呵.... 猜题意就可以了...但是...我觉得这个题 ...