概览
DNS,全称 Domain Name System,域名系统,是一个记录域名和 IP 地址相互映射的一个系统,能够将用户访问互联网时使用的域名地址转换成对应的 IP 地址,而不用使用者去记住数量众多的 IP 地址。
通过域名得到域名对应的 IP 地址的过程被称为域名解析,DNS 运行于 UDP 协议之上,使用的端口为 53。
查询方式
DNS 的查询方式有两种,分别为递归查询(recursion)和迭代查询(iteration)。
递归查询:客户端发起一个 DNS 解析请求,若本地 DNS 服务器若不能为客户端直接解析域名,则域名服务器会代替客户端(下级服务器)向域名系统中的各分支的上下级服务器进行递归查询,直到有服务器响应回答了该请求后,将该请求结果返回客户端。在此期间,客户端将一直处于等待状态。
迭代查询:客户端(下级服务器)发起一个 DNS 解析请求后,若上级 DNS 服务器并不能直接提供该 DNS 的解析结果,则该上级 DNS 服务器会告知客户端(下级服务器)另一个可能查询到该 DNS 解析结果的 DNS 服务器 IP,客户端(下级服务器)再次向这个 DNS 服务器发起解析请求,如此类推,直到查询到对应的结果为止。
通常递归查询这种方式用于 PC 机与本地 DNS 服务器之间的查询,而递归查询则多用于 DNS 服务器之间的查询:
解析图示
-
浏览器缓存
当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(若曾经访问过该域名且没有清空缓存便存在); -
系统缓存
当浏览器缓存中无域名对应 IP 则会自动检查用户计算机系统 Hosts 文件 DNS 缓存是否有该域名对应 IP; -
路由器缓存
当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客服端的 DNS 缓存; -
ISP(互联网服务提供商)DNS 缓存
当在用户客服端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找; -
根域名服务器
当以上均未完成,则进入根服务器进行查询。全球仅有 13 台根域名服务器,1 个主根域名服务器,其余 12 为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器 IP 告诉本地 DNS 服务器; -
顶级域名服务器
顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的 IP 地址告诉本地 DNS 服务器; -
主域名服务器
主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确纪录; -
保存结果至缓存
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个 IP 地址与 web 服务器建立链接。
树状结构
DNS 在网络中存在着数量众多的域名,如.com、.org 等,而域名系统中是以层级树状结构划分域名的,类似于下图:
位于域名系统的顶端为根域名,表现形式为:.(即一个点符号);再往下一级即为顶级域名,如:.net、.com、.org 等(而国家或地区域名.cn、.tw、.hk、.us、.jp 也是顶级域名。);再往下则为二级域名,如.qq.xxx、.baidu.xxx 等;而位于域名系统最底层的为三级域名或主机名,如 www.,im. 等,一般域名的树状结构到此为止,但系统依然可以再往下更多级增加,如腾讯的企业微信服务商开放平台域名即是 open.work.weixin.qq.com,达到五级之多。
域名合法性
一个合法的域名格式,应遵循 FQDN(Full Qualified Domain Name,完全合格域名)格式,以域名系统的级别从低到高,从左往右编写,如:www.qq.net.、www.sina.org.,最顶层亦最右边的 root(根)即是一个点(.),正常使用可以省略,所以如上的 www.qq.com. 可以以 www.qq.com 来表示,所以我们常见的格式都是后者,都是将根域省略的。
正/反向解析
在 DNS 服务器中逻辑上存在着两个区域,一个是正向解析区域,另一个是反向解析区域。正向解析区域即我们通常所说的域名解析,而反向解析指的是 IP 反向解析,即通过查询 IP 地址的 PTR 记录来得到该 IP 地址所指向的域名记录。而 PTR 记录为邮件交换记录的一种,另一种为 A 记录。A 记录解析域名到 IP 地址,而 PTR 记录则负责解析 IP 地址到域名。
0 条评论