看bridge資訊
ovs-vsctl show
看bridge詳細資訊(找dpid)
ovs-ofctl show br0
看port或interface資訊
ovs-vsctl list port
ovs-vsctl list interface eth0
看OVS版本
ovs-vswitchd --version
ovs-ofctl -V
ovs-appctl --version
查看OVS 支持的OpenFlow 協議的版本
ovs-ofctl --version
看DB LOG
ovsdb-tool show-log -m
OVS Log的路徑
/usr/local/var/log/openvswitch/ovsdb-server.log
/usr/local/var/log/openvswitch/ovs-vswitchd.log
看Log level list
ovs-appctl vlog/list
更改Log Level
ovs-appctl vlog/set moduleName:type:level
moduleName:放欲設定的模組名稱。
type:有console, syslog, File三種。
level:從低到高有off, dbg, info, warn, err, emer。
看bridge的flow table
ovs-ofctl dump-flows br0
ovs-appctl fdb/show br0
ovs-appctl bridge/dump-flows br0 (Display all including hidden flows.)
ovs-dpctl dump-flows [dp] (看kernel datapath flows)
ovs-appctl xp/fdb/show <bridge> (Display FDB table)
看port的flow table
ovs-ofctl dump-ports br0
ovs-ofctl dump-tables br0
封包追蹤
ovs-appctl ofproto/trace BR_NAME BR_FLOW
例如 br0 in_port=1,arp,arp_op=1 (追蹤ARP Request on ingress port 1) 或 br0 in_port=1,dl_dst=01:80:c2:00:00:10 (追蹤dst MAC符合特定的值)
封包產生
ovs-appctl ofproto/trace br0 in_port=100,dl_src=66:4e:cc:ae:4d:20,
dl_dst=46:54:8a:95:dd:f8 -generate
可以用來生成測試用的模擬數據包,並一步步的展示OVS 對數據包的流處理過程。
新增、刪除controller
ovs-vsctl set-controller br0 tcp:127.0.0.1:6633
ovs-vsctl del-controller br0
設定OVS能支援的特定OpenFlow版本
ovs-vsctl set bridge br0 protocol=OpenFlow13
刪除OpenFlow支援
ovs-vsctl clear bridge ovs-br protocols
設定OVS Fail Mode
ovs-vsctl -- set bridge br0 fail-mode=standalone
ovs-vsctl -- set bridge br0 fail-mode=secure
Standalone:OVS會持續嘗試連線到Controller,若連不到,OVS會作為default learning switch接手轉發封包。
Secure:OVS沒有連到Controller時,OVS就不會自己加flow。
更改MTU (數字為你想要的MTU大小)
ovs-vsctl set int br0 mtu_request=1400
VLAN
ovs-vsctl -- set port eth0 tag=100
VxLAN
ovs-vsctl add-port br1 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=172.168.1.2
QoS Ingress Policing(in kbps)
ovs-vsctl set interface eth0 ingress_policing_rate=10000
ovs-vsctl set interface eth0 ingress_policing_burst=1000
QoS Egress Shaping(in bps)
ovs-vsctl set port eth0 qos=@newqos \
-- --id=@newqos create qos type=linux-htb other-config:max-rate=500000000 \
queue:123=@p0queue queue:234=@p1queue \
-- --id=@p0queue create queue other-config:max-rate=10000000 \
-- --id=@p1queue create queue other-config:max-rate=20000000
ovs-ofctl add-flow br0 ip,nw_src=192.168.1.100,actions=set_queue:123,normal
GRE Tunnel
ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.1.100 (對方的IP address)
ryu-manager --verbose --observe-links simple_monitor_13.py
若需要更詳細的指令可以參考 : https://www.twblogs.net/a/5b8ac2d62b71775d1ce90fff
比較基礎的指令可以參考這裡 : https://www.ibm.com/developerworks/cn/cloud/library/1401_zhaoyi_openswitch/
手動設定flow可以參考 : http://routing.cloud.mobilesdn.org/cheatsheet.html