我在使用新创建的 Linux 桥时遇到了问题。其架构如下:
PC1 (eth0) <---> (eth2) BridgePC (eth0) <---> (eth0) PC2
BridgePC 是虚拟机(ESXi Hypervisor)。Bridgebr0
已启动并正在运行。DHCP 广播通过 BridgePC 从 PC2 的网段转发到 PC1。因此,PC1 会从 PC2 端的 DHCP 服务器获得一个 IP 地址。
brctl showmacs br0
验证 PC1 和 PC2 以及其他 MAC 是否在桥上被学习。
问题是,当尝试从 PC2 a ping PC1(单播消息)时,tshark -f 'arp'
BridgePC 会验证 PC2 是否发送 ARP 请求来确定ping
命令的 PC1 的 MAC。但 BridgePC 既不会将 ARP 请求转发给 PC1,也不会使用 ProxyARP(代表 PC1)进行响应。
我知道 ProxyArp 可以单独配置,但是我发现的所有桥接教程都没有明确提到如何做到这一点。
这是内核IP路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 br0
192.168.0.1 * 255.255.255.255 UH 0 0 0 eth0