如何使用两个接口连接到同一个网络和同一个子网

How to connect to the same network and same subnet with two interfaces

在实验室中,我们有两个主机,分别是 A 和 B。 主机 A 有两个网卡,主机 B 有一个网卡(网络拓扑见下图)

主机 A 的 NIC-1 连接到实验室网络并且

主机 A 的 NIC-2 直接(端到端)连接到主机 B

            ----------
            |         | -> NIC1                  ------> Lab Network (10.203.194.0/24)
            |         |    (eth0 - 10.203.194.247/24)
            | host A  |                                          ----------
            |         | -> NIC2                  -------> NIC1   | host B  | 
            -----------   (eth1 - 10.203.209.230/24)             -----------
                                                             (eth0 - 10.203.194.163/24)

从主机 A,我能够 ping 'lab network' 而我不能 connect/ping 主机 B (10.203.194.163)。我发现主机 A 的路由 table 具有到实验室网络的默认 gw。

从主机 A 连接实验室网络和主机 B 需要进行哪些更改。

我可以在主机A中建立连接eth0和eth1接口的桥接;但我不喜欢该选项,因为主机 B 不应接收任何特定于实验室网络的数据包,这就是我没有将主机 B 直接连接到实验室网络的原因。

我正在寻找一些特定于 destination/source 的路由选项,必须根据该选项来决定接口。

最后,我只需在路由 table 中添加规则即可解决问题。

$>route add –host 10.203.194.163 dev eth1

现在我的路由 table 看起来像:

 Destination      Gateway       Genmask         Flags MSS Windows irtt Iface
 10.203.194.163   0.0.0.0       255.255.255.255 UH    0   0       0    eth1
 10.203.194.0     0.0.0.0       255.255.255.0   U     0   0       0    eth0
 0.0.0.0          10.203.194.1  0.0.0.0         UG    0   0       0    eth0

当我从主机 B ping 主机 A 并在 eth0 上 运行 tcpdump 时,我不会收到任何 ICMP 数据包,而在 eth1 中我可以看到来自主机 B 的所有 ICMP 数据包:)