Linux笔记 DNS服务

亡梦爱人 提交于 2019-11-29 14:10:36
一、DNS相关概念
1、DNS介绍
        DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
 
2、DNS域名空间

 

 

    DNS是一种分布式、分层次的主机名管理架构,通过配置DNS服务器地址,主机不需要知道对应的ip地址就可以通过主机名的形式访问互联网。DNS同根文件系统一样都是倒状的树状形状,最顶层是根服务器,主要负责顶级域名的管理,顶级域名就像是.com,.cn,.net,.edu等等,在下面的顶级域名服务器则负责所对应的二级域名。如.baidu.com,.qq.com等,接下来二级域名服务器负责对应的主机名称解析或者其三级域名解析。三级域名如,.game.qq.com,www.qq.com等,以此类推 。      
 
以百度(www.baidu.com)和百度贴吧(tieba.baidu.com)来举例
>>>域名:不论是www.baidu.com还是tieba.baidu.com,它们的域名都是baidu.com,严格地说是"baidu.com."。这是百度所购买的com域下的一个子域名。
>>>主机名:对于www.baidu.com来说,主机名是www,对于tieba.baidu.com来说,主机名是tieba。其实严格来说,www.baidu.com和tieba.baidu.com才是主机名,它们都是baidu.com域下的主机。一个域下可以定义很多主机,只需配置好它的主机名和对应主机的IP地址即可。
>>>FQDN(Full Qulified Domain Name):完全合格域名,是指包含了所有域的主机名,其中包括根域。FQDN可以说是主机名的一种完全表示形式,它从逻辑上准确地表示出主机在什么地方。
 
3、域的分层授权
    域是从上到下授权的,每一层都只负责自己的直辖下层,而不负责下下层。例如根域给顶级域授权,顶级域给普通域授权,但是根域不会给普通域授权。和现实中的行政管理不一样,域的授权和管理绝对不会向下越级,因为它根本不知道下下级的域名是否存在。
   
4、DNS查询过程
 
  两种查询过程:递归查询、迭代查询
>>>递归查询:主机先寻找根域(.),根域向下询问顶级域名(com),顶级域名继续向下询问二级域名(baidu),二级域名服务器中保存有正向解析文件(域名 > ip),文件中记录有A记录(域名和IP的映射关系),因此二级域名服务器可以直接查询到该域名(www.baidu.com.)的ip地址。随后二级域名返回给顶级域名,顶级域名返回给根域,根域再返回给主机。

>>>迭代查询:主机先查找到根域(.),根域将顶级域名(com)服务器地址返回给主机,主机访问顶级域名,顶级域名返回二级域名(baidu)服务器地址,主机继续访问二级域名,二级域名服务器根据正解文件返回ip地址。

 
 
  实际查询过程分析
   

1、本地主机查询本地host文件查看是否有www.baidu.com主机与ip的对应关系,若有,则直接给与使用;若无则进行第二步;

2、 此时本机将向指定的dns server(假设为NS1)发起查询请求。NS1在收到来自客户端的请求后,会及时的去查询NS1上的缓存记录,查看是否有baidu.com的解析记录,若有则直接反馈给客户端,若没有,则进行第三步;

3、此时NS1会主动向根域名服务器发起查询WWW.baidu.com的请求。但是根服务器只记录了.com的相关信息,此时会告知NS1:我这没有WWW.baidu.com的记录,你可以去向.com去查询,并告知NS1.com的地址;

4、于是NS1就根据根服务器告知的.com地址去向发起查询www.baidu,com的请求,但是.com只记录了baidu.com的记录,没有www的主机记录,就告知NS1服务器:我没有www.baidu.com的具体解析记录,但我知道baidu.com的地址,你可以去找他查询,并告知地址

5、紧接着NS1就向baidu.com发起www.baidu.com的查询请求,于是baidu.com就去查询本地的记录,找到www主机对应IP地址123.125.115.110,于是就将www.baidu.co的IP地址反馈给NS1;

6、NS1在收到具体结果后,会先将结果储存在本地的DNS缓存中,以方便如有下次相同的解析请求能够快速的响应,之后将结果直接反馈给客户端,完成解析。

在www.baidu.com解析过程中有两个阶段:1、客户端将解析请求发送给NS1之后只需等待结果就行了;2、NS1在接到客户端的请求后,全面负责查找www.baidu.com,查找的每个过程都是NS1去请求的。这两个过程的查找方式是明显不同的,前者我们称之为递归查询,后者为迭代查询

 

5、正解/反解区域
        正解:主机名到ip解析
            正解区域 pl.com 
            
        反解:ip到主机名解析
            反解区域 1.1.10.in-addr.arpa
            
 
6、资源记录类型(RR TYPE)
       
>>>SOA:start of authority,起始授权机构。
 格式         
域 IN  SOA 域内dns服务器FQDN 管理员邮箱地址(@用.代替)    (
serial  
refresh
retry 
expire
negative ttl
)

                   serial

                        第一个值是区域数据文件的序列编号serial,每次修改此区域数据文件都需要修改该编号值以便让slave dns服务器同步该区域数据文件
                    refresh
                        表示slave dns服务器找master dns服务器更新区域数据文件的时间间隔
                    retry
                        表示slave dns服务器找master dns服务器更新区域数据文件时,如果联系不上master,则等待多久再重试联系,该值一般比refresh时间短,否则该值表示的重试就失去了意义。
                    expire
                        表示slave dns服务器上的区域数据文件多久过期。
                    negative ttl
                        表示客户端找dns服务器解析时,否定答案的缓存时间长度
 
 
>>>NS:存储的是该域内的dns服务器相关信息。即NS记录标识了哪台服务器是DNS服务器
格式:
pl.com  IN  NS  dns1.pl.com.
域名 IN NS FQDN

  

>>>A:address,存储的是域内主机名所对应的ip地址
格式:        
主机名/FQDN IN A IP
www.pl.com.  IN   A   172.16.200.181
www          IN   A   172.16.200.181
 
*以上三种为正解文件或反解文件必须类型
 
>>>PTR:pointer,和A记录相反,存储的是ip地址对应的主机名,该记录只存在于反向解析的区域数据文件中(并非一定)
格式:
181       IN PTR www.pl.com
IP最后一段 IN PTR FQDN

  

>>>MX:域邮件服务器
 
 
>>>CNAME:canonical name,表示规范名的意思,其所代表的记录常称为别名记录。
格式:
www1.pl.com IN CNAME www.pl2.com 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!