在桥接模式下,使用OpenVPN,ARP回复从br0消失到tap0

我已经安装了一个作为OpenVPN服务器的Linux机器(在esxi5上)。 服务器被configuration为使用桥接为客户端,基本上工作,有一个例外。

如果客户在networking上ping了一些不是服务器的机器,它就不能工作。 我排除了我所知道的一切(iptables等),运行tcpdump将其归结为以下几点:

  • 我在tap0和br0上看到ARP请求
  • 我看到br0上的ARP答复
  • 我没有看到tap0上的ARP回复

问题:为什么br0设备不转发ARP回复到tap0设备?

没有更多的信息,我们猜测,但让我们试试:

首先确保eth0和tap0都处于混杂模式。 br0不应该在混杂模式。

接下来检查你是否有arptables和任何可能会干扰的iptables规则。

因为你已经得到了arp回复,你可能没有这个 ,但无论如何检查。

最后检查rp_filter设置,还要检查你可能已经设置的任何额外的sysctl参数。

如果您的ESXi主机具有到networking的冗余连接,则由于Net.ReversePathFwdCheckPromisc的默认设置,可能会出现各种ARP问题。 使用CARP的pfSense用户是最早进行debugging的用户之一,在https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting

在类似的环境中,我们在FreeBSD上build立了OpenVPN桥接,但是也增加了vlans的复杂性。 在Net.ReversePathFwdCheckPromisc尚未设置为1的主机上,并且存在多个到networking的上行链路时,我们发现到tap设备的入站stream量出现大量数据包丢失(95%+)。 它设置为1时工作得很好。