需求描述:
当前有一台服务器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进行业务测试:
测试业务通过~
转载于:https://blog.51cto.com/lansgg/1752663