什么是DNS
域名系统DNS(Domain Name System)
是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。主要功能就是域名转换为IP
地址。
因特网的域名空间:
域名服务器
如果采用上述的树状结构,每一个节点都采用一个域名服务器,这样会使得域名服务器的数量太多,使域名服务器系统的运行效率降低。所以在DNS
中,采用划分区的方法来解决。
一个服务器所负责管辖(或有权限)的范围叫做区zone
。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机到域名IP地址的映射。总之,DNS
服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS
服务器实际管辖的范围。区<=
域。
一般是有着:本地域名服务器 ->
权限域名服务器 ->
顶级域名服务器 ->
根域名服务器(从小到大)
域名解析过程
先看两个概念:
- 递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以 DNS 客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
- 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
具体的流程可描述如下:
- 主机
10.74.36.90
先向本地域名服务器10.74.1.11
进行递归查询 - 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
- 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器
dns.me
的IP
地址 - 本地域名服务器向顶级域名服务器
dns.me
进行查询 - 顶级域名服务器
me
告诉本地域名服务器,下一步查询权限服务器dns.jocent.me
的IP
地址 - 本地域名服务器向权限服务器 ```dns.jocent.me`进行查询
- 权限服务器
dns.jocent.me
告诉本地域名服务器所查询的主机的IP
地址 - 本地域名服务器最后把查询结果告诉
10.74.36.90
。
一般 DNS 缓存放浏览器还是放系统
计算机中 DNS 记录在本地也有两种缓存方式:浏览器缓存和操作系统(OS)缓存。在浏览器中访问的时候,会优先访问浏览器缓存,如果未命中则访问 OS 缓存,最后再访问递归 DNS 服务器,然后递归 DNS 服务器会递归式的查找域名记录,然后返回结果。