如图,Answers字段中包含四个记录。两个CNAME记录和两个AAAA记录。
那为什么响应中会提供了多个"Answers"?
为了负载平衡。
DNS提供域名解析服务,当访问某个站点时,首先需要提供DNS服务器来获取域名对应的IP地址,在这一过程中,DNS服务器完成了域名到IP地址的映射,同样这种映射也可以是一对多的。
即DNS服务器可以根据记录和负载均衡算法计算返回很多个IP地址,让客户端自己选一个连接。客户端根据返回的ip地址,就可以访问到真实的物理服务器。
DNS域名解析负载平衡有什么优点?[^1]
- 将负载均衡的工作交给DNS,省去了网站管理维护负载均衡服务器的麻烦。
- 技术实现比较灵活、方便,简单易行,成本低,使用于大多数TCP/IP应用。
- 对于部署在服务器上的应用来说不需要进行任何的代码修改即可实现不同机器上的应用访问。
- 服务器可以位于互联网的任意位置。
- 同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成距离用户地理最近的一个服务器地址,这样就可以加速用户访问,改善性能。
同时,DNS域名解析也存在如下缺点:
- 目前的DNS是多级解析的,每一级DNS都可能缓存A记录,当某台服务器下线之后,即使修改了A记录,要使其生效也需要较长的时间,这段时间,DNS任然会将