在我的局域网中,我有两台使用两个不同ISP提供互联网连接的路由器。 通过将相应的路由器configuration为默认网关,我可以select使用哪个ISP。
互联网连接都是asynchronous的 – 都有很大的下游容量,只有很小的上游容量。 不幸的是我需要大量的stream量来上传video到YouTube。 我想同时使用两个互联网连接,以加快我的Youtube上传。
关于serverfault链接到本文档的许多问题描述了如何设置基于路由的负载均衡。 但是由于我的大部分stream量都是通往相同的目的地(Youtube),这无济于事。
我想在一个或另一个网关上交替发送软件包应该非常简单。 如果所有软件包的IP地址与源地址相同(意味着传入的stream量总是使用相同的接口),那么应该没有问题,是吗? 唯一能让我想到的是NAT,它可能阻止我设置源IP地址。 不幸的是,我还没有ipv6连接,必须与NAT一起生活。
所以问题:
为了能够从两个网关利用上传带宽,您需要将单个上传连接的数据包拆分为Youtube,以便他们将通过这两个网关,然后重新组合成一个连接到Youtube。
一种方法是如果您的调制解调器/路由器和您的ISP支持MLPPP。 但是由于大多数ISP不提供这种服务,还有另一种方法(即使在asynchronous网关上具有不稳定/不稳定的延迟)。
您将需要一个带有两个公共IP的VPS服务器。
从您的路由器设置2个VPN连接到VPS。 每个连接将使用您的每个网关(因此VPS上的2个公共IP)。 这可以通过简单的静态路由来完成,以便每个IP通过每个网关路由。
然后你绑定这两个VPN的顶部,在你的路由器和VPS之间创build一个单一的链接。
然后configuration您的路由器通过绑定接口路由来自您的LAN / PC的所有数据包。
在VPS方面,您必须configurationSNAT才能使来自绑定接口的数据包在互联网上出去。
粗略的图表会是这样的:
----- GATEWAY 1 ----- / \ / \ LAN/PC-------MODEM/ROUTER- - - BONDING - - -VPS SERVER------INTENRET \ / \ / ------ GATEWAY 2 ----
我已经使用MikroTik RouterOS实现了上述function,但也可以在Linux上完成(因为MikroTik也是基于Linux的)。
要使绑定在VPN上工作,您需要使用OpenVPN或EoIP(以太网over IP隧道)。
绑定驱动程序将configuration为balance-rr模式(循环模式),以便单个连接的数据包在两个VPN之间进行拆分。
所需的NAT仅仅是一个简单的伪装,在VPS上允许来自LAN / PC的数据包通过VPS IP在互联网上出去。