我有两个网关来访问互联网,不知何故我想对其进行负载平衡,到目前为止它正在工作,但是某些连接或服务需要使用持久网关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。它保存在靴子之间。