LAN和Wi-Fi的负载平衡


8

我有一台Mac,可以运行Mac OS X 10.6或Ubuntu 9.10或Windows XP(Multiboot)。解决方案可以适用于任何系统,无论效果如何。

我有两个ISP,一个可以通过Wi-Fi访问,一个可以通过LAN访问。在Mac OS XI中可以定义优先级,首先选择哪个网络。但是我想做的是在两个网络之间实现负载平衡

我不想购买额外的硬件。如果有帮助,我有一些未使用的Wi-Fi路由器。

在Linux上编译和配置程序对我来说没有问题。

类似的问题:使用多个网关进行负载平衡


2
您将要检查是否所有建议的解决方案都具有在其接口上持久连接的规则。如果您的ISP之间的连接跳动,则另一端的服务器可能会混乱。我知道,例如,如果您使用其他IP地址进行连接,则Yahoo IM将断开其连接。
Doug Harris

听起来您需要某种无线Multi-WAN中继器来吸收来自2个不同WIFI路由器的信号,然后通过LAN连接将其馈送到您的计算机。
djangofan

LISP(定位器/标识符分离协议)可能是一种解决方案,但这对我来说太复杂了。;-)
Synox

您要如何平衡负载?
大卫·史瓦兹

大文件下载,视频流,youtube等
Synox

Answers:


1

对于linux,一个接近主题是路由的“度量”设置。较低的数字比较高的数字更可取。如果您为两条路线都设置相同的指标,那么我认为它们的选择概率相同。

我认为您要尝试实现的技术称为多宿主。我没有任何直接的经验。但是,您可能需要记住一些注意事项。

  • 默认情况下,我认为您只会得到一条默认路由。这意味着默认情况下,所有传出流量将首选一个接口。您需要考虑使用多个默认路由,或者随着时间的推移动态更改该路由。
  • 在单个传入(TCP)连接的生命周期内,它应保持与传入连接相同的接口。我认为。

任何人,这些都是我目前能想到的。


metric是Windows和OS X中网络接口的参数;任何支持多个网络接口的OS都需要一种设置优先级的方法。
apraetor

1

您可以使用路由度量标准系统,在其中将两个Internet连接以相等的度量标准安装在路由表中。然后,操作系统应同等使用这两个路由,从而有效地将您的出站流量分配到两个链接上。

回复您的请求的传入流量也应保持平衡,因为它将返回到请求发出的接口(公共IP)。

这样做的问题是会话持久性,例如,您通过一个链接查看一个网站,但是下一个页面视图是从其他界面中进行负载均衡的,这会使某些应用程序感到困惑,因为您的源IP地址会不断变化。

因此,我可能只会将您的部分流量分配给其他接口,而不会使用等价的路由,可能是按应用程序,目的地或协议。可以使您的流量路径保持一致的东西。


1

Connectify Dispatch的解决方案可以满足您的需求。目前仅适用于Windows,但是人们已经成功地在OS X上虚拟化和使用了他们的软件。

由于您已经运行(正在运行)Windows XP,因此我认为您可以自行解决该问题。


最大的问题是Windows轻松提供了对多个NIC的支持,而在OS X上却不那么容易实现。


0

有一种解决方法:我的应用程序能够负载平衡,我可以定义2个连接,然后将两者同时使用。

然后,我将其中一个服务器IP路由到IPS之一。

在Mac OS 10.6上:

路由添加-host XXX.XXX.XXX.XXX 192.168.1.1

我知道,这是非常具体的,并且只有在服务器IP始终相同的情况下才有效。并且应用程序是否可以以任何方式实现负载平衡。


0

我认为,如果不做所有流出的流量是一个ISP,而流入的流量是另一个ISP,这将是不可能的。

原因是将这两种流量都分配到两个独立的网络上,似乎并没有让它们回来。如果您有来自1个ISP的2条管道,则有可能。

就像之前的人说的那样,我认为您仍然需要默认值,并且可以限制通过一条路线的某些流量,而通过另一条路线的流量则受到限制。只是不要认为像您在LAN上那样的负载平衡在这里可以工作。

示例:使用192.168.2。*运行更新。Wi-Fi ISP使用192.168.1。* LAN ISP运行半衰期。



0

我以不同的方式听到过十二次相同的问题。首先,内部会话和外部会话的处理方式类似,但不相同。对于每个内部会话,可能会有多个外部会话,反之亦然。从逻辑上讲,您所说的并不是不可能的,但是确实需要一些编程和准备。某些设备的构建具有聚合以太网连接或wifi的功能,以在网络上内部提高网络速度,但是对于外部网络,我仅发现具有FAILOVER的设备,这意味着它们仅在需要时才进行切换。但是,您可以在连接协议中使用基本交换(如果语句的值为0或1),可为每个EXTERNAL会话通过不同的网关重定向流量。然后,您必须通过将子会话包装在具有sessionID的主会话内,来跟踪附加到每个内部会话的每个EXTERNAL SESSION。然后,您将必须有一种方法来检查站点域或使用sessionID来完成内部路由(换句话说,您需要能够基于每个外部session \ connection区分来自客户端的消息。他们向或向其发送数据的站点,以便为每个站点设置管道,以防止该站点拒绝管道。这意味着您必须在路由器中构建新的网络协议,并决定如何区分连接(如果仅通过站点域完成,则可以从路由器执行此操作,但是客户端可以尝试使用路由器的ipaddress。网站的外部门户,对此无效;如果在两端都完成,则客户端需要跟踪某些标识符,通常是二进制掩码的数值,以使发送接收方与在主门上路由的外部会话匹配。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。客户端需要跟踪一些标识符,通常是二进制掩码的数值,以使发送接收方与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。客户端需要跟踪一些标识符,通常是二进制掩码的数值,以使发送接收方与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。通常是二进制掩码的数值,该数值允许将发送接收方与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。通常是二进制掩码的数值,该数值允许将发送接收方与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。允许将发送接收者与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。允许将发送接收者与在主门上路由的外部会话进行匹配)。换句话说,您必须编写自己的协议来处理网络,并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建某些东西。与旧的现有编程兼容(主机和客户端之间的消息传递必须对此进行绑定,这会给主机带来更多的负担,但对于客户端而言并没有什么新事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建与旧的现有编程兼容的东西(这需要与主机之间的消息传递绑定)和客户端,这会使主机磨损更多,但对客户端而言并没有什么新鲜事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。并且必须决定是否要自己构建它(同时使用客户端和主机编程),或者是否要构建与旧的现有编程兼容的东西(这需要与主机之间的消息传递绑定)和客户端,这会使主机磨损更多,但对客户端而言并没有什么新鲜事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。给主机增加更多磨损,但对客户而言却没有什么新鲜事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。给主机增加更多磨损,但对客户而言却没有什么新鲜事物)。如果您知道您的unix,或者您知道winserver编程,则只需一点时间即可完成,但是需要为平衡的每个设备分配大量的资源。

对于大型公司样式的网络,您可以将网络划分为网状,并为每个楼层或部门分配专用的网关,以允许多个ISP,而在其中任何一个上都不要放置太多资源。您还可以让集线器处理故障转移,当其中一个发生故障时,集线器会将更改或重定向发送到其他网关。这提供了一定的容错能力。


2
如果不是一堵墙,您的答案更有可能被阅读。请花一点时间将其分成几段。
fixer1234 '19

是的 但是无论如何,界面都将其发布为文本墙。
Htd Tech

仅供参考,对单个连接进行负载平衡的答案是,如果您不对两端进行连接,那实际上是不可行的。但是出于加速Web访问的目的,有些第三方多NIC卡将同时访问内部网络。如果您有多个isp服务,则可以允许系统处理带宽平衡。这实际上不适用于游戏或未压缩的视频,因为两端会协商数据包的大小,但是如果您经常在线工作,这是可行的,并且会提高性能。
Htd Tech

我只发现一个段落中断并解决了该问题。“秘密”是您需要段落之间的双返回(空白行)。否则,系统将为您的方便一起运行它。
fixer1234 '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.