iptables做路由轉發服務器經典案例

需求描述:


當前有一臺服務器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  無法回報。


wKiom1brxCvwhkgPAAEMsSXzLZM384.png

1、首先測試服務器B的業務正常:(爲了私密性,所有真實IP都已經打碼,大家可以對照上圖,自行對號入座,望理解)

wKioL1bryJWzObf8AAGotJELk-U012.png

測試正常,

服務器  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進行業務測試:

wKiom1bryq-hnQHFAAGVwtK76LY101.png

測試業務通過~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章