需求描述:
當前有一臺服務器B IP假設爲10.10.10.10 此臺服務器有smtp、pop服務,用戶可以正常使用
當前爲了區別個性服務,需要部分用戶從服務器A(192.168.100.100)去使用smtp、pop;
業務邏輯:部分用戶的smtp、pop從10.10.10.10改爲192.168.100.100,我們這裏使用iptables的策略實現:
此案例較其他iptables策略不同的地方,在於,iptables既做了 POSTROUTING 也做了 PREROUTING ;因爲如果不這麼做的話,就會導致服務器 B 無法回報。
1、首先測試服務器B的業務正常:(爲了私密性,所有真實IP都已經打碼,大家可以對照上圖,自行對號入座,望理解)
測試正常,
服務器 A 添加 iptables 策略如下:
iptables -t nat -I POSTROUTING -s 0.0.0.0/0.0.0.0 -o bond0 -j SNAT --to-source 192.168.100.100 iptables -t nat -I PREROUTING -i bond0 -d 192.168.100.100 -p tcp --dport 110 -j DNAT --to-destination 10.10.10.10 iptables -t nat -I PREROUTING -i bond0 -d 192.168.100.100 -p tcp --dport 25 -j DNAT --to-destination 10.10.10.10
記得在轉發服務器開啓路由轉發:
net.ipv4.ip_forward = 1
將從此主機轉發出去的出口IP轉換爲本機IP,然後將訪問本機的25 110端口轉發到 服務器B
開始以 服務器A 上IP進行業務測試:
測試業務通過~