今天在想一个问题,如果一个域名同一个记录值添加多个 IP 地址时,是怎么解析的,是不是就是负载均衡了。想了想感觉应该是的,然后也搜了一下,确实是这样。在此记录一下这个问题。
目前有些 DNS 服务商是可以直接一个记录添加多个 IP 地址的,但是大多数都是不行的,如果我们想要做到这样的效果,也很简单,只需要添加多条记录,每条记录的值一样,然后对应的 IP 地址不一样就行了。
同一记录值解析到多个 IP 地址
当为域名添加 A 类型或者 AAAA 类型解析记录时,参数“值”支持填写多个 IP 地址,将域名解析到多个 IP 地址。
当解析记录的“值”包含多个 IP 地址时,域名解析会返回所有的 IP 地址,但返回 IP 地址的顺序是随机的,浏览器默认取第一个返回的 IP 地址作为解析结果。
其解析流程如下:
- 网站访问者通过浏览器向 Local DNS 发送解析请求。
- Local DNS 将解析请求逐级转发至权威 DNS。
- 权威 DNS 在收到解析请求后,将所有 IP 地址以随机顺序全部返回 Local DNS。
- Local DNS 将所有 IP 地址返回浏览器。
- 网站访问者的浏览器随机访问其中一个 IP 地址,通常选取返回的第一个 IP 地址。
- 根据大量测试数据显示,解析到各 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 |