DNS 服务器
DNS 服务器,一定要设置成高可用、高并发和分布式的。
- 根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址。
- 顶级域 DNS 服务器:返回区权威 DNS 服务器的 IP 地址。
- 权威 DNS 服务器:返回相应主机的 IP 地址。
DNS 解析流程
为提高 DNS 解析性能,很多网络都会就近部署 DNS 缓存服务器。
- 客户端向本地 DNS 发送 DNS 请求,解析 www.163.com 的 IP 地址。本地 DNS 由网路服务商(ISP)自动分配。
- 本地 DNS 在缓存中找到与域名对应的 IP,返回;否则,请求根 DNS。根 DNS 是最高层次的,全球共13套,不直接解析域名,但能指出下一步访问谁。
- 根 DNS 发现是后缀 .com,返回 .com 的顶级 DNS 的地址。
- 本地 DNS 转向问顶级 DNS。
- 顶级 DNS 返回 www.163.com 区域的权威 DNS 的地址。
- 本地 DNS 转向问权威 DNS,权威 DNS 解析了 IP 后返回。
- 本地 DNS 将 IP 地址返回给客户端。
负载均衡
1、内部负载均衡
配置域名解析策略,这次返回第一个 IP,下次返回第二个 IP,就可以实现负载均衡了。
2、全局负载均衡
用户访问某个域名时,用 IP 地址轮询访问多个数据中心。如何一个数据中心挂了,在 DNS 服务器中将其对应的 IP 删掉,实现高可用。
每个用户访问离自己最近的数据中心。
全局负载均衡器(GSLB, Global Server Load Balance)。在 yourcompany.com 的 DNS 服务器中,一般通过配置 CNAME 的方式,给 object.yourcompay.com 起一个别名,如 object.vip.yourcompany.com,然后告诉本地 DNS 服务器,去请求 GSLB 解析这个域名,GSLB 就可以在这个解析域名的过程中,通过自己的策略实现负载均衡。
图中有两层 GSLB,因为分运营商和地域。这样,不同运营商的客户可不跨运营商访问,提高吞吐量,减少时延。
- 第一层 GSLB,通过查看请求它的本地 DNS 服务器所在运营商,知道用户所在运营商。假设时移动,通过 CNAME 的方式,通过另一个别名 object.yd.yourcompay.com, 告诉 本地 GSLB 服务器去请求第二层的 GSLB。
- 第二层 GSLB,通过查看请求它的本地 DNS 服务器所在地址,知道用户的地理位置,将离用户近的 Region 里的6个内部负载均衡(SLB,Server Load Balancer) 的地址返回给本地 DNS 服务器。
- 本地 DNS 服务器将结果返回给本地 DNS 解析器。
- 本地 DNS 解析器缓存结果后,返回给客户端。
- 客户会得到属于相同运营商且距离较近的 Region 1 里的6个IP地址,随机/轮询访问即可。