什么是DNS
DNS是域名系统,是因特网的一项核心服务,用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析。
DNS的解析种类
- 正向解析:就是将域名转换成对应的IP地址的过程,它应用于在浏览器地址栏中输入网站域名时的场景。
- 反向解析:就是根据IP地址查询对应的注册域名,经常被一些后台程序使用,用户看不到。
DNS解析过程
递归查询:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他跟域名服务器继续发送查询请求报文,也就是代替主机继续查询。
迭代查询:
- 根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所查询的IP地址,要么告诉本地服务器接下来要向哪一个域名服务器进行查询。然后让本地服务器进行后续的查询。
- 根域名服务器通常将自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器收到本地域名服务器的查询请求后,要么给出IP地址,要么告诉本地服务器接下来要向哪一个权限域名服务器进行查询。
- 直到获取到了所要解析的IP地址,返回给主机。
DNS缓存
为了提高DNS的查询效率,在域名服务器中广泛使用了高速缓存,每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。这个策略减轻了根域名服务器的负荷,使因特网上的DNS查询请求和回答报文的数量大为减少。
为了保证高速缓存中的内容的正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,减少此时间值可提高域名转换的准确性。
总结
- 主机向本地域名服务器的查询方式是递归查询。
- 本地DNS服务器向根域名服务器的查询方式是迭代查询。