一个以太网卡上的多个虚拟IP的IP路由

一个以太网卡上的多个虚拟IP的IP路由

我正在开发一个由多个盒子和路由组成的实时网络,这些网络经历了长期的变更。我正试图以最小的干扰整合它们。我想摆脱一些旧路由器,让较新的(实时)盒子处理连接。

这应该可行吗?

    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 是静态 IP,并且在 2 个虚拟 IP 上有路由 - eth0:1 是 192.168.0.1,而 eth0:2 是 192.168.0.2,并且都到达目标 $DST。

使用 MARK 似乎是我最好的方法,但它不起作用 - $DST 似乎响应静态 IP 地址,而不是我尝试使用 SNAT 输入的虚拟 IP 地址。这是因为 MARK 无法以这种方式工作,还是因为 iptables 中的其他条目被覆盖,或者因为我需要查看 iproute2 fwmark 规则?

上面的摘录是最小的,我需要一个可扩展到多个 UCARP 的 IP 地址的解决方案,以及所有已配置的 iproute2 规则和 iptables 过滤。不幸的是,尽管我很想重新开始使用更高级的路由工具,但我目前只能将更改集成到现有的 iproute2/iptables 设置中。

谢谢

相关内容