redirect一些特定的stream量到不同的网关

我有两个不同ISP的网关,其中一个被定义为LAN用户的默认值,另一个ISP被用作服务器和VPNstream量的默认值。 这是使用configuration了DHCP的常规路由表完成的。

现在我想要安装在局域网用户的笔记本电脑上的Google驱动器和其他一些软件stream量使用大量的上传来总是使用未被定义为其默认gw的另一个ISP。 我怎么能做到这一点?

我最初的想法是使用IPTABLES或鱿鱼。

我一直在尝试这个

iptables -t nat -A PREROUTING -d GOOGLE_IP -j DNAT --to-destination MY_SECOND_ISP iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j SNAT --to-source GOOGLE_IP iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j MASQUERADE 

但它不起作用。 当我testing它的stream量去默认gw

任何想法如何使用iptables,shorewall或squid?

假设局域网默认网关(GW1)局域网IP为192.168.1.1,而服务器默认网关(GW2)局域网IP为192.168.1.2,即局域网可以看到两个路由器位于同一网段。

您可以在GW1上configuration一个静态路由,将目标为GOOGLE_IP的stream量指向下一跳GW2 LAN IP地址。

如果GW1是Cisco:ip route GOOGLE_IP 255.255.255.255 GW2_LAN_IP

如果GW1是Linux:ip route add GOOGLE_IP / 32 gw GW2_LAN_IP

这样,当局域网中的任何主机向GOOGLE_IP发送stream量时,stream量都将转到GW1。

然后,GW1上的静态路由将把stream量转发到GW2。

然后,GW2将stream量转发出其WAN接口。

从互联网到GW2的返回stream量将被转发到局域网,并将到达主机。

这样,您可以在GW1上创build一次路由,以便适用于所有LAN主机。

由于像Google驱动这样的服务在云中,而且他们的IP可能随时发生变化,所以我相信您的方法迟早会停止工作。

还有另一种方法可以通过在客户机操作系统级别上进行DSCP标记来区分这些应用程序的stream量。

DSCP标记将被“附加”在数据包上,这样你就可以将这些数据包与你的路由器上的iptables进行匹配,并通过VPN或任何你喜欢的其他网关进行路由。

这样你就是说,例如googledrive.exe(或任何你想要的应用程序)将始终通过VPN路由,无论它试图连接。

以下是有关如何使用Windows设置自定义DSCP标记的说明https://support.timso.com/index.php?/Knowledgebase/Article/View/24/3/windows-7-and-implementing-qos

您可以将dscp标记与iptables的–dscp匹配选项相匹配。
http://www.iptables.info/en/iptables-matches.html#DSCPMATCH

当然以上所有都不回答你原来的问题。 您仍然需要制定策略路由。