漫谈DNS :为什么要知道了解DNS呢?

时间 : 2018-08-31 编辑 : DNS智能解析专家
分享 : 

DNS作为最基础的服务存在于系统之中,而再看DNS的发展历史,从一个小小的hosts文件,再到一个集中式下载的hosts文件,再到一个分布式存储,也可以看出来是在慢慢的发展,追求高可用,追求高性能。


DNS最主要的作用就是将IP地址和域名进行解耦,也就是你只需要使用域名即可,无须关注ip地址,我后端换了ip地址,对于客户端来说,是无感知的。


于客户端来说,一般的配置文件就是在/etc/resolve.conf中,你可能是自己手动配置的,也可能是DHCP获取到的,也就是一个nameserver了,在这里就可以进行域名的解析,无论是递归的方式还是迭代的方式,而对于一个高可用的NS来说,一般都是配置两个,而这两个并不是主从的关系,或许两个都是主,都是可用的解析的NS。


DNS最终会发展到什么样的形态,其实也就是提供一个api接口,从而可以添加删除修改域,添加删除修改各种A记录等,能够动态的刷新即可了。


DNS主从,采用AXFR/IXFR进行增量或者全量的数据区域文件传输。


DNS可以做简单的负载均衡,主要是为了提供后端的服务,不过权威服务器不能清除客户端的缓存值,那么是否可以认为,这段时间内必然是业务有损的?


DNS---httpdns---CDN,这是基本发展路线。


其目的主要是为了解决用户访问的寻找路径的问题,也就是所有的资源都离用户最近的地方,而对于目前所在的形势来说,这种还是比较困难的。


每个运营商,每个数据中心,所创建的DNS服务器都有自己的缓存,而每次请求了权威服务器之后,都会将结果进行缓存,而请求的时候,每次出去的ip都是NS的ip,从而并不是用户的真正的ip,从而,如何精确的定位用户所在的位置,也是一个非常大的问题。


对于DNS来说,不知道用户在哪里,因为你的NS地址是自己写的,而对于httpdns来说,就必须要使用dns的客户端了,然后发送一个http请求过去,而对于http请求,则有用户具体的ip地址,从而可以大致判断用户所在的位置,从而选择一个就近的ip地址返回给用户。


而对于CDN来说就更加厉害了,将所有请求的资源放在用户身边,也就是一些静态资源,视频等内容,直接放在缓存里,当用户请求的时候,会直接进行GSLB的调度,返回用户请求的资源,从而提高更快的响应速度。


来源:https://blog.csdn.net/TM6zNf87MDG7Bo/article/details/81977279