在多ispconfiguration中按端口路由

我正在使用shorewall防火墙,并已成功configuration多个isp源。

目前它平衡所有stream量到两个ISP。 我想要实现的是将sshstream量路由到ISP1并将wwwstream量路由到ISP2。 我怎样才能做到这一点?

我想你将需要创build多个路由表。 一个是默认的正常stream量,下一个是您的特殊SSH表,其中包含只用于您想要使用的ISP连接的路由条目。

接下来,设置iptables来标记来自你的IP和侦听SSH端口的数据包。

最后,您可以设置ip规则条目来根据防火墙标记进行路由。

在LARTC文档中有很多信息(但是您可能已经看到了这个信息): http ://lartc.org/howto/lartc.rpdb.html

所以,举个例子:

  1. 添加一个名称为新的路由表。

    echo SSH 500 >>/etc/iproute2/rt_tables 
  2. 添加一个默认路由到另一个路由表,完成正确的事情。

     ip route add default via $ISP2_GW table SSH 
  3. 设置一个规则来使fwmark使用这个新表。

     ip rule add fwmark 0x0001 table SSH 
  4. 最后设置一个iptables规则来标记你的数据包。

     iptables -I PREROUTING -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001 iptables -I OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001 

这应该有希望设置你想要的东西正确。 您还需要确保此configuration在重新启动后仍然存在! 我把这个作为练习留给你。