ScreenOS的多链路负载均衡功能实现
- 格式:doc
- 大小:104.50 KB
- 文档页数:4
多链路负载均衡解决方案一、背景介绍随着互联网的快速发展,越来越多的应用和服务需要通过多个链路来实现负载均衡,以提高系统的性能和可用性。
多链路负载均衡解决方案是一种通过合理分配流量到多个链路上的方法,以避免单一链路的瓶颈,提高系统的负载能力和稳定性。
二、解决方案概述多链路负载均衡解决方案基于负载均衡器的原理,通过将流量分发到多个链路上,实现对系统资源的均衡利用。
该解决方案主要包括链路选择算法、负载均衡器的部署和监控。
三、链路选择算法1. 轮询算法:按照事先定义的顺序依次将请求分发到不同的链路上,实现负载均衡。
2. 加权轮询算法:为每个链路设置一个权重值,根据权重值的大小来决定分发请求的优先级,从而实现负载均衡。
3. 最少连接算法:根据当前链路的连接数来决定分发请求的优先级,将请求分发到连接数最少的链路上,以实现负载均衡。
4. 哈希算法:根据请求的某个特定属性(如源IP地址、URL等)计算哈希值,将请求分发到对应的链路上,以实现负载均衡。
四、负载均衡器的部署1. 硬件负载均衡器:通过专用的硬件设备来实现负载均衡功能,具有高性能和稳定性,适用于大规模系统的部署。
2. 软件负载均衡器:通过在普通服务器上安装软件来实现负载均衡功能,成本较低,适用于小规模系统的部署。
五、负载均衡器的监控1. 流量监控:通过监测每个链路上的流量情况,及时发现异常情况并采取相应的措施,以保证系统的正常运行。
2. 健康检查:定期检查每个链路的健康状态,如连接数、响应时间等,发现异常情况后及时剔除故障链路,以保证系统的稳定性。
3. 日志分析:通过分析负载均衡器的日志,了解系统的负载情况和性能瓶颈,以优化系统的负载均衡策略。
六、案例分析以某电商平台为例,该平台通过多链路负载均衡解决方案实现对用户请求的分发。
在该解决方案中,采用加权轮询算法作为链路选择算法,根据链路的负载情况和性能指标设置不同的权重值,以实现负载均衡。
在负载均衡器的部署方面,该平台采用硬件负载均衡器,通过多个负载均衡器的组合部署,实现对大规模用户请求的处理。
多链路负载均衡解决方案1. 背景介绍在网络通信中,负载均衡是一种重要的技术手段,用于平衡网络流量、提高网络性能和可靠性。
随着网络规模和复杂度的增加,传统的单链路负载均衡已经不能满足需求,因此多链路负载均衡成为一种解决方案。
2. 多链路负载均衡的定义多链路负载均衡是指通过同时利用多个网络链路,将流量合理地分配到这些链路上,以达到提高网络性能和可靠性的目的。
它可以实现流量的负载均衡、链路故障的快速切换和链路资源的最优利用。
3. 多链路负载均衡的原理多链路负载均衡的实现主要依靠以下几个原理:a. 负载分配:将流量均匀地分配到多个链路上,避免某个链路过载而影响整体性能。
b. 健康检查:定期检测链路的可用性和质量,以便及时发现故障链路并进行切换。
c. 动态调整:根据链路的负载和性能情况,动态调整流量的分配比例,以最大化利用链路资源。
4. 多链路负载均衡的实现方式多链路负载均衡可以通过多种方式实现,下面介绍两种常见的实现方式:a. 基于硬件设备的负载均衡器:使用专用的硬件设备,如负载均衡交换机或者负载均衡路由器,来实现多链路的负载均衡。
这些设备通常具有强大的处理能力和丰富的负载均衡算法,可以支持大规模的网络流量。
b. 基于软件的负载均衡器:使用软件程序来实现多链路的负载均衡。
这种方式相对灵便,可以在普通的服务器上运行,但对于大规模的网络流量可能性能有限。
5. 多链路负载均衡的优势多链路负载均衡相比单链路负载均衡具有以下几个优势:a. 提高网络性能:通过合理地分配流量,可以减轻单个链路的负载,提高整体网络的吞吐量和响应速度。
b. 提高网络可靠性:当某个链路发生故障时,可以快速切换到其他可用链路,保证网络的连通性和可靠性。
c. 最优利用链路资源:根据链路的负载和性能情况,动态调整流量的分配比例,使得链路资源得到最优利用。
6. 多链路负载均衡的应用场景多链路负载均衡适合于以下几种应用场景:a. 数据中心网络:在大规模的数据中心网络中,多链路负载均衡可以提高网络的性能和可靠性,支持大量的用户访问和数据传输。
多链路负载均衡解决方案一、概述多链路负载均衡解决方案是一种网络技术,旨在通过合理分配流量和资源,提高网络性能和可靠性。
该解决方案通过将流量分发到多个链路上,实现负载均衡,从而提高系统的吞吐量和响应速度。
本文将详细介绍多链路负载均衡解决方案的原理、实施步骤以及相关技术。
二、原理多链路负载均衡解决方案基于以下原理:1. 链路选择:根据链路的性能指标(如带宽、延迟、丢包率等),选择最佳的链路进行数据传输。
2. 流量分发:将输入流量分发到多个链路上,使得每条链路上的负载相对均衡,避免单一链路过载。
3. 流量监测:实时监测链路的性能指标和负载情况,根据监测结果动态调整链路选择和流量分发策略。
三、实施步骤实施多链路负载均衡解决方案的步骤如下:1. 网络规划:根据实际需求和网络拓扑,设计合理的网络架构,包括链路配置、设备部署等。
2. 链路测量:通过网络测量工具对各个链路进行测量,获取链路的性能指标,如带宽、延迟、丢包率等。
3. 负载均衡策略设计:根据链路的性能指标和负载情况,设计合适的负载均衡策略,包括链路选择算法、流量分发算法等。
4. 配置负载均衡设备:根据负载均衡策略,配置负载均衡设备,如负载均衡器、路由器等,将其与网络中的各个链路连接起来。
5. 流量监测与调整:实时监测链路的性能指标和负载情况,根据监测结果对负载均衡策略进行调整,以达到最佳的负载均衡效果。
四、相关技术实施多链路负载均衡解决方案需要借助以下技术:1. 负载均衡器:负载均衡器是实现负载均衡的关键设备,它可以根据预设的负载均衡策略,将输入流量分发到多个链路上。
2. 链路测量工具:链路测量工具用于测量链路的性能指标,如带宽、延迟、丢包率等。
3. 链路选择算法:链路选择算法根据链路的性能指标,选择最佳的链路进行数据传输。
常用的链路选择算法有最短路径算法、加权轮询算法等。
4. 流量分发算法:流量分发算法用于将输入流量分发到多个链路上,使得每条链路上的负载相对均衡。
多链路负载均衡解决方案引言概述:在当今互联网时代,网络流量不断增加,对网络带宽和性能的要求也越来越高。
为了提高网络的可用性和性能,多链路负载均衡解决方案应运而生。
本文将介绍多链路负载均衡的概念及其解决方案,并详细阐述其在网络中的应用。
一、多链路负载均衡的概念1.1 多链路负载均衡的定义多链路负载均衡是一种网络技术,通过将网络流量分散到多个链路上,以实现负载均衡和提高网络性能。
它可以将网络流量分发到多个链路上,避免单一链路的拥堵,提高网络的可用性和吞吐量。
1.2 多链路负载均衡的原理多链路负载均衡通过使用负载均衡算法,将网络流量分发到多个链路上。
它可以根据不同的负载均衡策略,如轮询、加权轮询、最小连接数等,将流量分发到不同的链路上,使得每个链路都能得到合理的负载,提高网络的性能和可用性。
1.3 多链路负载均衡的优势多链路负载均衡可以提供更高的带宽和更好的性能。
通过将流量分发到多个链路上,它可以充分利用网络资源,避免链路的拥堵,提高网络的吞吐量。
同时,多链路负载均衡还可以提高网络的可用性,当某个链路故障时,可以自动将流量切换到其他正常的链路上,保证网络的连通性。
二、多链路负载均衡的应用2.1 企业网络在企业网络中,多链路负载均衡可以提高网络的性能和可用性。
通过将流量分发到多个链路上,它可以充分利用企业的网络资源,提高网络的吞吐量。
同时,当某个链路故障时,多链路负载均衡可以自动将流量切换到其他正常的链路上,保证企业网络的连通性。
2.2 数据中心在数据中心中,多链路负载均衡可以提高服务器的负载均衡和性能。
通过将流量分发到多个服务器上,它可以避免单一服务器的过载,提高服务器的处理能力。
同时,多链路负载均衡还可以提供高可用性,当某个服务器故障时,可以自动将流量切换到其他正常的服务器上,保证数据中心的正常运行。
2.3 云计算在云计算环境中,多链路负载均衡可以提高云服务的性能和可用性。
通过将流量分发到多个云服务器上,它可以充分利用云计算资源,提高云服务的吞吐量。
多链路负载均衡解决方案一、引言在现代网络应用中,负载均衡是一项关键技术,它能够将网络请求分发到多个服务器上,以提高系统的性能和可靠性。
然而,传统的负载均衡方案存在一些限制,例如单点故障、性能瓶颈等。
为了解决这些问题,多链路负载均衡解决方案应运而生。
二、背景随着互联网的快速发展,网络流量的增长速度也在迅猛增加。
传统的单链路负载均衡方案已经无法满足高并发和高可用性的需求。
因此,需要一种更加强大和灵活的负载均衡解决方案,即多链路负载均衡。
三、多链路负载均衡解决方案的原理多链路负载均衡解决方案通过将网络流量分发到多个链路上,以提高系统的性能和可靠性。
它可以根据流量的特征和服务器的负载情况,动态地调整流量的分发策略,从而实现负载均衡。
多链路负载均衡解决方案的核心原理包括以下几个方面:1.链路监测和状态检测:通过监测链路的状态和负载情况,实时获取链路的可用性和性能信息。
2.流量分发策略:根据链路的负载情况和性能信息,选择合适的链路进行流量分发,以实现负载均衡。
3.故障检测和故障恢复:当某个链路发生故障时,多链路负载均衡解决方案能够快速检测到,并将流量重新分发到其他可用链路上,以确保系统的可用性。
四、多链路负载均衡解决方案的优势相比传统的单链路负载均衡方案,多链路负载均衡解决方案具有以下几个优势:1.提高系统性能:通过将流量分发到多个链路上,可以充分利用系统资源,提高系统的并发处理能力,从而提高系统的性能。
2.提高系统可靠性:当某个链路发生故障时,多链路负载均衡解决方案能够快速检测到,并将流量重新分发到其他可用链路上,以确保系统的可用性。
3.灵活性和扩展性:多链路负载均衡解决方案可以根据实际需求进行灵活的配置和扩展,以满足不同规模和复杂度的应用场景。
五、多链路负载均衡解决方案的应用场景多链路负载均衡解决方案适用于各种网络应用场景,特别是那些对性能和可靠性要求较高的场景,例如:1.电子商务网站:通过多链路负载均衡解决方案,可以将用户的请求分发到多个服务器上,以提高网站的响应速度和用户体验。
多链路负载均衡解决方案一、概述多链路负载均衡解决方案是一种用于分发网络流量的技术,通过将流量分散到多个链路上,实现网络负载均衡,提高网络性能和可靠性。
本文将介绍多链路负载均衡解决方案的工作原理、优势和实施步骤。
二、工作原理多链路负载均衡解决方案基于流量分发算法,将进入网络的流量分发到多个链路上,使得每条链路的负载相对均衡。
具体工作原理如下:1. 流量分析:多链路负载均衡解决方案会对进入网络的流量进行分析,包括流量的源IP、目标IP、协议类型等信息。
2. 负载计算:根据流量分析的结果,多链路负载均衡解决方案会计算每条链路的负载情况,包括当前的负载量、带宽利用率等。
3. 负载分发:根据负载计算的结果,多链路负载均衡解决方案会将流量分发到负载较低的链路上,以实现负载均衡。
4. 监控与调整:多链路负载均衡解决方案会实时监控链路的负载情况,并根据需要调整流量分发策略,以适应网络负载的变化。
三、优势多链路负载均衡解决方案具有以下优势:1. 提高性能:通过分散流量到多个链路上,多链路负载均衡解决方案可以充分利用网络资源,提高网络性能和吞吐量。
2. 提高可靠性:多链路负载均衡解决方案可以实现链路冗余,当某条链路故障时,流量会自动切换到其他正常的链路上,提高网络的可用性和可靠性。
3. 灵活配置:多链路负载均衡解决方案支持灵活的配置选项,可以根据实际需求进行调整,满足不同场景的负载均衡需求。
4. 可扩展性:多链路负载均衡解决方案可以支持多个链路,可以根据需要扩展链路的数量,以适应不断增长的网络流量。
四、实施步骤实施多链路负载均衡解决方案的步骤如下:1. 网络规划:根据实际网络环境和需求,进行网络规划,确定需要实施多链路负载均衡的链路和设备。
2. 设备选择:根据网络规划,选择适合的多链路负载均衡设备,确保设备具备足够的性能和可靠性。
3. 配置设备:根据设备的使用手册,进行设备的基本配置和网络参数的设置,确保设备能够正常工作。
多链路负载均衡解决方案一、引言多链路负载均衡是一种网络技术,旨在实现网络流量的平衡分配,提高网络性能和可用性。
本文将介绍多链路负载均衡的基本原理、常见的解决方案以及其优势和应用场景。
二、多链路负载均衡的基本原理多链路负载均衡通过将流量分发到多个链路上,以平衡网络负载。
其基本原理如下:1. 选择最佳链路:根据链路的负载情况、带宽和延迟等指标,选择最佳的链路来分发流量。
2. 流量分发算法:采用不同的算法,如轮询、加权轮询、至少连接数等,将流量均匀地分发到各个链路上。
3. 健康检查:定期对链路进行健康检查,排除异常链路,确保流量的正常分发。
三、常见的多链路负载均衡解决方案1. 硬件负载均衡器:使用专用硬件设备,如F5 BIG-IP、Cisco ACE等,提供高性能的负载均衡功能。
这些设备通常具有丰富的功能和灵便的配置选项,适合于大规模和高性能的网络环境。
2. 软件负载均衡器:基于软件的解决方案,如Nginx、HAProxy等,通过在普通服务器上运行负载均衡软件来实现负载均衡功能。
这些软件具有较低的成本、易于部署和管理的优势,适合于中小规模的网络环境。
3. DNS负载均衡:通过在DNS服务器中配置多个IP地址,将流量分发到不同的服务器上。
这种解决方案简单易用,但对于长连接和会话保持等特殊需求支持较差。
4. SD-WAN:软件定义广域网技术,通过智能路由和负载均衡功能,将流量分发到不同的链路上,提供更好的网络性能和可用性。
SD-WAN具有集中管理、智能路由和安全加密等特点,适合于分布式网络环境。
四、多链路负载均衡的优势1. 提高性能:通过将流量均匀地分发到多个链路上,避免单一链路的过载,提高网络性能和响应速度。
2. 增强可用性:当某个链路发生故障时,多链路负载均衡可以自动将流量切换到其他正常的链路上,保证网络的可用性。
3. 扩展带宽:通过增加链路数量,多链路负载均衡可以扩展网络带宽,满足不断增长的流量需求。
多链路负载均衡解决方案一、背景介绍在现代网络环境中,负载均衡(Load Balancing)是一种常见的技术,它的目的是通过将网络流量分散到多个服务器上,从而提高系统的性能、可靠性和可扩展性。
然而,传统的负载均衡方案在面对大规模流量和复杂网络拓扑的情况下存在一些挑战,比如单一链路的容量限制和单点故障等问题。
为了解决这些问题,多链路负载均衡(Multi-Link Load Balancing)被提出。
二、多链路负载均衡的原理多链路负载均衡通过同时利用多个链路来分发流量,从而提高系统的负载能力和网络吞吐量。
其原理主要包括以下几个方面:1. 网络链路的选择:多链路负载均衡方案需要根据网络拓扑和链路状况选择合适的链路进行流量分发。
选择链路时可以考虑链路的带宽、延迟、可靠性等因素,以及网络拓扑的负载情况。
2. 流量分发算法:多链路负载均衡方案需要使用合适的算法来决定将流量分发到哪个链路上。
常见的算法包括轮询(Round Robin)、加权轮询(Weighted Round Robin)、最小连接数(Least Connections)等。
3. 流量监测和调整:多链路负载均衡方案需要实时监测各个链路的负载情况,并根据负载情况动态调整流量分发策略。
例如,当某个链路的负载过高时,可以将一部分流量转移到其他链路上,以实现负载均衡。
4. 容错和故障恢复:多链路负载均衡方案需要考虑链路的容错和故障恢复机制。
当某个链路发生故障时,系统应能够自动将流量转移到其他正常的链路上,以保证系统的可用性和稳定性。
三、多链路负载均衡的应用场景多链路负载均衡方案广泛应用于各种网络环境中,特别是在大型互联网公司、云计算平台、内容分发网络(CDN)等场景中。
以下是一些常见的应用场景:1. 云计算平台:在云计算平台中,多链路负载均衡方案可以帮助平台提供商实现对大规模用户的高效服务。
通过将用户流量分发到多个云服务器上,可以提高平台的负载能力和用户体验。
多链路负载均衡解决方案一、引言多链路负载均衡是一种网络技术,旨在通过将网络流量分散到多个链路上,提高网络性能和可靠性。
本文将介绍多链路负载均衡的概念、原理、优势以及实施过程。
二、概述多链路负载均衡是一种网络流量管理技术,通过将网络流量分发到多个链路上,以避免单一链路过载或者故障导致的性能下降或者中断。
它可以提高网络的吞吐量、可靠性和响应时间。
三、原理多链路负载均衡的原理是将网络流量根据一定的算法分发到多个链路上。
常见的负载均衡算法包括轮询、加权轮询、至少连接等。
这些算法可以根据实际需求进行选择和配置。
四、优势1. 提高网络性能:多链路负载均衡可以将网络流量分散到多个链路上,减轻单一链路的负载压力,从而提高网络的吞吐量和响应时间。
2. 增强网络可靠性:通过将流量分发到多个链路上,即使其中一个链路发生故障,其他链路仍可正常工作,提高了网络的可靠性和容错能力。
3. 灵便配置:多链路负载均衡可以根据实际需求进行配置,可以根据不同的业务需求调整负载均衡算法和权重,以满足不同的性能和可靠性要求。
五、实施过程1. 网络拓扑规划:首先需要进行网络拓扑规划,确定需要进行负载均衡的链路和设备。
根据实际情况,可以选择在边缘设备、交换机、路由器等位置实施负载均衡。
2. 负载均衡算法选择:根据实际需求选择合适的负载均衡算法。
常见的算法包括轮询、加权轮询、至少连接等。
可以根据业务需求和网络环境选择最合适的算法。
3. 配置负载均衡设备:根据选择的负载均衡算法,配置负载均衡设备。
配置包括链路设置、权重设置、监控设置等。
确保负载均衡设备能够按照预期工作。
4. 测试和监控:在实施负载均衡之后,需要进行测试和监控。
测试可以验证负载均衡的效果和性能,监控可以实时监测链路的状态和负载情况,及时调整配置和解决问题。
六、案例分析以某互联网公司为例,该公司的数据中心有多个链路连接到互联网。
为了提高网络性能和可靠性,他们实施了多链路负载均衡解决方案。
多链路负载均衡解决方案一、引言多链路负载均衡是一种网络技术,旨在提高网络性能和可靠性。
它通过将流量分散到多个链路上,实现负载均衡,从而避免单一链路的过载和故障。
本文将介绍多链路负载均衡解决方案的基本原理、优势以及实施步骤。
二、基本原理多链路负载均衡解决方案基于以下原理实现:1. 负载均衡算法:多链路负载均衡系统会使用一种负载均衡算法,根据不同的策略将流量分发到不同的链路上。
常见的负载均衡算法包括轮询、加权轮询、最小连接数等。
2. 健康检查:多链路负载均衡系统会定期对链路进行健康检查,以确保链路的可用性。
如果某个链路不可用,系统会自动将流量转移到其他可用链路上。
3. 会话保持:为了保持用户的会话一致性,多链路负载均衡系统可能会使用会话保持技术,将同一用户的请求始终转发到同一链路上。
三、优势多链路负载均衡解决方案具有以下优势:1. 提高网络性能:通过将流量分散到多个链路上,多链路负载均衡可以有效减轻单一链路的压力,提高网络的吞吐量和响应速度。
2. 增强可靠性:多链路负载均衡可以在某个链路故障时自动将流量转移到其他可用链路上,提高系统的可靠性和容错能力。
3. 弹性扩展:通过增加新的链路,多链路负载均衡可以实现系统的弹性扩展,满足不断增长的流量需求。
四、实施步骤以下是实施多链路负载均衡解决方案的基本步骤:1. 网络规划:根据实际需求,确定需要使用多链路负载均衡的网络区域和链路数量。
同时,需要考虑链路的带宽、延迟和可靠性等因素。
2. 设备选型:选择适合的多链路负载均衡设备,根据实际需求考虑设备的性能、可靠性和扩展性等因素。
3. 配置网络设备:根据设备厂商提供的文档,配置多链路负载均衡设备。
包括设置负载均衡算法、健康检查和会话保持等参数。
4. 测试与优化:在实际环境中进行测试,验证多链路负载均衡解决方案的性能和可靠性。
根据测试结果进行必要的优化和调整。
5. 监控与维护:建立监控系统,实时监测多链路负载均衡设备和链路的状态。
ECMP (2)
基于目标地址的路由 (3)
基于源地址的路由(PBR) (3)
入方向的负载均衡 (4)
随着互联网的不断发展,现代企业越来越多的依靠互联网来部署自己的关键业务;不管是为了保证企业互联网业务的可靠性还是为了进一步扩展企业的互联网接入带宽,很多企业都采用了租用多条互联网接入链路的方式。
那么如何将流量在多条链路上进行负载均衡呢?Juniper防火墙的ScreenOS系统提供几种不同的手段来完成这种功能。
ECMP
ScreenOS支持ECMP (Equal Cost Multi-Path /等值多路径) 功能,即支持将流量在多条等cost 值的路径上进行负载分担;
假如用户有两条链路接入互联网,则可设置两条静态默认路由(ScreenO中静态路由cost值默认都为1) 分别指向两个不同的下一跳地址,并打开ECMP功能,同时指定需要负载均衡的链路条数;另外可在防火墙连接两条链路的接口上都打开NAT功能,这样所有流量都会在两条链路上进行负载分担并转换成公网IP去往互联网;
Network -> Routing -> Virtual Router -> Edit
或通过命令行” set max-ecmp-routes 2 ”来启用ECMP功能,由于ScreenOS最多支持四条链路的负载均衡,因此还可使用” set max-ecmp-routes 3 ”或” set max-ecmp-routes 4 ”。
由于防火墙是状态检测设备,因此流量会基于会话以轮询的方式进行负载均衡;举个例子,假如共有10000个会话,如果在两条链路上打开ECMP功能的话,则其中约5000个会话从链路一出去,约5000个会话会从链路二出去;
ECMP功能的好处是配置简单,但其缺点也是显而异见的,即它不能智能地依据路由远近去分配流量,而是绝对平均地以轮询的方式分配所有会话到不同链路,这样有可能导致某些流量不能从最佳路由出去;比如用户同时租用了电信和网通的两条链路,ECMP打开的后果可
能会导致去往电信区域的数据从网通链路出去,而去往网通区域的数据从电信链路出去。
因此ECMP功能最适用于租用同一个运营商若干条链路的用户,或租用若干个互联互通情况较好的运营商链路的用户。
另外ECMP还有一个缺点是跟某些应用不兼容;比如某些多连接的应用,且该应用还要求每个连接都来自同一个IP地址,而打开ECMP的情况下,很可能同一个用户发起的两个连接中的一个从链路一出去,第二个连接从链路儿出去,导致这些应用运行不正常,最常见的例子是工商银行的网上银行业务,中国移动网上营业厅以及联众的网络游戏系统。
解决方案是打开ScreenOS的nat stick功能“set dip sticky”,即保证来自同一个源IP的不同会话始终被翻译成同一个IP地址,这样就可解决应用兼容性问题;
基于目标地址的路由
为了使流量能够选择最佳路由,最直接的手段就是通过基于目标地址路由的选路方式,比如将所有去往某运营商域内的流量手工的指到到通往该运营商的下一跳路由器上,再另外用一条默认路由将其余流量指向到另外一条链路;如果是电信和网通的两条链路我习惯将具体路由指向网通路由器,默认路由指向电信路由器,原因是因为网通的路由条目较少而电信的资源较多;
比较常见的基于目标地址路由来实现负载均衡的场合是大学的校园网,由于大学校园网一般都有若干条链路接入internet,比如一条连接电信,一条连接网通,一条连接教育科研网(Cernet),而这三个网络之间的互联互通做得并不好,比如从电信链路出去访问Cernet的资源,会发现延时很大,速度很慢。
这时使用基于目标地址的路由可以最大程度保证流量选择最佳路由出去。
基于源地址的路由(PBR)
实现流量复杂均衡还有一个手段就是采用源地址路由的方式。
一般的三层转发设备都是通过查询路由表(存放基于目标地址的路由) 来实现路由选路,而源地址路由(PBR)方式提供了另外一个手段,即防火墙会先查询某预先定义的特殊路由表(PBR 路由表)来进行路由查询,当PBR路由表中没有命中的路由条目时再去查询默认的路由表;也就是说,PBR路由表的优先级比默认路由表高;
而PBR路由表中存放的路由都不是按照目标地址来进行选路的,而是基于别的一些因素;比如源地址,源端口,目标地址,目标端口以及IP包头的COS字段这5者的任意组合。
因此用户可以利用该特性按照内网用户的源地址属性进行选录;
举个例子,加入用户租用了两条链路,一条带宽为2M,另一条带宽为10M,则可把内网的用户划分为12个网段,通过PBR将2个网段从2M链路送出去,另外10个网段从10M链路送出去以实现静态的负载均衡;
入方向的负载均衡
前面讲的三种方式其实都是出方向的负载均衡,即连接由内向外发起,适合大多数企业的环境;但可能有的用户,比如提供互联网服务的企业,需要同时实现入方向的负载均衡,即要求当互联网用户发起请求内网的服务器数据的连接时,选择就近的链路接入;
熟悉运营商路由策略的人都了解,每个运营商都只发布自己的域内路由;因此当用户连接的目标地址属于运营商A的地址范围的时候,该连接一定会进入运营商A的路由域并传输到达最终目的地址。
因此对于入方向的流量,其实并没有什么好的负载均衡手段,除非你有自己的独立于运营商的地址范围(自己的AS域)并通过BGP路由协议将自己的地址通告给所有的peer运管商,但这种条件很难达成。
幸好互联网的寻址系统还包括有一个DNS协议,如果DNS服务器能够将某服务器的域名解析成若干个分别对应不同运营商的地址,则连接就可以在连接这些运营商的链路上平均分摊以实现负载均衡;这个功能实现起来很简单,只需在DNS服务器上添加多条A记录即可(就是这么做的);但由于DNS服务器不会检查链路故障,因此当某条链路断掉后,DNS服务器依然会将域名随机的解析到该链路所属运营商的地址上,因此可能导致这部分流量服务不可用;
商业化的负载均衡设备(比如F5的Linkcontroller和Radware的LinkProof)都内置一个小DNS 服务器,该DNS服务器可监控链路状态的变化,当发现某条链路故障时,就不会将域名解析到该链路所属运营商的地址,以实现服务的高可用性。
当然,这类设备的价格要比防火墙贵很多很多。