QEMU/KVM/libvirt macvtap VEPA 不工作-ARP 请求未转发

QEMU/KVM/libvirt macvtap VEPA 不工作-ARP 请求未转发

嗨,我在主机上的两个虚拟机之间使用 VEPA 模式的 macvtap 时,一直难以让客户网络正常工作。我花了几个小时(几天)在谷歌上搜索,却毫无收获。这种网络配置真的有效吗?

我使用 KVM 管理器通过添加 NIC、选择网络源“macvtap”、源模式 VEPA、设备模型:virtio 创建了 vtap。

配置如下(mac地址):

vm3-62                                  vm2-62
----------                           ------------
eth1: 172.15.62.105            eth1:  172.15.62.205
(52:54:00:08:9d:8b)            (52::54:00:8a:b1:0f)
           +                               +
           |                               |
            \                              /
              \             host          /
            macvtap1                  macvtap0
          (52:54:00:08:9d:8b)      (52:54:00:8a:b1:0f)
                 \                         /
                  \                       /
                    \                    /
                           bond1.62
                     (98:03:9b:2d:91:a2) 
                              |
                           bond1
                             |
                       NIC port 1 and 2 (active/passive config)

不确定上面的格式是否正确,如果上面的图没有格式化,这里是jpeg

主机 NIC 连接到 cisco nexus 9000,我已将其配置为反射中继 802.1Qbg。

在 vm2-62 上,当我尝试 ping 172.15.62.105 时,出现目标主机不可达的情况。

当我在主机上使用 tcpdump 时,我可以看到来自 vm2-62 的 ARP 请求,该请求正在寻找 172.15.62.105 (vm3-62) 的 mac。我可以在 macvtap0、bond1.62 和 bond1 上看到该请求,但在 macvtap1 上看不到。

如果我手动在 vm3-62 和 vm2-62 上添加 ARP 条目,ping 可以正常工作,所以我认为交换机上的反射中继配置正确。

看起来要么是交换机没有反弹 ARP 请求,要么我需要在 Linux 中做一些事情来使 bond1.62 将 ARP 请求转发到 macvtap1。

有什么想法吗? 。

谢谢

答案1

我确实弄清了这个问题,问题出在开关上。

因此问题在于交换机(Cisco Nx9000 系列)没有将 ARP 请求反弹回去。但问题不止于此,我的系统连接到 VXLAN 网络中,并且我已将 L2 VTEP 配置为启用了 arp 抑制。当禁用该功能时,交换机会将 ARP 反射回它应该所在的同一端口,并且一切正常。我与 Cisco 工程师合作,他们同意 VTEP 也应该在 ARP 抑制开启时反射 ARP(在这种情况下,VTEP 应该响应 ARP 请求)。但当要求 VTEP 软件将广播发送回它到达的接口时,它似乎会感到困惑。无论如何,思科表示他们正在寻找解决方案,同时解决方法是禁用 arp 抑制。

相关内容