DNS服务器树状结构图
由上往下分别是:
根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址
顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址
权威 DNS 服务器 :返回相应主机的 IP 地址
DNS服务器十分重要,因为它掌握了整个互联网的地址簿,如果上网的人都去同一个地方访问某一台服务器,那么时延会非常大,因而DNS服务器一定要设置成高可用、高并发、分布式的。
1.为了提高DNS的解析性能,很多网络都会就近部署DNS缓存服务器,就有了接下来的DNS解析流程:
- 客户端发出DNS请求,例如www.163.com给本地DNS服务器,本地DNS收到请求,查看缓存,如果找到www.163.com,就直接返回IP地址;
- 如果没有在缓存中找到,本地DNS就会去问根域名服务器,根域名服务器是最高层次的,全球共有13套,它不直接用于域名解析,但是能指明一条道路;
- 根域名服务器收到请求,发现后缀是.com,返回它的顶级域名服务器地址给本地DNS;
- 本地DNS转向问顶级域名服务器,顶级域名服务器就是树状图中的第二层,大名鼎鼎的一级域名,它负责管理二级域名;
- 顶级域名服务器收到请求,返回负责www.163.com的权威域名服务器地址;
- 本地DNS转向问权威域名服务器,它是域名解析结果的原出处;
- 权威DNS服务器查询后将对应IP地址告诉本地DNS;
- 本地DNS再将其返回客户端。
2.负载均衡?
在上面的过程中,DNS不仅可以做到映射IP地址,还能做负载均衡
,首先可以做内部负载均衡,然后还能做全局负载均衡。
当一个应用要访问一个数据库,再这个应用中应该配置这个数据库的IP地址还是域名呢?
答案当然是域名,因为配置IP地址时一旦IP地址改变,那么所有用到这个数据库的地方都要改地址,但是配置域名时,只需要修改映射的IP地址就可以。
内部负载均衡:
也是一样的道理,当被访问的应用要被很大的数据量访问时,我们可以将其配置成一个域名,部署多个IP,在域名解析的时候,只要配置策略,这次返回第一个IP,下次返回第二个IP。
全局负载均衡:
实现“高可用”——当用户访问某个域名时,这个地址可以轮询访问多个服务器地址,如果某个服务器挂了,只要在DNS服务器里面把这个服务器对应的IP删掉即可。
此外解析域名时实现就近访问策略,以提高访问速度。