使用多个 NIC 增加带宽

使用多个 NIC 增加带宽

如果我的系统中有两个 NIC,并且它们都连接到具有不同 IP 地址的不同 ISP,我是否可以在它们上分配网络流量以增加带宽。我已经研究过诸如网络绑定之类的解决方案,我们创建了一个呈现给应用程序的逻辑接口,并将两个 NIC 绑定在一起。

我还看到了使用 SCTP 或 SCPS-TP 协议而不是 TCP 的解决方案。

我的困境是,我必须使用应用程序域中现有的解决方案。假设我正在为多个客户端系统编写软件,我不希望它们使用 sctp 更改其 tcp 或对绑定进行太深入的研究(对于 netbonding,只有当 IP 来自同一网络时它才有效)。

设计这样的解决方案的关键问题是什么?

答案1

由于它们位于不同的网络上,因此无法将两个连接聚合或绑定在一起,但是您可以对传出连接进行负载平衡,以便第一个 TCP/IP 请求从接口 a 传出,第二个从接口 B 传出,第三个从接口 a 传出... 等等。

不幸的是,您没有说明您使用的是什么操作系统,因为我不知道如何在 Windows / MacOS / Solaris /等系统中执行此操作,我只能链接到 Linux 解决方案。

这是在 Linux 上设置路由的指南

无论是什么操作系统,您都应该能够在出站设置路由时执行类似操作。

另一方面,如果您需要对传入连接进行负载平衡,则建议使用循环 DNS 是 Adam Davis 建议的正确解决方案。

维基百科上有关循环 DNS 的内容

答案2

可能最便宜的方法是以循环方式使用 DNS。

不要绑定这两个接口 - 让它们具有不同的 IP 地址,并设置 DNS 服务器以在两个 IP 地址之间交替。

它不在您请求的应用程序域中,但实际上可能更容易做到。

-亚当

答案3

在软件中您可以尝试使用路由做一些事情,我不太确定任何操作系统如何处理具有相同度量(成本)的两条路由。假设您的系统设置了默认网关192.168.0.1,则以下命令(Windows)将配置第二个默认网关192.168.0.2

ROUTE ADD 0.0.0.0 MASK 0.0.0.0 192.168.0.2 METRIC 20

硬件会是一个更可靠的解决方案,因为不需要重新配置单个系统。基本上,你需要一个双 WAN 路由器具有负载平衡功能。

你的问题不是很清楚这适用于传入流量(服务器)还是传出流量(应用程序)。如果你正在处理传入流量,那么正如 Adam 建议的那样轮询 DNS是最简单的解决办法。

答案4

我一直都很幸运地通过双 WAN 路由器(例如众多 DrayTek 设备之一)来运行它。这些对于典型的网络浏览来说工作得很好,但您必须担心更高级的应用程序,这些应用程序具有会话感知或检查引用 IP 地址的功能。在某些情况下,例如 VPN 连接或 voip/视频会议,您可能会遇到连接问题,从而抵消增加带宽的好处。通常,您可以通过将端口静态分配给单个连接来解决这个问题。

相关内容