一、简介
DNS,全称Domain Name System,域名系统,是一个记录域名和Ip地址相互映射的一个系统,能够将用户访问互联网时使用的域名地址转换成对应的IP地址,而不用使用者去记住数量众多的IP地址。通过域名得到域名对应的IP地址的过程被称为域名解析。DNS运行于UDP协议之上,使用的端口为53。
二、DNS原理简述
DNS域名解析过程(图片来源网络)
1、DNS域名
DNS在网络中存在着数量众多的域名,如.com、.org等,而域名系统中是以层级树状结构划分域名的,类似于下图:
域名的划分(图片来源网络)
位于域名系统的顶端为根域名,而后为一级域名.net、.com、.org等,再往下则为二级域名,如.qq、.ibm等。而位于域名系统最底层的为主机名,如www,finance等。一个合法的域名格式,应遵循FQDN(Full Qualified Domain Name)格式,以域名系统的级别从低到高,从左往右编写,如:www.qq.net.、www.sina.org.。
2、DNS的查询方式
DNS的查询方式有两种,分别为递归查询(recursion)和迭代查询(iteration)。
递归查询:客户端发起一个DNS解析请求,若本地DNS服务器若不能为客户端直接解析域名,则域名服务器会代替客户端(下级服务器)向域名系统中的各分支的上下级服务器进行递归查询,直到有服务器响应回答了该请求后,将该请求结果返回客户端。在此期间,客户端将一直处于等待状态。
迭代查询:客户端(下级服务器)发起一个DNS解析请求后,若上级DNS服务器并不能直接提供该DNS的解析结果,则该上级DNS服务器会告知客户端(下级服务器)另一个可能查询到该DNS解析结果的DNS服务器IP,客户端(下级服务器)再次向这个DNS服务器发起解析请求,如此类推,直到查询到对应的结果为止。
通常递归查询这种方式用于PC机与本地DNS服务器之间的查询,而递归查询则多用于DNS服务器之间的查询,如下图:
迭代与递归查询
3、DNS服务器的类型
DNS服务器的类型可以分为:主名称服务器、辅助名称服务器和缓存名称服务器。主名称服务器至少负责解析一个域内的域名,维护所负责解析的域的数据库,可对该域数据库进行读写操作;辅助名称服务器则负责从主名称服务器或其他辅助名称服务器中复制相关解析库,为主名称服务器缓解解析压力;而缓存名称服务器则不负责域名解析,仅仅作为缓存,加快解析速度。
4、DNS的正向解析与反向解析
在DNS服务器中逻辑上存在着两个区域,一个是正向解析区域,另一个是反向解析区域。正向解析区域即我们通常所说的域名解析,而反向解析指的是IP反向解析,即通过查询IP地址的PTR记录来得到该IP地址所指向的域名记录。而P