使用 LVS(Linux 虚拟服务器)进行 DNS HA

shi*_*a03 5 domain-name-system iptables high-availability load-balancing lvs

我一直在尝试使用 CentOS 6.x 创建 LVS DNS HA:

  • Piranha GUI 配置 DNS
  • Pulse 是 CentOS LB 的 HA 核心
  • IPTables 在数据包上配置标记,因为 DNS 使用 TCP 和 UDP 53

几天后,我发现我无法弄清楚如何使其工作 - 我希望有人可以使用 lvs.cf 文件以及所有必需的 iptables 规则。或者,如果有人已经使用了其他一些允许进行 DNS LB 的开源和免费软件(不是循环 DNS A 记录 - 这不是本练习的目的)。

如果有人成功地在 LVS 下使用池中的两个或多个真实服务器创建了命名 DNS,则工作,如果可以发布配置,我将不胜感激:

  • lvs.cf
  • 要放置的 iptables 规则

我主要是在寻找直接服务器返回或 NAT - 任何一种解决方案都适合我。

先感谢您。

吉姆。

小智 1

您应该能够在 DR 模式下使用 LVS 轻松配置 DNS 负载平衡。就我个人而言,我会使用Ldirectord而不是Piranaha(它又旧又多问题),但两者都应该有效。

就像您所说的,您需要为正确的 TCP 和 UDP 端口配置防火墙标记,然后对标记到后端服务器的所有数据包进行负载平衡。我假设您不需要 DNS 持久性(无论如何不适用于 UDP)。

我认为您可能缺少的步骤是允许后端服务器响应您发送的流量 - 通常称为 ARP 问题。如果您有 Windows 服务器,请使用此方法。或者对于 Linux,最简单的方法是使用 iptables 重定向:

iptables -t nat -A PREROUTING -p tcp -d <VIP> -j REDIRECT
Run Code Online (Sandbox Code Playgroud)

http://loadbalancer.org快速入门指南第 21 页对此进行了更详细的解释。

如果您需要任何帮助,请发布您的配置,我会看一下。