mininet and ovs 总结

ryu控制器安装在arch linux的什么目录?

/usr/lib/python3.6/site-packages/ryu/

如何显示mininetCLI的帮助命令?

mininet> help

如何显示mininet的结点?

mininet> nodes

如何显示mininet的连接?

mininet> net

mininet>links

如何在某一个虚拟中段中建立一个简单的HTTP服务器,并且从另外一个终端中对它进行访问?

mininet> h1 python -m SimpleHTTPServer 80 &

mininet> h2 wget -O -h1

...

mininet> h1 kill %python
如何运行一个递归的测试?

sudo mn --test pingpair (测试)

sudo mn --test iperf (测试带宽)

如何梗概网络的拓扑和类型?

sudo mn --test pingall --topo single,3
sudo mn --test pingall --topo linear,4

如何设置连接的属性,包括贷款和延迟?

sudo mn --link tc,bw=10,delay=10ms

如何设置调试模式?

sudo mn -v debug

如何自定义一个拓扑,请附上相关的python文件写法?

应用的语句如下:

sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo mytopo --test pingall

相应的脚本如下:

topo-2sw-2host.py:

"""Custom topology example

Two directly connected switches plus a host for each switch:

host --- switch --- switch --- host

Adding the ‘topos‘ dict with a key/value pair to generate our newly defined
topology enables one to pass in ‘--topo=mytopo‘ from the command line.
"""

from mininet.topo import Topo

class MyTopo( Topo ):
"Simple topology example."

def __init__( self ):
"Create custom topo."

# Initialize topology
Topo.__init__( self )

# Add hosts and switches
leftHost = self.addHost( ‘h1‘ )
rightHost = self.addHost( ‘h2‘ )
leftSwitch = self.addSwitch( ‘s3‘ )
rightSwitch = self.addSwitch( ‘s4‘ )

# Add links
self.addLink( leftHost, leftSwitch )
self.addLink( leftSwitch, rightSwitch )
self.addLink( rightSwitch, rightHost )

topos = { ‘mytopo‘: ( lambda: MyTopo() ) }

如何改变相应的mac地址?

sudo mn --mac

如何直接打开终端?

sudo mn -x

如何使用dpctl来查看某个交换机的流表?

dpctl dump-flows的格式如下:

[-m | --more] dump-flows [dp] [filter=filter]

mininet?

如何使用其他类型的交换机?

sudo mn --switch ovsk --test iperf

如何设置所有东西都有它各自的命名空间?

sudo mn --innamespace --switch user

如何设置链接的属性?比如说打开和关闭。

mininet> link s1 h1 down
mininet> link s1 h1 up

如何显示某个网络内的主机?

mininet> xterm h1 h2

如何设置远程的控制器?

$ sudo mn --controller=remote,ip=[controller IP],port=[controller listening port]
sudo mn --controller=remote,ip=192.168.1.150,port=6633

如何使用其他的OpenFlow协议?

--switch ovsk,protocols=OpenFlow13


参考网页:

http://fishcried.com/2016-02-09/openvswitch-ops-guide/

要想很好理解OVS的操作,必须要理解基本的概念:

Packet

网络转发的最小数据单元,每个包都来自某个端口,最终会被发往一个或多个目标端口,转发数据包的过程就是网络的唯一功能。

Bridge

OpenvSwitch中的网桥对应物理交换机,其功能是根据一定流规则,把从端口收到的数据包转发到另一个或多个端口。

Port

端口是收发数据包的单元。OpenvSwitch中,每个端口都属于一个特定的网桥。端口收到的数据包会经过流规则的处理,发往其他端口;也会把其他端口来的数据包发送出去.主要有

类型 说明
Normal 用户可以把操作系统中的网卡绑定到ovs上,ovs会生成一个普通端口处理这块网卡进出的数据包。
Internal 端口类型为internal时,ovs会创建一块虚拟网卡,端口收到的所有数据包都会交给该网卡,发出的包会通过该端口交给ovs。当ovs创建一个新网桥时,默认会创建一个与网桥同名的Internal Port.
Patch 当机器中有多个ovs网桥时,可以使用Patch Port把两个网桥连起来。Patch Port总是成对出现,分别连接在两个网桥上,在两个网桥之间交换数据。
Tunnel 隧道端口是一种虚拟端口,支持使用gre或vxlan等隧道技术与位于网络上其他位置的远程端口通讯。

Interface

接口是ovs与外部交换数据包的组件。一个接口就是操作系统的一块网卡,这块网卡可能是ovs生成的虚拟网卡,也可能是物理网卡挂载在ovs上,也可能是操作系统的虚拟网卡(TUN/TAP)挂载在ovs上。

FlowTable

流定义了端口之间数据包的交换规则.下面会对FlowTable做了详细的说明.

OVS命令的结构:

ovs-dpctl datapath控制器,可以创建删除DP,控制DP中的FlowTables,最常使用show命令,其他很少手动操作
ovs-ofctl 流表控制器,控制bridge上的流表,查看端口统计信息等
ovsdb-tool 专门管理ovsdb的client
ovs-vsctl 最常用的命令,通过操作ovsdb去管理相关的bridge,ports什么的
ovs-appctl 这个可以直接与openvswitch daemon进行交互,上图中没有列出来,这么命令较少使用

对下面这些命令的一个简要记录:

  • ovs-dpctl show -s
  • ovs-ofctl show, dump-ports, dump-flows, add-flow, mod-flows, del-flows
  • ovsdb-tools show-log -m
  • ovs-vsctl
    • show 显示数据库内容
    • 关于桥的操作 add-br, list-br, del-br, br-exists.
    • 关于port的操作 list-ports, add-port, del-port, add-bond, port-to-br.
    • 关于interface的操作 list-ifaces, iface-to-br
    • ovs-vsctl list/set/get/add/remove/clear/destroy table record column [value], 常见的表有bridge, controller,interface,mirror,netflow,open_vswitch,port,qos,queue,ssl,sflow.
  • ovs-appctl list-commands, fdb/show, qos/show

如何显示bridge,显示它与Port等概念的关系?

# ovs-vsctl show

如何查看有哪些Bridge,哪些ports,哪些interface?

[email protected]1:~# ovs-vsctl list-br
br-ex
br-int
br-tun

[email protected]-network-1:~# ovs-vsctl list-ports br-tun
patch-int
vxlan-ac1c0509
vxlan-ac1c050d
vxlan-ac1c051c
vxlan-ac1c053f

[email protected]-network-1:~# ovs-vsctl list-ifaces br-tun
patch-int
vxlan-ac1c0509
vxlan-ac1c050d
vxlan-ac1c051c
vxlan-ac1c053f
# iface与ports同名.

如何查看哪个port,interface属于哪个bridge?

[email protected]1:~# ovs-vsctl port-to-br vxlan-ac1c0509
br-tun
[email protected]-network-1:~# ovs-vsctl iface-to-br vxlan-ac1c0509
br-tun

如何查看某个Bridge的流表,如果不是默认的of协议,那么如何显示?

[email protected]1:# ovs-ofctl dump-flows br-ex
sudo ovs-ofctl -O Openflow13 dump-flows <switch>

如何显示某个Bridge的流表?

# ovs-ofctl show br-ex

如何显示隐藏流表规则?

# ovs-appctl bridge/dump-flows br-ex

如何查看datapath的统计规则?

# ovs-dpctl show
# ovs-dpctl show -s
## 查看某个端口的统计信息ovs-ofctl dump-ports br [port]
# ovs-ofctl dump-ports br-ex 1

如何查看转发表?

# ovs-appctl fdb/show br-ex

OVS的相关设置

设置sFlow,相关网页:

http://docs.openvswitch.org/en/latest/howto/sflow/

http://www.sdnlab.com/3760.html

sudo ovs-vsctl -- --id[email protected]_1 create sflow agent=s4 target=\"10.0.0.2:6343\"  \
header=128 sampling=64 polling=10 -- set bridge s4 [email protected]_1

如何设置qos?

参考网页:

http://docs.openvswitch.org/en/latest/howto/qos/

http://fishcried.com/2016-02-09/openvswitch-ops-guide/

ovs-vsctl set Interface tap0 ingress_policing_rate=100000
ovs-vsctl set Intervace tap ingress_policing_burst=10000
ovs-appctl qos/show <iface>

如何查看流规则的匹配?

watch -d -n 1 "sudo ovs-ofctl dump-flows <bridge>"

如何使用tcpdump抓包?

需要设置端口的镜像。

ip link add name snooper0 type dummy
ip link set dev snooper0 up
ovs-vsctl add-port br-int snooper0

# ovs-vsctl -- set Bridge br-int [email protected]  -- --id=@snooper0   get Port snooper0  -- --id[email protected] get Port patch-tun   -- --id[email protected] create Mirror name=mymirror select[email protected]tun   select[email protected] [email protected] select_all=1

tcpdump -i snooper0

ovs-vsctl clear Bridge br-int mirrors
ovs-vsctl del-port br-int snooper0
ip link delete dev snooper0

如何查看OVS的日志?

# cat /var/log/openvswitch/*.log

# ovsdb-tool show-log -m

如何发送某个包去测试匹配?

# ovs-appctl ofproto/trace br-ex in_port=10,dl_src=66:4e:cc:ae:4d:20,dl_dst=46:54:8a:95:dd:f8 -generate
Bridge: br-ex


变更记录:

变更说明 变更人 时间
整理mininet笔记和部分OVS记录 andrew 2016-04-18
整理fishcired的笔记的OVS部分,添加到我自己的OVS部分 andrew 2016-05-12
     
时间: 2024-08-01 10:42:34

mininet and ovs 总结的相关文章

SDN环境搭建(mininet,OVS,ryu安装及命令)

1.mininet安装与使用 1.1mininet安装 ubuntu 12.04/14.04/14.10      命令行  sudo apt-get install mininet 1.2 mininet基本命令 nodes:查看全部节点 net:查看链路信息 dump:查看各节点详细信息 mn –c:mininet退出后,清理 pingall:测试所有结点是否连通 网络调试命令: 格式:node cmd 举例: h1 ifconfig h1 ping h2 h1 ping –c 3 h2 打

ovs的卸载删除

参考博客1 参考博客2 需要更新.重装ovs时需要先卸载. 删除网桥.端口 ovs-vsctl del-br 交换机名 ovs-vsctl del-port 交换机名 端口名(网卡名) 关闭服务 sudo killall ovsdb-server sudo killall ovs-vswitchd 卸载相关部分 sudo apt-get remove openvswitch-common openvswitch-datapath-dkms openvswitch-controller openv

Understand QoS at OpenSwitch

danny http://dannykim.me/danny/57771 2014.02.11 14:34:58 (*.193.128.184) 592 >>> PurposeThis document helps us understand how QoS works in OpenVSwitch. This document can be used as a warming up before a good tutorial(URL is shown below at Referen

在mininet上基于ovs,ovx,pox搭建三点虚拟网络

本次试验基于mininet平台,在平台中利用ovs新建1个交换机,以pox为控制器,ovx作为中间层实现虚拟化. 基础请参照http://ovx.onlab.us/getting-started/tutorial/ 但是由于上述只是直线拓扑,而且中间不经过节点,因此我们要构建一个复杂的拓扑,如标红的拓扑 首先我们将pox的l2_learing修改一下,也就是把host,switch与path信息写进去 其次开启ovx,pox 在/ovx/utils/具体代码如下: 新建虚拟网络,并制定控制器与h

[原创]mininet安装

mininet安装: on Ubuntu 13.04: sudo apt-get install minineton Ubuntu 12.10: sudo apt-get install mininet/quantal-backportson Ubuntu 12.04: sudo apt-get install mininet/precise-backports一.安装环境: ubuntu-12.04-32bit二.安装mininet: #rm /usr/local/bin/ovs* /usr/

mininet搭建

安装git: sudo apt-get update sudo apt-get install git 测试git是否安装: git 获取mininet最新源码树: git clone git://github.com/mininet/mininet        会在当前目录下创建mininet文件夹 选择安装版本: 进入mininet目录 git tag git checkout -b 2.2.0 2.2.0 安装: ./install.sh -s mydir -a 若出现以下错误: 或执行

SDN实战: Build a mini-lab environment and practice SDN-IP/ONOS with GNS3, Mininet and VMware

SDN IN ACTION: Build a mini-lab environment and practice SDN-IP/ONOS with GNS3, Mininet and VMware    薛国锋  [email protected] 本文主要通过简单的实验,对SDN相关概念以及ONOS开源软件等建立一个感性的印象,加深对核心概念的理解. SDN-IP is to adopt SDN/OpenFlow switches to replace the traditional IP/M

OVS常用操作「转」

原文地址:http://www.cnblogs.com/puremans/p/6562392.html OVS常用操作: 1.添加网桥:ovs-vsctl add-br 交换机名 2.删除网桥:ovs-vsctl del-br 交换机名 3.添加端口:ovs-vsctl add-port 交换机名 端口名(网卡名) 4.删除端口:ovs-vsctl del-port 交换机名 端口名(网卡名) 5.连接控制器:ovs-vsctl set-controller 交换机名 tcp:IP地址:端口号 

[转]Open vSwitch with SSL and Mininet

Open vSwitch with SSL and Mininet By default, Mininet uses the unencrypted port in Open vSwitch for OpenFlow. This makes total sense since the purpose of Mininet is a research tool, so encryption isn't usually needed and using unencrypted control tra