如果我的系统中有两个 NIC,并且它们都连接到具有不同 IP 地址的不同 ISP,我是否可以在它们上分配网络流量以增加带宽。我已经研究过诸如网络绑定之类的解决方案,我们创建了一个呈现给应用程序的逻辑接口,并将两个 NIC 绑定在一起。
我还看到了使用 SCTP 或 SCPS-TP 协议而不是 TCP 的解决方案。
我的困境是,我必须使用应用程序域中现有的解决方案。假设我正在为多个客户端系统编写软件,我不希望它们使用 sctp 更改其 tcp 或对绑定进行太深入的研究(对于 netbonding,只有当 IP 来自同一网络时它才有效)。
设计这样的解决方案的关键问题是什么?
答案1
由于它们位于不同的网络上,因此无法将两个连接聚合或绑定在一起,但是您可以对传出连接进行负载平衡,以便第一个 TCP/IP 请求从接口 a 传出,第二个从接口 B 传出,第三个从接口 a 传出... 等等。
不幸的是,您没有说明您使用的是什么操作系统,因为我不知道如何在 Windows / MacOS / Solaris /等系统中执行此操作,我只能链接到 Linux 解决方案。
无论是什么操作系统,您都应该能够在出站设置路由时执行类似操作。
另一方面,如果您需要对传入连接进行负载平衡,则建议使用循环 DNS 是 Adam Davis 建议的正确解决方案。
答案2
可能最便宜的方法是以循环方式使用 DNS。
不要绑定这两个接口 - 让它们具有不同的 IP 地址,并设置 DNS 服务器以在两个 IP 地址之间交替。
它不在您请求的应用程序域中,但实际上可能更容易做到。
-亚当
答案3
答案4
我一直都很幸运地通过双 WAN 路由器(例如众多 DrayTek 设备之一)来运行它。这些对于典型的网络浏览来说工作得很好,但您必须担心更高级的应用程序,这些应用程序具有会话感知或检查引用 IP 地址的功能。在某些情况下,例如 VPN 连接或 voip/视频会议,您可能会遇到连接问题,从而抵消增加带宽的好处。通常,您可以通过将端口静态分配给单个连接来解决这个问题。