如何將 2 個虛擬 IP 公網和私網轉送至不同的目的地

如何將 2 個虛擬 IP 公網和私網轉送至不同的目的地

這是我的案例,

1 個盒子中的伺服器 1 個公用 IP (eth0) -> 203.xx55/28 和 57/28 gw 203.xx49 私人 IP (eth1) -> 10.10.8.1

1 個盒子中的伺服器 2 專用 IP (eth0) -> 10.10.8.5/24 和 7/24 gw 1​​0.10.8.1

iptables

-A PREROUTING -d 203.x.x.55 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.8.5:80
-A PREROUTING -d 202.10.39.57 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.8.7:80
-A POSTROUTING -s 10.10.8.5 -j SNAT --to-source 203.x.x.55
-A POSTROUTING -s 10.10.8.7 -j SNAT --to-source 203.x.x.57

那麼我的問題是,如果來自目標連接埠 9100 的 ip private 將使用 IP public 55,而連接埠 9200 將使用 ip public 57。

-A POSTROUTING -s 10.10.8.5/24 -d 10.10.8.1 -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.55
-A POSTROUTING -s 10.10.8.0/24 -d 10.10.8.1 -p tcp -m tcp --dport 9200 -j SNAT --to-source 202.x.x.57

結果沒有成功,全部都用ip 57偵測到。

這有什麼問題嗎?感謝您的關注。

答案1

問題解決了。

將目的地加入outside_target:

-A POSTROUTING -s 10.10.8.0/255.255.255.0 -d (outside_target) -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.55
-A POSTROUTING -s 10.10.8.0/255.255.255.0 -d (outside_target) -p tcp -m tcp --dport 9100 -j SNAT --to-source 202.x.x.57

相關內容