我试图在VM中运行Pike发布OpenStack Kolla和Open vSwitch作为测试/开发环境的一部分。我觉得我错过了一些明显的东西,但我只想弄清楚。
在VM中,在docker容器中打开vSwitch。
VM和主机中的版本是:
openvswitch-switch/xenial-updates,now 2.8.1-0ubuntu0.17.10.2~cloud0 amd64 [installed]
我使用:
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex ens3
ip addr flush ens3
我在裸机服务器上运行相同的命令,它运行正常。在VM中,br-ex的MAC地址与NIC的MAC不匹配。他们的MAC匹配裸机实例。
如果我删除了网桥ovs-vsctl del-br
,那么流量通常会通过ens3接口流动。
当桥接器处于活动状态时,ovs-system被列为nic的功能。
ovs-vsctl show
<snip>
Bridge br-ex
Port "ens3"
Interface "ens3"
Port br-ex
Interface br-ex
type: internal
我可以看到的主要区别是VM中的ens3正在使用net-virtio驱动程序。我不明白为什么这会有所作为。
Ubuntu 16.04.4是主机和虚拟机的操作系统。使用典型的KVM,QUEMU和libvirt设置计算节点。
答案 0 :(得分:0)
我仍然不知道为什么这在VM中的行为与在裸机上的行为不同。在网桥上设置MAC以匹配网络接口解决了这个问题。
ovs-vsctl add-br br-ex -- set bridge br-ex other-config:hwaddr=\"ff:ff:ff:ff:ff:ff\"'