
我有以下設定:
Box A
eth0 - 192.168.1.101
eth1 - 10.10.2.1
Box B
eth0 - 10.10.2.2
Box A 透過 eth0 可以上網。我希望 Box B 在 192.168.1.0/24 網路上可見,因此我可以直接從另一個 box ssh 到它,但 Box A 也必須可用。
我考慮過在 Box A 上建立一個到 eth0 的虛擬 ip,然後將所有流量轉送到 Box B
ifconfig eth0:0 192.168.1.102
iptables -t nat -A PREROUTING -i eth0:0 -j DNAT --to-destination 10.10.2.2
但這似乎不起作用。
也啟用了 IP 轉發,並且 Box B 可以透過以下方式存取互聯網
iptables -t nat -A POSTROUTING -j MASQUERADE
答案1
我將透過在網路中的預設閘道上新增靜態路由來解決此問題192.168.1.0/24
,這意味著所有發送到10.10.2.0/24
網路的封包都將透過192.168.1.101
節點路由。
然後,您需要在 上啟用 IP 轉送192.168.1.101
。
然後,您還需要在 Box B 上新增到192.168.1.0/24
via的路線。10.10.2.1
這樣您就可以在兩個網路中使用10.10.2.x
和192.168.1.x
位址,並且所有流量都將在網路之間路由。
答案2
您不能使用虛擬介面作為 的參數-i
。訣竅是使用目的地地址:
iptables -t nat -A PREROUTING -d 192.168.1.102 -j DNAT --to-destination 10.10.2.2