Linux

如何在同一子網上通過機器 2 將流量從機器 1 路由到機器 3,反之亦然?

  • July 7, 2015

我有一個執行虛擬機的 Citrix Xenserver。我在那裡有三個虛擬機,每個都有 2 個網卡:eth0是我用於管理的公司 LAN,並且eth1是所有三個虛擬機上的“單伺服器專用網路”。管理界面僅適用於我的 SSH 會話。

分配給我的虛擬機的 IP 是:

M1 = 192.168.0.1/24
M2 = 192.168.0.2/24
M3 = 192.168.0.3/24

在 M2 上,我啟用了 IP 轉發:

echo 1 > /proc/sys/net/ipv4/ip_forward

要通過 M2 將流量從 M1 路由到 M3:

ip route add 192.168.0.3 via 192.168.0.2 dev eth1

同樣在 M3 上:

ip route add 192.168.0.1 via 192.168.0.2 dev eth1

但是,當我從 M1 跟踪路由或將流量發送到 M3(反之亦然)時,它似乎直接到達目的地,而不是通過 M2。是因為它們在同一個子網上嗎?如果它們在同一個子網上,我的 Linux 機器上應該怎麼做才能實現這個路由?

網路:

  1. 在 Xen 上創建單伺服器專用網路。
  2. 將其添加 machine1 和 machine3,各一個。
  3. 將在步驟 1 中創建的其中兩個添加到 machine2中。

機器1:

ip addr add 1.1.1.2/24 dev eth1
ip route add 2.2.2.0/24 via 1.1.1.1 dev eth1 proto static

機器3:

ip addr add 2.2.2.2/24 dev eth1
ip route add 1.1.1.0/24 via 2.2.2.1 dev eth1 proto static

機器2(路由器):

ip addr add 1.1.1.1/24 dev eth1
ip addr add 2.2.2.1/24 dev eth2

測試:

ping 2.2.2.2 # machine1
ping 1.1.1.2 # machine3

引用自:https://unix.stackexchange.com/questions/207271