这种需求是有的,比如HostA被列为邮件服务器黑名单,把HostA的邮件服务迁移到HostB又比较麻烦,最省心的应急处理方式是把HostB作为邮件发送跳板。
基本思路是在HostA和HostB之间建立一个ip通道(ssl通道、pptp或者ipsec),然后把对外连接tcp/25的请求转发到HostB,再由HostB做来源地址改写(SNAT)。
1. 建立 HostA与HostB之间的ip通道
为简单起见,我们用ipip方式建立通道。在HostA做如下配置
modprobe ipip
ip tu add ipiptun mode ipip local
ip ad ad dev ipiptun 172.33.1.1 peer 172.33.1.2/32
ip li se dev ipiptun up
在HostB做如下配置
modprobe ipip
ip tu add ipiptun mode ipip local
ip ad ad dev ipiptun 172.33.1.2 peer 172.33.1.1/32
ip li se dev ipiptun up
2. 设置HostA的Netfilter Marking & Routing
echo 201 mail.out >> /etc/iproute2/rt_tables
iptables -A OUTPUT -t mangle -p tcp --dport 25 -j MARK --set-mark 1
ip rule add fwmark 1 table mail.out
ip rule ls
ip route add default via 172.33.1.2 dev ipiptun table mail.out
3. 设置HostB的SNAT
iptables -A INPUT -i ipiptun -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.33.1.1/32 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s
没有评论:
发表评论