BIND <DNS初识>

在互联网中IP才是物理节点的标识,通过IP去访问互联网上的资源(IP36bit的二进制,41610进制数字组成),而通常有意义的字符组合成域名更符合人意,便于记忆,所以需要一种将域名映射成IP的机制,在互联网的早期,使用Host文件完成这份工作,但随着互联网的高速发展,需要维护的host文件太过庞大,而推出DNS服务 (Domain Name Service )用于解析域名与IP.

DNS域名类型:

1)         组织域,用于某些类型组织的域名,例如com(商业机构),gov(政府部门),edu(教育)

2)         地区域,用于某些地势的域名,例如cn(中国),jp(日本),hk(香港)

3)         反向域,反向解析的域名,例如 1.16.172.in-addr.arpa

 

DNS Domain Space , 域名空间

域名空间为一颗逻辑的倒置树,最顶层为 根域 ”.” , 下面为顶级域 ,再下面为二级域,三级域... ,分层的好处在于减少DNS服务器的压力.

当进行域名查询时也是自上而下,先找根域->顶级域->二级域所负责的DNS服务器,由该服务器给出答案

image.png

 

DNS查询类型:

递归查询:一次查询必须要有回应,通常是PC机向DNS服务器发出的查询UDP/53

迭代查询:需要进行多次查询,因为每次DNS服务器给的都是参考答案 TCP/53,通常为DNS服务器向根域去查询.

DNS Server 回应类型:

         肯定回答:找到了域名,有结果,则是肯定回答

         否定回答:没有找到域名,则是无结果,也需要缓存,减少查询压力

         权威回答:查询的结果为负责该域名区域的NAME Server的回复则是权威回答

         非权威回答:查询的结果为DNS Server的缓存结果,则为非权威回答

 

DNS解析类型:

正向解析: 域名(FQDN) -> IP

反向解析:IP->域名(FQDN),通常是基于网段做反向解析

注意:正向解析与反向解析为两颗完全不相同的解析树.

DNS服务器角色类型:

DNS服务器,维护所负责区域的域名解析的服务器,需要上级域授权.

DNS服务器,也称为辅助DNS,用于提供备份和分担主DNS的压力,不需要管理员维护解析库,使用区域同步机制同步主DNS的解析库.

缓存DNS服务器,没有要负责解析的区域,解析库中没有区域(除了localhost),所有的解析都去找根域” ,将解析后的结果缓存至本地.

转发器服务器,定义不属于本地负责的区域转发至哪一台DNS解析,而不去找 根域 ,或则定义所有的区域转发至哪一台DNS解析.这就是递归查询了,所以被转发需要支持递归.

DNS客户端的查询过程:

1.       假设Client请求www.163.com的域名,首先ClIent查自己的Host文件(/etc/hosts)看是否有定义,若有则直接返回结果。

2.       Client查询自己的本地缓存,看是否有过之前的解析记录。

3.       Client/etc/resolve.conf中定义的DNS服务器发出递归查询,只发一次查询,等待DNS Server的回答。

4.       DNS Server 查询自己的DNS缓存看是否有过之前的查询记录缓存。

5.       DNS Server 13根域服务器查询域名www.163.com. ,根域发现该域名在自己的子域.com下,所以根服务器返回负责 ”com.”域的NS记录与A记录

6.       DNS Server根据根域服务器返回的NSA记录,找到 负责解析 “con.” 域的服务器并发出请求,查询www.163.com域名,负责解析.com域的DNS服务器发现163.com域是自己的子域,返回163.com. 区域的NS记录与A记录

7.       DNS Server根据.com域返回的NSA记录,找到该区域负责解析的DNS服务器并发出请求,该区域DNS服务器查找自己的解析库检查是否存在www主机,返回结果

8.       这就是迭代查询的过程,DNS Server进行多次查询,收到的都是参考答案,如果还有三级域,则继续迭代查询。

 

                 image.png

解析库:

         解析库由多条资源记录(Resource Record)组成,通过这些RR记录IP与域名之间的关系,并且标明该资源的类型、用途。

         1   A:地址记录(Address),返回域名指向的IP地址。

2 NS:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。

3  MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。

4 CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,详见下文。

5 PTR:逆向查询记录(Pointer Record),只用于从IP地址查询域名,详见下文。

6 SOA :开始授权记录(Star of  Authority),定义该域的主DNS服务器,必须位于首部。

        

         解析库在/etc/named.conf /etc/named.rfc1912.zones中定义,存放于/var/named/

解析库的语法格式:

 

Name    IN          type              value

 

                   @     表示为当前区域名称,所以邮箱中的@ ’ . ’ 表示

                   若多条记录的name名称相同,则后续name可省略

        

SOA记录:

         Name : 为当前区域的FQDN

         Value : 由主DNS ServerNS记录、管理员邮箱、区域传送选项 多部分组成

例如:

@              IN    SOA           ns1.huying.com.      admin.huying.com. (

201801 ;  同步序列号

1H    ;刷新时间

30M ;重试时间

1D     ;过期时间,主DNS多久之后还为回复,从DNS也放弃解析

                            1D     ;否定答案的缓存时间

         )

 

 

  

         NS记录:

                   Name : 当前区域的名称

                   Value :  负责该区域的DNS Server FQDN

                            NS记录需要有对应的A记录解析该DNS Server FQDN

                            例如:

@              IN              NS              ns1.huying.com.

                   IN              NS              ns2.huying.com.

ns1.huying.com.                 IN             A             192.168.1.1

ns2.huying.com.                 IN             A             192.168.1.2

         MX记录:

                   Name:  当前区域的名称

                   Value:  priority  当前区域接受邮件服务器的FQDN

                            Priority    当前区域的多个时,越低越优先处理

例如:

huying.com.        IN            MX         10             mx1.huying.com.

                              IN            MX         20             mx2.huying.com.

mx1.huying.com.               IN            A               192.168.1.1

mx2.huying.com.              IN             A               192.168.1.2

 

A记录:

                   Name: FQDN

                   Value: IP

                   例如

ns1.huying.com.      IN          A             172.16.1.1

ns2.huying.com.      IN          A             172.16.1.2

         CNAME记录:

                   Name:  别名的FQDN

                   value:   正名的FQDN

                   例如

web.huying.com           IN             CNAME         www.huying.com

         PTR记录:

                   name:  Network_Address.in-addr.arpa

                   value:  FQDN

                   例如

1.16.172.in-addr.arpa         IN           PTR               www.huying.com.

DNS测试工具:dig,host,nslookup,query…   

         这些工具在bind-utils RPM包中都有提供

         dig

                  dig    -t  querry_type    name  @server                            #-查询指定类型的记录

                                     -t                表示查询的类型

                                     name        为需要查询的域名

                                     @Server  使用哪个DNS服务器进行解析

                   dig     -x   ip_addr                                                                 #根据IP地址进行反向解析

                   dig    -t   AXFR   name                                                              #测试全量区域传送

                   dig    +trace  name                                                                #对解析过程进行跟踪

                   dig    +[no]recurse          name                                          #使用递归或者非递归解析    

         host

                   host   -t    type   name  Server                                         #指定类型解析

         nslookup

                   …


猜你喜欢

转载自blog.51cto.com/jying/2115483