转载自:https://blog.csdn.net/rocson001/article/details/73163041
推荐使用mininet模拟环境进行命令操作,例如:不同于本地虚拟机只有少数网卡,模拟环境中为我们配置了多个网卡进行实验,避免不必要的麻烦!
一:控制管理类
(一)创建一个网桥
ovs-vsctl add-br br0 补充:删除网桥使用del-br
注意:ovs的datapath_type有nedev和system,在创建dpdk接口的bridge时需指定
ovs-vsctl set bridge br0 datapath_type=netdev
使用非dpdk的bridge时不需要指定,走默认的system。
补充:网桥相关命令
1.列出所有网桥
ovs-vsctl list-br
2.判断网桥br0是否存在(大多可以用1等同)
ovs-vsctl br-exists br0
退出码:成功返回0,失败返回2
3.将网络接口ens33挂接到网桥br0上
ovs-vsctl add-port br0 ens33
注意:我们挂载的网络端口必须是一个已经存在的接口---我们可以使用ifconfig在本机中查看到
否则可能报错:
4.列出挂接到网桥br0上的所有网络接口(不包括本地接口)
ovs-vsctl list-ports br0
其中:本地端口和网桥名一致
5.删除网桥br0上挂接的eth0网络接口
ovs-vsctl del-port br0 eth0
6.列出已挂接ens33网络接口的网桥
ovs-vsctl port-to-br ens33
说明一个网络接口:可以让多个网桥使用
7.查看网桥和端口
ovs-vsctl show
(二)添加、删除端口操作
1.system接口
ovs-vsctl add-port br0 ens33
ovs-vsctl del-port br0 ens33
2.DPDK接口和DPDK bonds以后学习DPDK再进行补充
(三)不同网桥通过patch port连接
ovs里的不同bridge之间可以通过patch port进行连接,类似于linux的veth接口。
通过patch port 连接bridge时,这两个bridge的datapath_type最好相同,不然可能会导致数据不通的情况。
OVS通过在不同的bridge上面创建patch ports,将两个bridge连接起来。比如,OpenStack里面的br-int和br-tun。
在bridge上创建patch port的命令主要是下面三条。
在两个bridge里面创建一对ports,并互相指定peer,就实现了两个网桥连接。命令如下:
ovs-vsctl add-port <bridge name> <port name> ovs-vsctl set interface <port name> type=patch ovs-vsctl set interface <port name> options:peer=<peer name>
1.查看交换机网卡信息
网桥一设置:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 s1-eth1 ovs-vsctl set Interface s1-eth1 type=patch ovs-vsctl set Interface s1-eth1 options:peer=s1-eth2
网桥二设置:
ovs-vsctl add-br br1 ovs-vsctl add-port br1 s1-eth2 ovs-vsctl set Interface s1-eth2 type=patch ovs-vsctl set Interface s1-eth2 options:peer=s1-eth1
或者使用网桥本地接口:
njzy@njzy-virtual-machine:~$ sudo ovs-vsctl add-br br0 njzy@njzy-virtual-machine:~$ sudo ovs-vsctl add-br br1 njzy@njzy-virtual-machine:~$ sudo ovs-vsctl show 39972cd3-4174-475f-b551-01fcdec5fa3f Bridge "br0" Port "br0" Interface "br0" type: internal Bridge "br1" Port "br1" Interface "br1" type: internal njzy@njzy-virtual-machine:~$ sudo ovs-vsctl set Interface br0 type=patch njzy@njzy-virtual-machine:~$ sudo ovs-vsctl set Interface br0 options:peer=br1 njzy@njzy-virtual-machine:~$ sudo ovs-vsctl set Interface br1 type=patch njzy@njzy-virtual-machine:~$ sudo ovs-vsctl set Interface br1 options:peer=br0 njzy@njzy-virtual-machine:~$ sudo ovs-vsctl show