DNS轮询通过为同一域名配置多条相同A记录实现基础负载分发,核心是确保主机名、类型、线路完全一致;需合理设置TTL(300–600秒),用dig直连权威DNS验证轮询效果,并明确其无健康检查与会话保持能力。

用 DNS 轮询实现基础负载分发,本质是在域名解析层做“多选一”的简单分流——同一域名配多个 A 记录,DNS 服务器按顺序轮流返回,让不同用户访问到不同服务器。它不依赖额外设备、不用改业务代码,适合中小规模、状态无强依赖、故障容忍度尚可的场景。
配置多条一致的 A 记录
这是最核心的操作。必须确保所有记录的主机名(如 www 或 @)、记录类型(A)、线路(默认/全网)完全相同,否则 DNS 不会触发轮询逻辑,而是当作独立记录处理。
- 例如:www.example.com 同时添加三条 A 记录 —— 192.168.0.4、192.168.0.5、192.168.0.6
- 不要混用 CNAME 和 A;CNAME 权重需增值服务支持,普通 DNS 管理后台通常只对 A/AAAA 生效
- 记录总数别超平台限制(如 DNSPod 最多返回 20 条),否则超出部分会被截断,实际参与轮询的 IP 少于预期
合理设置 TTL 值
TTL 决定解析结果在各级缓存中保留多久,直接影响故障切换速度和解析压力。
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 建议设为 300–600 秒(5–10 分钟):太长(如 86400)会导致服务器宕机后流量仍持续打过去;太短(如 60)则引发大量重复查询,加重权威 DNS 和 LDNS 负担
- 上线前或变更后,要等至少一个 TTL 周期再验证效果,避免误判配置未生效
验证轮询是否真实生效
本地 ping 或浏览器访问看到的 IP,大概率是本地运营商 DNS(LDNS)缓存的结果,不能代表权威 DNS 当前返回内容。
- 用 dig @8.8.8.8 www.example.com A +short 直连 Google 公共 DNS,绕过本地缓存
- 连续执行多次,观察返回 IP 是否循环出现(如 IP1→IP2→IP3→IP1)
- 若返回 IP 数量不稳定或总缺某几个,优先检查记录总数是否超限、或是否存在线路/地域过滤干扰
清楚它的能力边界
DNS 轮询不探测服务器是否存活,也不感知请求响应质量。它只是“机械发号”,不是智能调度。
- 某台服务器宕机后,只要 DNS 缓存没过期,用户仍会拿到该 IP 并连接失败
- 无法保证会话粘性——登录请求和后续操作可能落到不同机器,后端没共享 Session 就会掉登录
- 不适用于金融交易、实时音视频等对可用性与一致性要求极高的业务
- 真要上生产,建议搭配健康检查探针(如每 10 秒 HTTP 探测),自动剔除异常节点,或升级为智能 DNS(按地理位置/运营商调度)

















