负载平衡路由器上的应用程序优化路由?

负载平衡路由器上的应用程序优化路由?

我有 2 条宽带线路,下载速度均为 c.10mb / 上传速度均为 c.0.8。(一条线路比另一条稍快)

我最近在研究和观看了 TP Link - TL-R470T+ 负载平衡路由器后,安装了这个视频. 我将 2 条独立的 adsl 线路接入我的 2 个独立调制解调器,然后我将 2 条 cat5 从调制解调器接入负载均衡器,再将 1 条 cat5 从负载均衡器接入 wifi 路由器,所有设备都通过 wifi 路由器连接。

在视频中,他们谈到了禁用“启用应用程序优化路由”——如果我运行速度测试启用该设置后,我基本上只能获得更快的宽带线路的速度结果。如果我禁用上述设置并运行速度测试,则可以获得两条线路的综合速度。

该选项旁边有以下注释:

启用应用优化路由 勾选此框后,多连接上同一网络应用的所有数据包将通过相同的 WAN 口转发,避免因该应用的数据包通过不同的 WAN 口转发而导致的异常。

这到底是什么意思? - 我使用了不少“实时同步网站”,例如 Google Drive 和 Trello,它们使用套接字、节点 js 和长轮询的混合体通过连续连接来回传输数据,这些服务会受到影响吗?

我也在几台机器上使用云备份服务,这样的事情会受到影响吗?

我理解,如果我启用此设置,我仍然可以享受两条线路的自动切换优势,但不能同时使用它们。如果我不选中此选项,会出现哪些问题/哪些服务会遇到问题?

答案1

对于 IPv4:

TCP 连接(不是 UDP,不是多播等)是应用程序建立的会话,用于进行交易和呈现内容,该连接位于一个且仅有一个源 IP:端口和一个且仅有一个目标 IP:端口之间。就公共互联网而言,该协议不允许单个会话建立一对多连接。由于 TCP 的状态特性,虽然可能由负载平衡器代理多个私有主机进行单个会话的部分工作,但这可能并不实际。

这两个 IP:port 主机之间的路由可能是无限动态的,只要两个主机都没有耗尽资源或超出任何计时器。这包括妥善处理无序数据包,只要不超过硬限制或软限制。

这意味着,为了在出站方向的两个单独链路上对会话进行负载平衡,两条路径都必须能够将流量从相同的源 IP 转发到相同的目标 IP。

当两条链路属于同一 ISP 时,这通常不是问题,除非每条连接都有严格的源 IP 过滤器(显式或隐式)。事实上,如果没有特定限制,可以在两条单独的链路上进行出站方向的平衡,而无需 ISP 的任何帮助。

然而,对于入站流量的负载平衡则并非如此。ISP 几乎总是必须介入以在入站方向实现负载平衡。

假设 ISP 已同意为您实施负载平衡:

实现此目的的最简单方法之一是分配您自己的子网,而不是 DSLAM 所服务的常规网络。此子网可能小到只有一个 /32 主机,或者对于一个办公室来说,甚至可能有几百个主机。

为了在两个 IP 链路和客户端设备 (CPE) 之间实现可靠的负载平衡,负载平衡器应至少具有 3 个独立接口,并且两个面向 ISP 的接口应属于两个不同的网络,以消除任何模糊的路由或交换决策

假设您的一个面向 ISP 的负载均衡器接口为 10.2.2.2/30,另一个为 10.2.2.254/30。您的 CPE 网络为 65.172.1.0/24,负载均衡器面向 CPE 的接口为 65.172.1.1。

你的负载平衡器必须执行以下操作:

ip route 0.0.0.0 0.0.0.0 10.2.2.1
ip route 0.0.0.0 0.0.0.0 10.2.2.253

这会为每个到 ISP 的连接创建两个具有相同优先级的静态默认路由。

在充当负载平衡器的思科路由器上,默认方法是按目的地进行负载平衡,因为路由缓存流的工作方式对路由器来说工作量较少。但是,还有一个选项

ip load-sharing per-packet

它将以循环方式转发具有多个等效路由的流量,并从两个接口转发。

ip load-sharing per-destination

将其设置回默认方案。

此设置将对您的出站连接进行负载平衡。

您的 ISP 必须在其设备上配置这两个静态路由,并使用相同的每个数据包或每个目的地选项,最有可能是前者:

ip route 65.172.1.0 255.255.255.0 10.2.2.2
ip route 65.172.1.0 255.255.255.0 10.2.2.254

如果两侧设置正确,则负载均衡器的两个 WAN 接口都应该报告相同的每秒接收数据包数和相同的每秒传输数据包数统计信息。

您询问的功能与按数据包负载共享和按目的地非常相似。但是,如果是同一个 ISP,您可以放心地将其保留为按数据包;“优化”选项更适合对两个连接到不同提供商的连接进行负载平衡。请注意,更改此选项只会影响您的出站流量,对入站流量没有影响。

如果没有 ISP 的帮助(可能还要付费),您不太可能实现双向负载平衡连接。您的 ISP 应该能够为您提供适合您情况的设置建议。

然而,根据我对您的网络设计的了解,我认为每个数据包都会存在明显的问题。

答案2

因此,您有 2 条宽带线路 - 这意味着您有 2 个 WAN 端口。当您在两个或更多 WAN 端口上启用负载平衡时,使用您的应用程序生成的 IP 数据包将通过第一个可用的 WAN 端口,或使用循环算法或者可能是您的负载均衡器的硬件和固件支持的更复杂的算法。

这意味着有时远程服务器可以从具有不同源地址的应用程序获取 IP 数据包。有时可能会造成混淆或被视为中间人攻击。这就是为什么大多数加密连接(如 HTTPS、TLS 和 SSL 加密 VPN)可能某些在线游戏无法运行或可能无法在这种连接类型下正常运行。

应用程序优化路由意味着来自一个应用程序的所有 IP 数据包将仅通过一个 WAN 端口(这就是您使用 speedtest 看到“更快宽带线路的速度结果”的原因)。如果您运行多个应用程序,例如两个浏览器使用两个 speedtest,应用程序优化路由应该为您的第一个应用程序使用一个 WAN,为第二个应用程序使用另一个 WAN,依此类推。总之,如果您启用应用程序优化路由,您将能够使用这两个连接,但某些应用程序的连接速度将等于一条宽带线路的连接速度(下载速度约 10mb / 上传速度约 0.8)

答案3

TCP 协议要求数据包按顺序到达。如果您使用两个或更多 WAN 接口,则数据包可能会无序到达远端。这可能会导致整体吞吐量下降,因为接收方会不必要地采取恢复操作。

就您而言,这意味着如果您通过 TCP“绑定”两个 5 Mbps WAN 接口,则总吞吐量可能略低于理论最大值 10 Mbps。解决丢包问题的方法是将一个给定连接在连接期间仅绑定到一个 WAN。

TL-R480T 用户指南解释此选项(即使这不是您的模型):

勾选前面的复选框Enable Application Optimized Routing,路由器会将数据包的源 IP 地址和目标 IP 地址作为一个整体进行考虑,并记录它们经过的 WAN 端口。然后,具有相同源 IP 地址和目标 IP 地址或目标端口的数据包将被转发到记录的 WAN 端口。此功能是为了确保多连接应用程序正常运行。

IP 地址这个术语值得分析,因为您的计算机并不在互联网上。它是连接到互联网的路由器,而您的计算机是完全独立于互联网的本地网络的成员。因此,您的计算机的 IP 地址可能类似于 192.168.0.xxx,而您要连接的网站的 IP 地址则完全不同。

因此,上文中的“源 IP 地址”是指您计算机在内部网络内的地址,而“目标 IP 地址”是指互联网上的地址。结果是,即使您从计算机打开多个连接,所有连接都指向同一个网站,路由器也会将它们全部视为位于同一个 IP 地址之间。

因此,您测试的解释是:

  • Enable Application Optimized Routing ,路由器仅使用一个 WAN,因此测量的速度就是这个 WAN 的速度。路由器还可以足够智能地优先选择速度更快的 WAN,而不是速度较慢的 WAN。
  • Enable Application Optimized Routing 离开,路由器使用了两个 WAN,因此总速度是两个 WAN 带宽的总和。

对于第二种情况,由于观察到的总带宽大约等于带宽之和,这意味着 speedtest 使用的协议对无序数据包不太敏感。

相关内容