域名解析时为同一个记录值添加多个 IP 地址时,域名是如何解析的?

已关闭留言

今天在想一个问题,如果一个域名同一个记录值添加多个 IP 地址时,是怎么解析的,是不是就是负载均衡了。想了想感觉应该是的,然后也搜了一下,确实是这样。在此记录一下这个问题。

目前有些 DNS 服务商是可以直接一个记录添加多个 IP 地址的,但是大多数都是不行的,如果我们想要做到这样的效果,也很简单,只需要添加多条记录,每条记录的值一样,然后对应的 IP 地址不一样就行了。

同一记录值解析到多个 IP 地址

当为域名添加 A 类型或者 AAAA 类型解析记录时,参数“值”支持填写多个 IP 地址,将域名解析到多个 IP 地址。

当解析记录的“值”包含多个 IP 地址时,域名解析会返回所有的 IP 地址,但返回 IP 地址的顺序是随机的,浏览器默认取第一个返回的 IP 地址作为解析结果。

其解析流程如下:

  1. 网站访问者通过浏览器向 Local DNS 发送解析请求。
  2. Local DNS 将解析请求逐级转发至权威 DNS。
  3. 权威 DNS 在收到解析请求后,将所有 IP 地址以随机顺序全部返回 Local DNS。
  4. Local DNS 将所有 IP 地址返回浏览器。
  5. 网站访问者的浏览器随机访问其中一个 IP 地址,通常选取返回的第一个 IP 地址。
  6. 根据大量测试数据显示,解析到各 IP 地址的比例接近相等。

例如,某网站的域名为“example.com”,部署了 3 台服务器,对应的 IP 地址分别为:192.168.1.1、192.168.1.2、192.168.1.3。

为域名“example.com”配置一条 A 类型记录集,将记录集值设置为 3 个 IP 地址。

不同用户访问网站时,返回的解析结果如表所示:

用户 返回结果 解析结果
A 192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.1
B 192.168.1.2
192.168.1.1
192.168.1.3
192.168.1.2
C 192.168.1.3
192.168.1.1
192.168.1.2
192.168.1.3

参考:https://support.huaweicloud.com/dns_faq/dns_faq_023.html