我希望实现无论主机(位于同一子网上)我连接到 tunx 上的 ethx,都可以看到(ping,有 ip 连接)位于其他 ethx 或 tunx 上的其他主机(位于同一子网上) 。这对于桥梁来说似乎是不可能的,有什么建议吗? (不是像 openvswitch 这样的东西,简单/小的东西)
+-----------+
| BR0 | 10.11.12.x
172.16.1.y | | 172.16.1.x
--------|ETH2 TUN1|-------
| |
| | 172.16.1.x
10.11.12.y | TUN2|-------
--------|ETH1 |
+-----------+
在下面的这种情况下,我可以从连接到 172.16.1.y 的 br0 ping 虚拟机
+-----------+
| BR0 |
172.16.1.y | | 172.16.1.x
--------|ETH2 TUN1|-------
| |
| | 172.16.1.x
| TUN2|-------
| |
+-----------+
仅使用连接到 10.11.12.y 的“brctl addif br0 eth1”添加第二个 eth 适配器时。相同的 ping 不再起作用。我了解到这是因为网桥 mac 更改为新添加的 eth1s mac,使用“ifconfig br0 hw ether”将其更改回 eth2,重新建立了与 172.16.1.y 的连接。
+-----------+
| BR0 |
172.16.1.y | | 172.16.1.x
--------|ETH2 TUN1|-------
| |
| | 172.16.1.x
10.11.12.y | TUN2|-------
--------|ETH1 |
+-----------+
问题是,即使尝试使用 'arping -I br0 -s 10.11.12.158 10.11.12.1' 强制 arp 更新或设置专用条目,我似乎也只能 ping 10.11.12.y 或 172.16.1.y在 arp 表中。
理论上应该可以通过网桥桥接多个子网?
更新:我在 vmware 中有 BR0 虚拟机,Linux 高级路由和流量控制邮件列表中的某人告诉我,vmware 的 vswitch 可能会导致 eth1 和 eth2 的行为不同。例如。我的配置应该已经可以工作了。
答案1
您无法桥接路由协议(例如 IP)的不同子网。您可以桥接两个(或多个)同一子网。您可以在两个(或更多)不同子网之间进行路由。
如果您希望子网 A 上的计算机能够联系子网 B 上的计算机,您需要在它们之间进行路由。这座桥没有任何帮助。