将流量从端口路由到不同的接口

将流量从端口路由到不同的接口

我有三个网关:

192.168.10.1 on eth0  (default),
192.168.100.1 on eth0:0
192.168.101.1 on eth0:1

我正尝试让我的计算机从请求端口决定使用哪一个。(请求来自服务器端)

exemple.com:80 -> via 192.168.10.1  to exemple.com:80
exemple.com:81 -> via 192.168.100.1 to exemple.com:80
exemple.com:82 -> via 192.168.101.1 to exemple.com:80

我该怎么办?

谢谢

答案1

您应该首先用 iptables 标记流量,然后您可以设置规则来相应地处理流量,类似于以下内容:

iptables -A PREROUTING -p tcp --dport 80 -t mangle -j MARK --set-mark 1
iptables -A PREROUTING -p tcp --dport 81 -t mangle -j MARK --set-mark 2
iptables -A PREROUTING -p tcp --dport 82 -t mangle -j MARK --set-mark 3

ip rule add fwmark 1 table 1
ip rule add fwmark 2 table 2
ip rule add fwmark 3 table 3

ip route add default via 192.168.10.1 table 1
ip route add default via 192.168.100.1 table 2
ip route add default via 192.168.101.1 table 3

当然,下一跳需要处理 NAT/等等,我没有检查语法。

相关内容