1、简介
数据库
网络中的主机通讯是经过IP地址来实现的,一般IPv4的地址是四个数字加点组成,若是和每台主机通讯咱们都要去记忆IP地址的话,这一般对于人类来说是至关痛苦的。因而网络上就有了一套为了解决这个问题的方案出现了,也就是DNS主机名称解析系统。它是一套可以将数以千万计的IP地址经过查询DNS数据库,轻松的转化成与之对应的一串单词字符串,也就是主机名,网络上称之为域名,相对于IP地址,用单词组成的域名明显好记多了。缓存
2、DNS域名解析系统的层级关系服务器
DNS域名解析系统是有层级关系的,整个层级关系的表现形式就像一棵大树,每一层,咱们称之为域。最顶层的域咱们一般叫做根域,用点号表示,第二层一般用com、net、edu、gov、mil、org....,这层咱们叫做顶级域,往下第三层,也就是咱们常常见到的域名了,如,51cto.com,这一层咱们称之为二级域,当二级域加上www后,就是第四层了,就这样一直往下细分。域名的写法一般是由小到大,从左往右书写,用点链接,最后加点表示根,整个结构以下图所示:网络
3、DNS的资源记录
ide
咱们要查询这些庞大数据固然要有专门的主机负责这些工做了,提供查询、存储DNS数据服务的主机咱们称之为DNS服务器。网络上为了方便域名的注册、管理、解析,将DNS域名映射到特定类型的资源信息,咱们称之为资源记录。资源记录是有类型的,大数据
资源记录类型 | ||||||
SOA | NS | MX | A | PTR | AAAA | CNAME |
起始受权 | 域名服务器 | 邮件交换器 | 域名-->IP | IP-->域名 | 域名-->IPv6 |
别名记录 |
特色:spa 只能有一个,并且必须是第一个blog |
特色:递归 用于表示DNS服务器的域名地址dns |
特色: 用于一个域下的邮件使用 |
特色: 咱们常常用到的就是它了 |
特色: 和A记录相反,用于反向解析 |
特色: 基本不用 |
特色: 用于做A记录的域名的别名, |
4、DNS服务器的工做原理
假设咱们以wubinary.blog.51cto.com为例:
第一步:当咱们使用DNS客户端请求查询此域名的的A记录时,DNS服务器首先会判断所要查询域名是属于哪一个区域,是否在本身的管辖范围,假设这次域名不在管辖范围。
第二步:为了肯定当前域名是在哪一个级别,DNS服务器要向根询求帮助,根会向DNS服务器返回所在域名的顶级域的DNS服务器地址,也就是根的下一级com的DNS服务器地址。此时DNS服器根据这个地址又再次查询,这次查询得到了51cto.com的DNS的服务器地址。因而终于肯定了wubinary.blog.51cto.com的区域所在的DNS服务器地址了。DNS服务器的此类肯定一个地址,并使用这个址去查询下一个的查询方式咱们称之为迭代查询。
第三步:肯定了区域地址后,51cto.com为了向DNS服务器返回结果须要一级一级的往下查。一开始查询到了blog.51cto.com的DNS服务器地址,因而blog.51cto.com的DNS服务器则向下查询。blog.51cto.com又查询到了wubinary.blog.51cto.com的DNS服务器地址,此时的地址正是DNS服务器要找的地址。到了这一步,wubinary.blog.51cto.com的DNS服务器则会把结果向它的上级汇报,因而上一级又向上一级汇报,最终结果回到了最初的DNS服务器,此时DNS客户端才能得到最终的IP地址。像这样DNS服务器的数据逐级遍历及逐级返回的过程,咱们称之为递归查询。
若是咱们查询的域名正好和当前查询使用的DNS服务器所匹配,则DNS服务器会先查询本地缓存是否存在,若是存在则返回缓存数据,若是不存在则去数据文件中读取数据并运回结果。
5、三个与解析有关的配置文件
/etc/hosts:此文件早期在没有出现DNS服务器的时候,做用和DNS服务器相似,不过随着网络的发展,单个文件根本没法知足需求,因而,此文件一般运用于本地IP解析。
/etc/resolv.conf:定义DNS服务器IP地址,本地解析域名一般使用的都是这里面定义的IP地址。
/etc/nsswitch.conf:这个文件则是来决定先要使用/etc/hosts仍是/etc/resolv.conf的设置。
总结:理解DNS的树状结构、递归及迭代查询后,其它就好办了。