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