OVS的安裝與使用
一、OVS的安裝
1、安裝OVS交換機
sudo apt-get install openvswitch-switch
2、OVS的啓動腳本
#!/bin/bash
ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
--pidfile--detach
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile –detach
二、OVS的基本命令
1、 查看OVS的版本信息:sudo ovs-appctl --version
2、 查看OVS支持的openflow版本:sudoovs-ofctl –version
3、 列出所有網橋:sudo ovs-vsctl list-br
4、 啓動、退出OVS:sudo/usr/share/openvswitch/scripts/ovs-ctl stop
sudo /usr/share/openvswitch/scripts/ovs-ctlstart
5、 爲網橋添加端口:sudo ovs-vsctl add-port br0 ens01
6、 查看目前的網橋和端口:sudo ovs-vsctl show
7、添加網橋:ovs-vsctladd-br 交換機名
8、刪除網橋:ovs-vsctldel-br 交換機名
9、添加端口:ovs-vsctladd-port 交換機名 端口名(網卡名)
10、刪除端口:ovs-vsctl del-port 交換機名 端口名(網卡名
11、連接控制器:ovs-vsctl set-controller 交換機名 tcp:IP地址:端口號
12、斷開控制器:ovs-vsctldel-controller 交換機名
13、列出網橋中的所有端口:ovs-vsctl list-ports 交換機名
14、列出所有掛接到網卡的網橋:ovs-vsctl port-to-br 端口名(網卡名)
15、查看open vswitch的網絡狀態:ovs-vsctlshow
16、查看 Open vSwitch 中的端口信息(交換機對應的 dpid,以及每個端口的 OpenFlow
端口編號,端口名稱,當前狀態等等):ovs-ofctl show 交換機名
17、修改dpid:ovs-vsctl set bridge 交換機名 other_config:datapath-id=新DPID
18、修改端口號:ovs-vsctl set Interface 端口名 ofport_request=新端口號
19、查看交換機中的所有流表:ovs-ofctl dump-tables ovs-switch
20、查看交換機中的所有流表項:ovs−ofctldump−flows ovs-switch
21、刪除編號爲 100 的端口上的所有流表項:ovs-ofctldel-flows ovs-switch “in_port=100”
22、添加流表項(以“添加新的 OpenFlow 條目,修改從端口 p0 收到的數據包的源地址爲 9.181.137.1”爲例): ovs-ofctl add-flowovs-switch “priority=1
idle_timeout=0,in_port=100,actions=mod_nw_src:9.181.137.1,normal”
三、使用實例
1、創建網橋(交換機)
sudo ovs-vsctladd-br br0
sudo ovs-vsctladd-br br1
sudo ovs-vsctladd-br br2
2、爲交換機配置端口信息
sudo ovs-vsctl add-port br0 eth00
sudo ovs-vsctl add-port br0 eth01
sudo ovs-vsctl add-port br0 eth02
sudo ovs-vsctl add-port br1 eth10
sudo ovs-vsctl add-port br1 eth11
sudo ovs-vsctl add-port br2 eth20
sudo ovs-vsctl add-port br2 eth21
sudo ovs-vsctl add-port br2 eth22
3、爲交換機端口之間建立鏈路連接
sudo ovs-vsctl set interface eth01 type=patch options:peer=eth10
sudo ovs-vsctl set interface eth02 type=patch options:peer=eth22
sudo ovs-vsctl set interface eth10 type=patch options:peer=eth01
sudo ovs-vsctl set interface eth11 type=patch options:peer=eth21
sudo ovs-vsctl set interface eth21 type=patch options:peer=eth11
sudo ovs-vsctl set interface eth22 type=patch options:peer=eth02
4、啓動網橋
sudo ifconfig br0 up
sudo ifconfig br1 up
sudo ifconfig br2 up
5、將交換機與控制器相連
sudo ovs-vsctl set-controller br0 tcp:10.108.170.218:6633
sudo ovs-vsctl set-controller br1 tcp:10.108.170.218:6633
sudo ovs-vsctl set-controller br2 tcp:10.108.170.218:6633