嗨,我在主机上的两个虚拟机之间使用 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 抑制。