-
1 dns 树状结构
dns -
2 dns获取解析流程图:
dns过程 -
3 有负载的dns解析
加负载dns解析 4 流程描述:
- 当一个客户端要访问 object.yourcompany.com 的时候,需要将域名转换为 IP 地址进行访问,所以它要请求本地 DNS 解析器。
- 本地 DNS 解析器先查看看本地的缓存是否有这个记录。如果有则直接使用,因为上面的过程太复杂了,如果每次都要递归解析,就太麻烦了。
- 如果本地无缓存,则需要请求本地的 DNS 服务器。
- 本地的 DNS 服务器一般部署在你的数据中心或者你所在的运营商的网络中,本地 DNS 服务器也需要看本地是否有缓存,如果有则返回,因为它也不想把上面的递归过程再走一遍。
- 至 7. 如果本地没有,本地 DNS 才需要递归地从根 DNS 服务器,查到.com 的顶级域名服务器,最终查到 yourcompany.com 的权威 DNS 服务器,给本地 DNS 服务器,权威 DNS 服务器按说会返回真实要访问的 IP 地址.如果需要负载,权威dns服务器就可以解析成一个或者多个ip.完成负载了
6 对于复杂的应用,需要更加复杂的全局负载均衡机制,这就是全局负载局衡器(GSLB). 在yourcompany.com的DNS服务器中,一般是通过配置CNAME方式,然后告诉本地DNS服务器,让它请求GSLB解析这个域名,GSLB在解析的过程中,通过自己的策略实现负载均衡.
7 两层GSLB是因为分运营商和地域. 不同的运营商的客户,可以反问相同运营商机房中的资源,这样不跨运营商访问,有利于提高吞吐量,减少时延.
- 1 第一层GSLB,通过查看他本地dns的运营商,就知道用户所在的运营商,告诉本地dns访问第二层GSLB.
- 2 第二层,通过查看本地请求的dns所在的地址,就知道用户所在的大致地理位置,然后将距离用户位置比较近的Region里面,六个内部负载均衡的地址,返回给本地dns服务器.
- 3 本地 DNS 服务器将结果返回给本地 DNS 解析器。
- 本地 DNS 解析器将结果缓存后,返回给客户端。
- 客户端开始访问属于相同运营商的距离较近的 Region 1 中的对象存储,当然客户端得到了六个 IP地址,它可以通过负载均衡的方式,随机或者轮询选择一个可用区进行访问。对象存储一般会有三个备份,从而可以实现对存储读写的负载均衡