我已经设置了一个Linux机器(在esxi5上),它充当OpenVPN服务器。该服务器被配置为使用桥接来为客户端服务,这基本上是可行的,但有一个例外。
如果客户端 ping 网络上的某台机器(不是服务器本身),则它不起作用。我排除了我所知道的所有东西(iptables 等),并运行 tcpdump 将其归结为以下几点:
- 我在 tap0 和 br0 上看到了 ARP 请求
- 我看到了 br0 上的 ARP 回复
- 我没有看到 tap0 上的 ARP 回复
问题:为什么 br0 设备不将 ARP 回复转发给 tap0 设备?
答案1
答案2
如果您的 ESXi 主机与网络有冗余连接,则由于 Net.ReversePathFwdCheckPromisc 的默认设置,可能会出现各种 ARP 问题。使用 CARP 的 pfSense 用户是最早调试此问题的用户之一,详情请见https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting
在类似的环境中,我们在 FreeBSD 上设置了 OpenVPN 桥接,但还增加了 VLAN 的复杂性。在 Net.ReversePathFwdCheckPromisc 未设置为 1 且存在多个网络上行链路的主机上,我们看到分路器设备的入站流量出现大量数据包丢失(95% 以上)。设置为 1 时,它工作正常。