Linux
如何在同一子網上通過機器 2 將流量從機器 1 路由到機器 3,反之亦然?
我有一個執行虛擬機的 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 機器上應該怎麼做才能實現這個路由?
網路:
- 在 Xen 上創建單伺服器專用網路。
- 將其添加 machine1 和 machine3,各一個。
- 將在步驟 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