linux下的DNS解析之原理篇
一:DNS概念及原理
1、DNS是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
早期互联网的规模确实非常小,每台主机利用一个Hosts文件就可以把互联网上所有的主机都解析出来。后来随着互联网的逐渐庞大,互联网的管理者们及时为Hosts文件找到了继任者-DNS。
目前DNS采用的是分布式的解析方案。
具体是这样的,互联网管理委员会规定,域名空间的解析权都归根服务器所有,也就是说,根服务器对互联网上所有的域名都享有完全的解析权!且慢,有读者要提问了,那这个根服务器不就相当于全世界唯一的Hosts文件了吗?呵呵,不要着急。
根服务器把com结尾的域名解析权委派给其他的DNS服务器,以后所有以com结尾的域名根服务器就都不负责解析了,而由被委派的服务器负责解析。而且根服务器还把以net,org,edu,gov等结尾的域名都一一进行了委派,这些被委派的域名被称为顶级域名,每个顶级域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种顶级域名也被称为顶级机构域名。根服务器还针对不同国家进行了域名委派,例如把所有以CN结尾的域名委派给中国互联网管理中心,以JP结尾的域名委派给日本互联网管理中心,CN,JP这些顶级域名被称为顶级地理域名。
每个被委派的DNS服务器同样使用委派的方式向下发展,例如和讯公司想申请使用xxx.com域名,这时和讯就要向负责.com域名的DNS服务器提出申请,只要xxx.com还没有被其他公司或个人使用,而且申请者按时足额缴纳了费用,负责.com域名的服务器就会把xxx.com域名委派到xxx公司自己的DNS服务器172.16.12.1。只要DNS服务器使用委派,域名空间就会逐步形成现有的分布式解析架构。这种架构把域名解析权下放到各公司自己的DNS服务器上,既有利于及时更新记录,同时对平衡
流量压力也很有好处。
那么,在这种分布式的解析结构中,DNS服务器如何进行域名解析呢?换句话说,其他的DNS服务器怎么知道由172.16.12.1负责解析xxx.com的域名呢?如果一个互联网用户想解析域名www.xxx.com,过程是怎么样的呢?用户把解析请求发送到自己使用的DNS服务器上,DNS服务器发现自己无法解析www.xxx.com这个域名,于是就把这个域名发送到根服务器请求解析,根服务器发现这个域名是以com结尾的,于是告诉查询者这个域名应该询问负责com的DNS服务器。这时查询者会转而负责com的域名服务器发出查询请求,负责com域名的DNS服务器回答说www.xxx.com是以xxx.com结尾的域名,以xxx.com结尾的域名已经被委派到DNS服务器172.16.12.1了,因此这个域名的解析应该询问172.16.12.1。于是查询者最后向172.16.12.1发出查询请求,这次应该可以如愿以偿了,172.16.12.1会告诉查询者所需要的答案,查询者拿到这个答案后,会把这个查询结果放入自己的缓存中,如果在缓存的有效期内有其他DNS客户再次请求这个域名,DNS服务器就会利用自己缓存中的结果响应用户,而不用再去根服务器那里跑一趟了。
以上介绍的域名解析过程
2、递归查询与迭代查询
a、递归查询
当客户端按照它的DNS服务器列表向DNS服务器发出查询请求的时候,该DNS服务器会查询自己的区域文件、缓存,如果没有找到结果该DNS服务器就向其它DNS服务器查询。该DNS服务器最终将IP地址或失败信息发给客户端。像客户端与DNS服务器这种发出一次请求,就返回最终信息的查询模式,就叫递归查询。
注意:
因为递归查询比较占用系统资源,有安全方面的隐患,所以可以设置DNS服务器不接受递归查询。
b、迭代查询
一般DNS服务器之间属迭代查询,如:DNS1向DNS2发出请求,若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS1,以便其再向DNS3发出请求,以此类推直到找到拥有目标记录的DNS服务器,或者直到查询出错或超时为止。像这种DNS1与DNS2,3...之间的查询模式,就叫迭代查询。
3、正反向解析IP和域名
访问一个网站,只要输入一个网址就可以获取到对应的页面信息,而不是用输入IP地址访问,能够完成这一功能的过程(将FQDN转换成IP地址)这就是正向解析,有了正向解析,那么反向解析又有什么用呢,正向可以将域名转换成IP地;反向解析的作用是将IP地址转换成域名。正向解析是通过正向查找区域(即数据文件中的A记录来查找)反向解析是通过反向查找区域(即数据文件中的PTR来查找),PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。通过对PTR记录的查询,达到反查的目的.
4、补充
DNS除了最主要的功能从主机名到IP地址的转换,还有提供了一些其它的服务。
1、主机别名
2、邮件服务器别名
3、负载分担
二、DNS配置文件解析
①、/etc/host.conf:当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序
cat /etc/host.conf
order hosts,bind #名称解释顺序
multi on #允许主机拥有多个IP地址
nospoof on #禁止IP地址欺骗
order是关键字,定义先用本机hosts主机表进行名称解释,如果不能解释,再搜索bind名称服务器(DNS)。
②、/etc/hosts:一般而言Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能
cat /etc/hosts
第一列是主机的IP地址,第二列是FQDN(Fully qualified domain name,完全限定域名),第三列为别名.
③/etc/resolv.conf:DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。
cat /etc/resolv.conf
DNS列表:
domain 域名 #声明主机的域名
search 域名 #当要查询没有域名的主机,主机将在由search 声明的域中分别查找
nameserver 172.16.12.1 #主DNS服务器地址
nameserver 172.16.12.2 #辅助DNS服务器地址
④、(yum -y install bind #安装bind后的各配置文件)
DNS主配置文件/etc/named.conf
⑤、区域数据文件:/var/named/ 目录下
/var/named/ 目录 # named.conf中directory中定义的数据文件存放位置
named.ca # 根的数据文件
named.localhost # 本机正向数据文件
named.loopback # 本机反向数据文件
本文出自 “斜视天花板” 博客,请务必保留此出处http://lemidi.blog.51cto.com/8601832/1379879
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。