首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个网关上向单个目的地负载平衡出站流量

在两个网关上向单个目的地负载平衡出站流量
EN

Server Fault用户
提问于 2013-05-26 09:02:00
回答 1查看 3.1K关注 0票数 3

在我的局域网中,我有两个路由器,它们使用两个不同的ISP提供互联网连接。通过将适当的路由器配置为默认网关,我可以选择使用哪个ISP。

互联网连接都是异步的--它们都有大量的下游容量,只有很少的上游容量。不幸的是,我需要大量的流量来上传视频到Youtube。我想同时使用两个互联网连接,以加快我的Youtube上传。

关于服务器故障链接到本文件的许多问题,描述了如何建立基于路由的负载平衡。但是,由于我的大部分流量都会到达相同的目的地(Youtube),这不会有帮助。

我认为在一个或另一个网关上交替发送包裹应该是相当简单的。如果所有包都具有与源地址相同的IP地址(这意味着传入的通信将始终使用相同的接口),那么就没有问题了,是吗?我能想到的唯一的节目阻止器是NAT,它可能会阻止我设置源IP地址。不幸的是,我还没有ipv6连接,不得不与NAT一起生活。

所以问题是:

  1. 如何实现出站流量的负载平衡(Linux)
  2. 这能在使用NAT的时候完成吗?
EN

回答 1

Server Fault用户

发布于 2013-05-26 11:08:27

为了能够利用来自两个网关的上传带宽,您需要拆分到Youtube的单个上传连接的数据包,这样它们就可以通过两个网关传输,然后重新组装回一个连接到Youtube。

一种方法是如果你的调制解调器/路由器和你的ISP支持MLPPP。但是,由于大多数ISP不提供此功能,还有另一种方法(虽然在具有不稳定延迟的异步网关上不太稳定/健壮)。

您将需要一个带有两个公共IP的VPS服务器。

从您的路由器,您设置了2个VPN连接到VPS。每个连接将使用您的每个网关(因此VPS上的两个公共IP)。这可以通过简单的静态路由来完成,这样每个IP都可以通过每个网关进行路由。

然后,在这两个VPS的基础上进行连接,在路由器和VPS之间创建一个链接。

然后,您将路由器配置为通过连接接口从LAN/PC路由所有数据包。

在VPS方面,您必须配置SNAT,以便连接接口的数据包能够在internet上运行。

粗略的图表应该是这样的:

代码语言:javascript
复制
                            ----- GATEWAY 1 -----
                           /                     \
                          /                       \
LAN/PC-------MODEM/ROUTER-  -  -   BONDING -   -  -VPS SERVER------INTENRET
                          \                       /
                           \                     /
                            ------ GATEWAY 2 ----

我已经使用MikroTik RouterOS实现了上述功能,但是它也可以在Linux上实现(因为MikroTik也是基于Linux的)。

为了在VPN之上工作,您需要使用OpenVPN或EoIP (以太网对IP隧道)。

键合驱动程序将被配置为balance-rr模式( Robin模式),这样单个连接的数据包将在两个VPN之间被分割。

NAT所需的只是在VPS上的一个简单的伪装,以允许您的LAN/PC上的数据包与VPS IP一起在互联网上运行。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/510943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档