此外,就流量负载均衡而言,BGP 还是有一些局限性。BGP 作为一项路由协议,它通常会将多个路径中的一个路径定义为Internet 的最佳路径,将所有的流量都通过此路径发送。对于流入的流量,路由器会将其发布到链路另一端的网关路由器。于是流量分配将不受路由器的控制,它完全依靠外部BGP 发布,流量很可能会从某个单链路中返回。目前对此的人工解决方案是将内部网络分成子网,分别将子网发布到BGP 邻居。这是一项人工操作,需要熟练掌握BGP 专业技术, 受到链路中有关网络阻塞和网络性能方面知识的限制,并且当网络状态不稳定时,它不能动态调整配置。
因此我们面临的挑战将是完成确定的人工任务,如更新BGP 路由表,这是一项重复性的工作并且非常耗时,我们需要自动处理这项任务来降低管理的开销。这样做可以让管理员将精力放在更加重要的问题上面,并且使他能够有效地利用自己的时间。
2. Array 提供最佳的解决方案
Array Networks提出了基于APV-LLB的解决方案:
在内部交换机和连接ISP的路由器之间,跨接一台APV智能交换机,所有的地址处理和Internet链路优化全部由它来完成。
对流出流量,可以进行智能地址管理,APV使用了称为SmartNAT的算法:当选定某一个ISP传送流出流量时,APV将选择该ISP提供的地址;为了优化流出的流量,APV还为流出的流量实施最快响应时间运算,内部主机要访问某外部服务时,可选择更有效的ISP路径。
对流入流量,APV-LLB集成的SmartDNS功能能够完成流入流量的负载均衡;使用与流出流量相同的最短响应时间判断机制,选择最佳的流入流量传输路径,进行最终的解析地址。
2.1 方案介绍
图中多宿主网络通过ISP1和ISP2接入Internet。每个ISP都分配给该网络一个IP地址网段,假设:
ISP1分配的地址段为100.10.1.0/24 ISP2分配的地址段为200.20.1.0/24
同样,Internet知道通过ISP1访问100.10.1.0/24,通过ISP2访问200.20.1.0/24。网络中的主机和服务器都属于私有网段192.168.1.0/24。
Array Networks的解决方案就是在内部交换机和连接ISP的路由器之间,跨接一台APV-LLB智能交换机,所有的地址处理和Internet链路优化全部由APVC-LLB智能交换机来完成。
如图所示,APV-LLB智能交换机的外侧端口1上绑定IP地址100.10.1.2/24,外侧端口2上绑定IP地址200.20.1.2/24,内侧端口上绑定IP地址192.168.1.1/24。解决方案实现方式如下。
2.2 流出(Outbound)流量处理
APV主要采用以下方式来处理流出流量。
SmartNAT
对于流出流量的智能地址管理,APV-LLB使用了称为SmartNAT的算法。当选定一个路由器(某一个ISP)传送流出流量时,APV-LLB将选择该ISP提供的地址。在图二中,如果APV-LLB选择ISP1作为流出流量的路径,则它将把内部的主机地址192.168.1.A/24翻译为100.10.1.10/24,并作为流出数据包的源地址。同样,如果APV-LLB选择ISP2作为流出流量的路径,则它将把内部的主机地址192.168.1.A/24翻译为200.20.1.10/24,并作为流出数据包的源地址。
采用SmartNAT时,APV-LLB支持的负载均衡算法包括:
Round Robin
APV-LLB按照顺序的选择多个出口链路作为每个数据流的流出路径。
Weighting Round Robing
APV-LLB为每个出口链路设定一个加权值,并根据加权值顺序的选择多个出口链路作为每个数据流的流出路径,权值大的链路被选择的次数多。通过此算法,企业可以在多条带宽不同的链路间合理分配流量,带宽高的链路权值大,因此承载的流量就高。
Shortest Response Time
为了优化流出的流量,APV-LLB还为流出的流量实施最快响应时间运算。如果内部主机要访问某一Internet站点,可能通过一个ISP的路径比通过其他ISP的路径有效。因此,APV-LLB可以提供最短响应时间算法,为流出到某一个站点的流量选择最佳的ISP路径,保证所需内容最快到达目的地,提高服务的品质。
Destination IP-Based Routing 根据双链路网络的特点,APV-LLB还提供基于每个数据流的目标IP地址的路由选择算法。APV-LLB会检查每个流的目标IP地址是否属于预先设定的一个地址范围,若是,则选择某一条特定链路作为该数据流的流出路径。通过此算法,用户可以设定目标IP地址属于网通范围的,通过网通的链路流出,属于电信地址范围的流量则通过电信的链路流出。
2.3 其它重要功能设置:
链路健康检查
APVC-LLB在多宿主网络中的一个主要作用是检测ISP链路的可用性,即健康状况。因此,APVC-LLB提供了链路健康检查的功能,从而保证多条数据链路的正常,提高服务质量。
路径健康检查
公司访问Internet的可靠性不仅仅是由ISP路由器提供的链路状况决定的,而是由整个数据流经的路径决定。因此,APVC-LLB提供了路径健康检查的功能,从而保证整条数据路径的正常,提高服务质量。
策略路由
APVC-LLB可以设置基于用户数据包源IP/Port、目标IP/Port的策略路由,通过该功能可以帮助学习人为的对特殊的流入流出流量进行规划,比如某个院系的应用系统需要比较高的数据传输带宽,而企业的多条Internet链路的带宽存在不均衡性,管理员可以选择一条带宽更高的链路承载这个院系的数据流量。
总结:建议流出流量使用Destination IP-Based Routing规则与Shortest Response Time规则相结合的方法,当用户上网访问目标IP地址属于网通范围的,通过网通的链路流出,属于电信地址范围的流量则通过电信的链路流出。对于其他不不属于网通与电信地址范围的站点,用户访问根据最快响应时间的算法,APV-LLB会判断从2个链路到目标站点的响应时
间哪个更短,将用户流量导向响应时间较小的链路上,也就是用户通过速度最快的链路进行访问。
2.4 流入(Inbound)流量处理
APV-LLB不仅需要管理流出的流量,还必须管理来自Internet的访问,即流入(InBound)流量。假设图四中的Server是Web服务器,Internet主机名为llb.arraynetworks.net,地址为私有IP:192.168.1.100/24。
SmartDNS
APV-LLB上集成的SmartDNS功能能够完成流入流量的负载均衡。
图:流入流量的负载均衡
如图所示,在DNS服务器上注册两笔NS记录,指向APV-LLB: llb.arraynetworks.net 100.10.1.10 llb.arraynetworks.net 200.20.1.10
而在APV-LLB上设置静态的地址翻译: 192.168.1.100 100.10.1.10 192.168.2.100 200.20.1.10
当有Internet用户访问llb.arraynetworks.net时,DNS服务器回应给用户由APV-LLB来完成最终地址解析。APV-LLB根据具体设置来选定适当的ISP线路,如果选择ISP1,则将
地址解析为100.10.1.10。同样,如果选择ISP2,则将地址解析为200.20.1.10。从而完成流入流量的负载均衡。
采用SmartDNS时,APV-LLB支持的负载均衡算法包括:
? Round Robin
APV-LLB顺序的将多个ISP的IP地址作为每次用户解析请求的返回值。
? Weighting Round Robing
APV-LLB为每个ISP的IP地址设定一个加权值,并根据加权值顺序的选择多个ISP的IP地址作为每次用户解析请求的返回值,权值大的ISP的IP地址被选择的次数多。通过此算法,用户可以在多条带宽不同的链路间合理分配流量,带宽高的链路权值大,因此承载的流量就高。
? Source IP-Based Routing
APV-LLB还提供基于每个数据流的源IP地址的路由选择算法。APV-LLB会检查每个用户解析请求的源IP地址是否属于预先设定的一个地址范围,若是,则选择某一个ISP的IP地址作为该次用户解析请求的返回值。通过此算法,用户可以设定源IP地址属于网通范围的,通过网通的链路流入,属于电信地址范围的通过电信的链路流入。
总结:建议流入流量使用Source IP-Based Routing规则,当用户请求的Local DNS地址属于网通地址范围的,通过网通的链路流入站点,属于电信地址范围的流量则通过电信的链路流入。对于其他不不属于网通与电信地址范围的站点,用户访问可以将默认的算法定向到某一个性能较好的ISP链路上,也可以根据Weighting Round Robing的算法,为每个ISP的IP地址设定一个加权值,并根据加权值顺序的选择多个ISP的IP地址作为每次用户解析请求的返回值,权值大的ISP的IP地址被选择的次数多。通过此算法,用户可以在多条带宽不同的链路间合理分配流量,带宽高的链路权值大,因此承载的流量就高。
3. 解决方案功能特点介绍
APV-LLB可检测到整个链路中出现的错误,从而能够提供可靠的端到端 WAN 连接。它可以监视每个连接的运行状态和可用性,实时检测链路或 ISP 的损耗情况。一旦出现故障,流量将被动态地传递给其它可用链路,从而确保用户及外部客户继续保持连接。 3.1. 全面的链路监控能力
如何有效地确定链路,服务器、应用、内容的状态,是提高系统可靠性的关键。APV利用其独到的、高效的“健康检测”手段,识别链路,服务器、应用、内容的状态。 它们包括:
? ICMP检查:利用ICMP可检查服务器的网络工作是否正常。
? TCP检查:Array APV可与服务器之间,利用服务器的服务端口建立TCP连
接,检查服务器的服务是否正常。
? HTTP检查:Array APV采用HTTP的检查,来验证服务器提供的服务是否正
常。
链路负载均衡解决方案
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)