特定源端口的多网关路由

特定源端口的多网关路由

我有两个网关来访问互联网,不知何故我想对其进行负载平衡,到目前为止它正在工作,但是某些连接或服务需要使用持久网关IP,因此客户端一旦连接到目标就不应更改其网关。,我目前的实现似乎是循环法或其他什么。

这是我的iproute

...
...
default
    nexthop via 192.168.1.1 dev eth0 weight 1
    nexthop via 192.168.1.2 dev eth0 weight 1

现在我想以某种方式修复它,客户端将使用的网关是预先确定的,例如通过使用源端口,如果源端口是偶数,我们使用 gw.1,奇数则通过 gw.1,我们可以使用 ip 来做到这一点路线?

*请注意,我这里只有一个出站接口:eth0。

答案1

使用带有标记数据包的策略路由。我不确定它是什么格式的配置,但你应该在你的发行版中检查它。

在命令行中它应该看起来像(未经测试但应该可以工作)

iptables -A PREROUTING -t mangle -p tcp --dport 22 --set-mark 0x1 -j CONNMARK
echo "200 ssh" >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table ssh
ip route add default dev eth0 via 192.168.1.2 table ssh

编辑:线

echo "200 ssh" >> /etc/iproute2/rt_tables

用名称“ssh”命名路由表 200。它保存在靴子之间。

相关内容