问:DNS解决的是什么问题?
答:解决的是互联网主机路由器的识别问题,互联网上成千上万上亿的主机每一台都有自己的标识符(地址)就是IP地址IPV4(32位)和IPV6(128位),但ip地址不适合不方便直接使用,所以日常的我们使用的是域名(例:www.lienze.com)而IP地址则是在底层的网络层中应用,DNS就是实现了域名到IP地址的映射解析。
问:那么域名和IP地址之间是如何映射的?
答:DNS域名解析系统是多层命名服务器组成的分布式数据库,通过应用层协议实现域名向IP地址的解析。
问:那么DNS除了能将域名解析成对应的IP地址还能用来做什么?
答:主机别名,负载均衡,服务器别名,例如负载均衡,在域名映射到IP的时候可以映射到多个服务器IP地址,通过映射IP的轮询实现负载均衡的目的。
问:DNS为什么使用分布式存储?
答:分布式存储能够避免几个问题,
1.集中式服务的单点失败,避免因集中服务出现故障使整个互联网瘫痪。
2.分散集中请求带来的流量压力,避免因集中请求流量压力过大而导致的服务器问题和成本问题。
3.降低地区时延,分布式存储能够在不同地区就近访问,从而避免因区域距离DNS服务器过远而导致的网络时延。
4.易维护,分布式存储的可伸缩性强,易于地区维护且不会因问题而影响整个互联网。
问:DNS多层命名分布式存储是怎样工作的或者说执行的流程是什么?
答:
(上图,多层命名分布式存储DNS数据库)
在使用的时候当用户输入域名访问时,实际上先访问的是本地域名服务器,本地域名服务器不属于DNS层级体系当中,本地域名服务器在你访问时会先查询映射缓存,当本地域名服务器不存在缓存时,才会作为代理将查询转发给DNS域名解析服务器,而DNS域名解析服务器的查询流程可以是迭代查询和递归查询,其实在真正使用的时候流程还会涉及到本地hosts,浏览器缓存等等缓存。
(上图,迭代查询)
(上图,递归查询)