【问题标题】:Open vSwitch bridge in VM does not send traffic over portVM 中的 Open vSwitch 网桥不会通过端口发送流量
【发布时间】:2018-08-18 13:33:13
【问题描述】:

我正在尝试在 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 被列为网卡上的一项功能。

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 设置计算节点。

【问题讨论】:

标签: ubuntu openstack kvm openvswitch openstack-neutron


【解决方案1】:

非常感谢您的澄清,我自己也快疯了。 当您创建网桥时,它分配的 MAC 地址与 ens3 所拥有的 MAC 地址不同,并且从那一刻起 dhclient 将无法工作,但是按照您的建议,并将 ens3 MAC 分配给网桥,dhclient 工作并且我能够拥有交通通过这座桥到外面的世界。

sudo ovs-vsctl add-br br77 -- set bridge br77 other_config:hwaddr=ff:ff:ff:ff:ff:ff

【讨论】:

    【解决方案2】:

    我仍然不知道为什么这在 VM 中的行为与在裸机中的行为不同。将网桥上的 MAC 设置为与网络接口匹配可解决此问题。

    ovs-vsctl add-br br-ex -- set bridge br-ex other-config:hwaddr=\"ff:ff:ff:ff:ff:ff\"'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2019-08-30
      • 2012-08-13
      相关资源
      最近更新 更多