ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
一、设备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.列出网桥中的全部端口:ovs-vsctl list-ports 交换机名
9.列出全部挂接到网卡的网桥:ovs-vsctl port-to-br 端口名(网卡名)
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 的端口上的全部流表项: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交换机配置汇总的更多相关文章
- ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结
一.安装OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- Ubuntu 14.04 下 android studio 安装 和 配置【转】
本文转载自:http://blog.csdn.net/xueshanfeihu0/article/details/52979717 Ubuntu 14.04 下 android studio 安装 和 ...
- ubuntu 14.04设备flash媒体播放器
今天是2014年4一个月19日本,就在两天前公布 ubuntu 14.04版本号, 以今天的优势是星期六,西安小雨,所以折腾linux. 我是个有点linux基础的小白.说是有些基础是由于以前在上大学 ...
- 【转载】Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南
洋洋洒洒一大篇,就没截图了,这几天一直在折腾这个东西,实在没办法,不想用Linux但是,为了Caffe,只能如此了,安装这些东西,遇到很多问题,每个问题都要折磨很久,大概第一次就是这样的.想想,之后应 ...
- (四)Ubuntu 14.04 文件服务器--samba的安装和配置
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba一. 一.更新源列表 打开&q ...
- [Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict
1. 背景介绍 GoldenDict 是一款非常优秀的跨平台电子词典软件,支持 StarDict.Babylon 等多种词典.其 PC 版基于 Qt 编写,完全免费.开源且没有广告.GoldenDic ...
- Git使用:Linux(Ubuntu 14.04 x64)下安装Git并配置连接GitHub
github是一个非常好的网络代码托管仓库,知晓许久,但是一直没有用起来,最近才开始使用git管理自己的文档和代码. Git是非常强大的版本管理工具,今天就告诉大家,如何在Linux下安装GIt,并且 ...
- Caffe + Ubuntu 14.04 64bit + CUDA6.5 + 无GPU 配置
官网: http://caffe.berkeleyvision.org/installation.html#compilation 参考网站: http://www.cnblogs.com/dupul ...
- ubuntu 14.04 (desktop amd 64) 安装和配置ROS Indigo
安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...
随机推荐
- ubuntu14.04中virtualbox虚拟机无法启动
近期升级了ubuntu14.04,还是按之前的方法安装了virtualbox(guest系统仍然使用升级之前的镜像文件),可是在启动guest系统时,总是报错,提演示样例如以下: Kernel dri ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- CSU 1506(最小费用最大流)
传送门:Double Shortest Paths 题意:有两个人:给出路径之间第一个人走所需要的费用和第二个人走所需要的费用(在第一个人所需的 费用上再加上第二次的费用):求两个人一共所需要的最小费 ...
- 沙朗javascript总结一下(一)---基础知识
我也听说过Javascript这东西.我一直感觉很神奇,但它并没有去太懂.今天,牛腩哥哥随后的初步研究,一些浅显的认识.就先总结一下. 首先,什么是javascript? javascript是一种直 ...
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...
- 俄罗斯方块游戏JavaScript代码
JavaScript代码俄罗斯方块游戏 早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下(主要是以注释的形式). 我用 ...
- 约瑟夫问题--list模拟循环链表
约瑟夫问题 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 n个人想玩残酷的死亡游戏,游戏规则例如以下: n个人进行编号,分别 ...
- JAVA Socket(多个客户同时连接,信息共享) client (java/ruby)
第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字" ...
- HTTP协议中的短轮询、长轮询、长连接和短连接
HTTP协议中的短轮询.长轮询.长连接和短连接 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接 ...
- SVN与TortoiseSVN实战:补丁详解(转)
硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...