什么是 DNS 负载平衡以及它如何工作?

DNS 负载均衡将传入流量分配到多个服务器,以实现强大的性能和高可用性。

DNS 负载均衡使用域名系统 (DNS) 在多个服务器之间分配站点流量,以提高网络吞吐量、优化性能、最大限度地减少停机时间并提高整体计算效率。 

什么是 DNS 负载平衡?

DNS 负载均衡将传入的网络流量分配到多个服务器或资源之间,通过在多个服务器实例之间分散负载来提高服务或应用的可用性、可扩展性和性能。 它提出了一种在多台服务器之间实现负载分配的简单有效的方法。 

DNS 通常被描述为互联网的电话簿,因为它将网站域名(例如 f5.com 或 amazon.com)转换为服务器用来识别连接到互联网的网站和设备的数字 IP 地址。 该过程称为 DNS 解析。 在 DNS 解析期间,用户的浏览器会联系 DNS 服务器以请求目标网站的正确数字 IP 地址。 

DNS 解析器通过查询域的 DNS 服务器来查找与请求的域名相关联的 IP 地址,以查找域的 A 记录或地址记录,该记录将域名映射到一个或多个 IP 地址。 DNS 解析器还可能会遇到 CNAME(规范名称)记录,它将一个域名作为别名映射到另一个域名,或者在父域和子域之间映射。

当今大多数域名都采用多个 DNS 服务器来防止服务器故障或处理高流量。 这些不同的服务器实例均具有不同的 IP 地址,可以处理针对该域的传入请求,因此 DNS 查询会返回一个包含多个 IP 地址的列表以响应 DNS 查询。 DNS 负载均衡器使用各种方法或规则来选择响应 DNS 查询而共享哪个 IP 地址,从而确保连接流量分布在多个可用服务器之间。

CNAME 记录在 DNS 负载均衡中也很有用,因为它允许单个域名解析为与另一个域相同的 IP 地址: 可以设置 CNAME 来指向负载均衡器的域名或使用负载均衡的主域名。 

如何使用 DNS 作为负载均衡器

DNS 负载均衡将传入的网络流量分散到多个服务器实例,从而分配负载并提高应用或服务的可用性和性能。 如果一台服务器不可用或过载,DNS 解析器将继续为其余服务器提供 IP 地址,从而确保冗余和故障转移功能。

DNS负载均衡和传统负载均衡有什么区别?

DNS 负载均衡和传统负载均衡的用途类似,但它们在网络堆栈的不同层运行,并且具有一些关键差异。

DNS 负载均衡在应用第 7 层的 DNS 级别运行,并使用 TCP/IP 模型的传输层上的用户数据报协议 (UDP) 来传输数据,但由于 UDP 速度快且数据包轻量,因此对于 DNS 来说,UDP 比 TCP 更受欢迎。 

与其他负载均衡解决方案相比,实现 DNS 负载均衡相对简单,对于预算有限的中小型企业尤其有利。  它不需要复杂的配置或专用的负载均衡器硬件或软件——这使得 IT 资源有限的组织也可以使用它。 还可以配置 DNS 负载均衡,以将用户引导至不同地理区域的服务器。 这对于具有全球影响力的组织尤其有用,因为它可以将流量引导到最近的应用实例和/或路由流量以符合 GDPR 要求。

另一方面,传统的负载均衡在传输层4或应用层7运行。 第 4 层负载均衡器根据网络和传输层协议(IP、TCP、UDP)中的数据进行操作。 第 7 层负载均衡器根据应用层协议(例如 HTTP)中的数据分配请求。 这些负载均衡器通常是专用设备,使用硬件或软件在服务器组或服务器实例之间分配客户端请求。

这些负载均衡器提供更高级的功能和对流量分配更精细的控制。 客户端请求的分布通常由专用的负载均衡器设备或服务控制,其可以根据性能和其他因素做出动态决策。 这些负载均衡设备或服务还可以执行更高级的算法,包括健康检查以监控服务器状态并自动将流量从不健康的服务器删除或重定向到健康的服务器。 这提供了更高的可用性和容错能力。

DNS 循环和高级负载平衡之间有什么区别?

DNS 循环是一种基本的负载均衡形式,它依靠 DNS 通过循环与不同服务器关联的 IP 地址列表来分配客户端请求。 每个客户端请求都会自动发送到列表中的下一个 IP 地址。 DNS Round Robin 设置和管理相对简单,因为它只需要配置与不同 IP 地址相关联的多个 A 记录。 通过更新这些 A 记录来进行更改。 

不幸的是,这种简单的 DNS 负载均衡实现存在固有问题,限制了其可靠性和效率。 最重要的是,DNS 不会检查服务器或网络中断或错误,因此即使服务器关闭或无法访问,也始终为域返回同一组 IP 地址。 如果服务器不可用,DNS 循环负载均衡可能仍会将流量路由到该服务器,直到手动更新 DNS 记录。

另一个问题的出现是因为解析的地址通常由中间 DNS 服务器(称为解析器)和客户端缓存,以提高性能并减少网络上的 DNS 流量。 每个已解析的地址都被分配了一个有效期(称为生存时间,即TTL ),但较长的生存期意味着客户端可能无法及时了解服务器组的变化,而较短的生存期虽然可以提高准确性,但会导致处理和 DNS 流量增加,而缓存本来是要缓解这些流量的。

另一方面,高级负载均衡技术功能更加丰富,通常包括复杂的算法、健康检查和流量管理功能,以有效分配流量并确保高可用性、可扩展性和优化性能。 这些分发机制包括加权循环、最少连接或基于响应时间的路由,以实现更高效和动态的流量分配和管理,使其适用于复杂且高需求的环境。 

为什么需要 DNS 平衡?

负载平衡在管理和优化现代网络环境中的流量方面发挥着至关重要的作用,因为它有助于提供无缝且响应迅速的用户体验,同时保持系统可用性和响应能力,即使在高负载或面临服务器故障时也是如此。 

DNS 负载平衡如何满足需求

DNS 负载均衡能够在多个服务器或数据中心之间分配网络流量,这对于内容交付和处理高流量尤其重要,例如在电子商务网站、社交媒体平台和在线流媒体服务中。 它有助于确保没有任何一台服务器因流量过大或出现瓶颈,而其他服务器仍未得到充分利用。 这可以促进资源的最佳利用并有助于防止服务器过载。

DNS 负载均衡也有助于实现高可用性。 通过将传入流量分散到多个服务器或服务器实例,可以降低单点故障的风险。 如果一台服务器由于硬件故障、维护或其他问题而不可用,负载均衡器可以将流量重定向到健康的服务器,从而最大限度地减少服务停机时间。 

随着对服务或应用的需求不断增长,负载均衡允许通过向池中水平添加更多服务器来轻松扩展资源。 这种可扩展性对于处理增加的流量和确保系统可以容纳不断增长的用户群而不会降低性能至关重要。 负载均衡器可以考虑服务器负载、容错能力和与客户端的接近度等因素,以确保用户体验低延迟和快速响应时间。

DNS 负载平衡策略

负载均衡策略的选择取决于应用或组织的具体要求和限制,并且可能取决于数据库架构、应用的性质、服务器容量和工作负载特征等因素。

加权循环

加权循环是一种负载均衡策略,它为池中的各个服务器节点分配不同的权重或优先级,从而影响传入客户端请求的分布。 在处理具有不同硬件规格或性能能力的服务器时,此策略特别有用。 通过分配权重,更强大的服务器可以处理更大一部分的流量。

地理负载平衡

该方法考虑了客户端与各个服务器位置的地理接近度,并使用权重来影响客户端请求的分布。 负载均衡器了解客户端请求的地理位置以及可用的服务器位置或数据中心。 然后使用该信息来确定为该请求提供服务的最近或最优的服务器位置。 地理负载均衡对于拥有全球用户群和多个数据中心或服务器位置的组织特别有用。 它可以确保不同地区的用户体验一致。

动态负载平衡

动态负载均衡涉及根据服务器或网络的当前状态对网络流量的分布进行实时调整。 动态负载均衡器监控池中服务器的健康和性能,检查服务器可用性、响应时间、CPU 利用率、内存使用率和其他指标。 根据收集到的信息,负载均衡器会动态地将传入的请求路由到最适合处理该请求的服务器。 动态负载均衡用于流量模式不可预测、流量负载频繁波动或需要提供高水平性能优化的场景。 它通常用于数据中心、云计算环境、内容交付网络 (CDN) 和工作负载快速变化的应用。

实现 DNS 负载平衡

由于 DNS 负载均衡器是管理网站或应用流量的关键工具,因此正确配置和管理它们非常重要。 以下最佳实践可以帮助确保您的负载均衡器配置正确并且能够满足您的用户和应用的流量需求。

了解您的application需求

首先考虑您的应用或服务的具体需求,包括预期的流量模式、用户的地理分布、对延迟的敏感度以及高可用性的需求等因素。 负载均衡器根据特定流量模式配置时最有效,因此请花时间研究进入您的网站或应用的流量并相应地优化您的配置。

让您的基础设施适应未来发展

可扩展性是确保您的基础设施面向未来的一个重要考虑因素。 随着您的组织和用户群的增长,您的 DNS 负载均衡需求可能会发生变化。 确保您的负载均衡器解决方案可以根据流量需求扩大或缩小规模;这种弹性在可以根据需求动态配置资源的云环境中非常有价值。

监控您的服务器

实施健康检查并持续监控服务器的状态对于从负载均衡器获得最佳性能至关重要。 定期监控所有服务器的资源(内存利用率、CPU 使用率等),以便您可以快速识别任何潜在问题并解决它们。  删除或重定向来自不健康服务器的流量以保持高可用性。

定期审查和优化

定期检查您的 DNS 负载均衡配置,并根据不断变化的流量模式、服务器性能和应用要求进行优化。

选择正确的 DNS 负载均衡器

选择满足您要求的 DNS 负载均衡解决方案。 考虑地理负载均衡、加权路由、健康检查、Web应用和 API 的安全保护以及易于管理等功能。 虽然定制和 DIY 负载均衡器解决方案可以提供更好的控制和定制,特别是对于具有非常特定要求的组织,但它们也承担着不容小觑的持续维护、安全性和可扩展性的责任。 第三方 DNS 负载均衡服务通常在多个地理位置运营分布式服务器网络。 这种全球影响力使他们能够有效地将用户引导到最近的服务器,从而减少延迟并改善用户体验。 第三方服务通常还提供各种负载分配算法,允许您根据特定需求和服务器功能微调流量的分配方式。 基于服务的负载均衡解决方案也旨在处理各种流量负载,并可根据需要扩大或缩小规模。

F5 如何提供帮助

DNS 负载均衡是一种有效的流量分配解决方案,适用于 IT 资源有限的中小型企业或组织,因为它不需要复杂的配置或专用的负载均衡器硬件或软件。

F5 提供一系列负载均衡器产品和解决方案。 这些包括基于云的 DNS 负载均衡器服务,可简化实施和管理复杂性,并可通过 API 完全配置,具有内置的 DDoS 和 WAF 保护和灾难恢复功能。 该服务提供基于全球位置的路由,以有效地引导跨环境的应用流量,从而实现高性能和最佳用户体验。 系统监控系统健康检查以检测失败或降级的资源实例并重新路由客户端以维持应用和服务的可用性。 F5 分布式云 DNS 负载均衡器提供全局自动扩展功能,以满足应用增加、流量模式变化和请求量猛增的需求,但采用基于实用性的定价: 您只需为您需要和使用的服务付费。 

此外, F5 NGINX PlusF5 NGINX是 Dropbox、Netflix 和 Zynga 等高流量网站使用的同类最佳负载平衡解决方案。 全球有超过3.5 亿个网站依靠 NGINX Plus 和 NGINX Open Source 快速、可靠、安全地传递其内容。

NGINX Plus 提供了一系列复杂的负载均衡算法,这些算法比基本的 DNS 负载均衡更有效、更准确,并且它会检查服务器状态以避免将请求转发到无法访问的服务器。 它还支持一种 DNS 负载均衡形式,可以解决前面描述的问题;请参阅 NGINX Plus 管理指南中的使用 DNS 配置 HTTP 负载均衡。 由于基于软件,NGINX Plus 可以在商品硬件上运行,并且比大多数基于硬件的竞争解决方案便宜得多。