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

sam*_*sam 5 networking router internet routing load-balancer

我有 2 条传入宽带线路,均为 c.10mb 下行 / c.0.8 上行。(一条线比另一条略快)

我最近在研究并观看了此视频后设置了 TP Link - TL-R470T+ 负载平衡路由器。我将 2 条单独的 adsl 线路运行到我的 2 个单独的调制解调器中,从那里我从调制解调器运行 2 cat5s 到负载平衡器,然后从负载平衡器到 wifi 路由器运行 1 cat5,所有设备都通过 wifi 路由器连接。

在他们谈论禁用视频“启用应用程序优化路由” -如果我运行SPEEDTEST与它使我基本上刚刚得到更快的宽带线路的速度的结果。如果我禁用上述设置并运行速度测试,我会得到两条线的组合速度。

在选项旁边,它写着以下评论:

Enable Application Optimized Routing 选中此框后,同一网络应用在多连接上的所有数据包都将通过相同的WAN端口转发,避免了该应用程序的数据包通过不同的WAN端口转发而导致的异常。

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

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

我知道如果我启用了此设置,我仍然可以获得两条线路的自动切换优势,但不能同时使用它们。如果我不选中此选项,会遇到什么样的问题/什么样的服务会/colud 遇到问题?

小智 6

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

这意味着有时远程服务器可以从具有不同源地址的应用程序获取 IP 数据包。有时它可能会令人困惑或被视为中间人攻击。这就是为什么大多数加密连接(如 HTTPS、TLS 和 SSL 加密 VPN)的原因,也许某些在线游戏无法使用此类连接类型或出现异常行为。

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


Nev*_*ams 2

对于 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
Run Code Online (Sandbox Code Playgroud)

这将为每个 ISP 连接创建两条优先级相同的静态默认路由。

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

ip load-sharing per-packet
Run Code Online (Sandbox Code Playgroud)

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

ip load-sharing per-destination
Run Code Online (Sandbox Code Playgroud)

将其设置回默认方案。

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

您的 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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