我正在研究一个拥有多年变化历史的多个盒子和路线的现场networking。 我试图用最小的干扰来巩固它们。 我想摆脱一些旧的路由器,并由较新的(活)框处理连接。
应该这样工作吗?
iptables -t mangle -A PREROUTING -p tcp -d 192.168.0.1 -j MARK --set-mark 1 iptables -t mangle -A PREROUTING -p tcp -d 192.168.0.2 -j MARK --set-mark 2 iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 -j DNAT --to-destination $DST:7021 iptables -t nat -A PREROUTING -p tcp -d 192.168.0.2 -j DNAT --to-destination $DST:7022 iptables -t nat -A POSTROUTING -p tcp -d $DST -m mark --mark 1 -j SNAT --to-source 192.168.0.1 iptables -t nat -A POSTROUTING -p tcp -d $DST -m mark --mark 2 -j SNAT --to-source 192.168.0.2 iptables -A FORWARD --destination $DST -j ACCEPT
如果eth0是在2个虚拟IP上路由的静态IP – eth0:1是192.168.0.1,eth0:2是192.168.0.2,并且都在目标$ DST上结束。
使用MARK似乎是我最好的方式,但它不工作 – $ DST似乎响应静态IP地址,而不是我试图与SNAT的虚拟。 这是因为MARK不会以这种方式工作,或者因为iptables中的其他条目覆盖或因为我需要查看iproute2 fwmark规则?
上面的提取是最小的,我需要一个解决scheme,扩展到多个UCARP的IP地址,以及所有已经configuration的iproute2规则和iptables过滤。 不幸的是,就像我想重新开始一个更高级别的路由工具,我现在坚持把更改集成到现有的iproute2 / iptables设置中。
谢谢