Android openvpn + zeroconf浏览器通过eth0发送mdns查询包,而不是使用wifi上的tap0接口

在Android设备上,我使用openvpn连接到远程networking来执行服务发现。

  1. 工作实例:设备在3g / 4g上驻留后,通过openvpn连接到远程networking后,当启动zeroconf浏览器时,可以看到通过tap0接口发送的mdns查询包,导致浏览器呈现服务。

从设备上捕获的tcpdump,我可以看到mdns查询包发送到tap0接口。

tap0 ip: 192.168.11.200 Route table information: Destination Gateway Genmask Flags Metric Ref Use Iface 76.26.112.234 10.179.240.1 255.255.255.255 UGH 0 0 0 pdpbr1 10.179.240.1 * 255.255.255.255 UH 0 0 0 pdpbr1 32.1.72.136 * 255.255.255.255 UH 0 0 0 pdpbr0 10.179.240.0 * 255.255.255.0 U 0 0 0 pdpbr1 192.168.11.0 * 255.255.255.0 U 0 0 0 tap0 default 192.168.11.1 0.0.0.0 UG 0 0 0 tap0 
  1. 不工作的情况:然而,打开WiFi并连接到远程networking后,启动zeroconf浏览器时,而不是发送mdns查询数据包到tap0接口; 这些数据包正在发送到eth0接口,因此我们看不到这些服务。

从设备上捕获的tcpdump,我可以看到mdns查询包发送到eth0接口。

 tap0 ip: 192.168.11.200 eth0 ip: 192.168.43.230 route table information: Destination Gateway Genmask Flags Metric Ref Use Iface 76.26.112.234 192.168.43.1 255.255.255.255 UGH 0 0 0 eth0 32.1.72.136 * 255.255.255.255 UH 0 0 0 pdpbr0 192.168.11.0 * 255.255.255.0 U 0 0 0 tap0 192.168.43.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.11.1 0.0.0.0 UG 0 0 0 tap0 

在上面的情况下,即使tap0有一条默认路由,所有的组播报文都将通过eth0路由。 这怎么可能?

有没有人观察到类似的问题? 如果在通过WiFi通过openvpn连接到远程networking后,您可以通过zeroconf浏览器帮助我们发现服务,这将非常有帮助。