使用 VPN 桥接时的 ARP 行为

使用 VPN 桥接时的 ARP 行为

我在使用 VPN 连接基础设施时遇到了麻烦。我对正在使用的 VM 没有太多权限,因此很难给您准确答案,所以这个主题应该是理论上的。

有 3 个接口:

  • br-xxxxxxxxxxxx :Docker 用作所有容器之间的 NAT 网络。此网络应通过 VPN 暴露给外部
  • docker0 :似乎没有被使用
  • eth0 :物理接口

以下是 ifconfig 配置:

br-dd5a54c6d409: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::42:2fff:fec9:ba04  prefixlen 64  scopeid 0x20<link>
        ether 02:42:2f:c9:ba:04  txqueuelen 0  (Ethernet)
        RX packets 5019  bytes 549801 (536.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5791  bytes 676602 (660.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:b4:34:2c:04  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.160.10  netmask 255.255.254.0  broadcast 192.168.161.255
        inet6 fe80::215:5dff:fe38:10b  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:38:01:0b  txqueuelen 1000  (Ethernet)
        RX packets 7819  bytes 1062488 (1.0 MiB)
        RX errors 0  dropped 4345  overruns 0  frame 0
        TX packets 770  bytes 48554 (47.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

问题是,当我在连接 eth0 的交换机中连接一个设备时,我给出了 192.168.0.0/24 中的地址(例如 192.16.0.1),该设备发送一个 ARP 请求以防止重复 IP(正常行为),但是虚拟机发出一个 ARP 回复,告诉我该 IP 当前已被使用(从突出显示的数据包中检查)。

Wireshark 捕获

顺便说一句,这是真的,因为其中一个容器使用了这个 IP 地址,但由于我的设备没有与 VPN 配对,VM 不应该响应 ARP 请求,对吗?只有通过 VPN 连接的设备才会接收 ARP 数据包?

我以为代理 arp 已经启用,所以行为应该是正常的,但似乎不是

[support@TPE-HOST ~]$ cat /proc/sys/net/ipv4/conf/br-dd5a54c6d409/proxy_arp
0
[support@TPE-HOST ~]$ cat /proc/sys/net/ipv4/conf/eth0/proxy_arp
0

为了防止这种情况,我建议在网络中添加 VLAN,这将完全分离接口,但客户不希望在他的网络中采用这种解决方案。

所以现在我完全迷茫了,是否存在一种可能导致这个问题发生的机制?

相关内容