Linux服务之DNS服务--DNS的基本概念

1.DNS(Domain Name System)域名系统。在网络上为了方便用户访问互联网,而不用去记住能够被直接访问的IP,就有了作为域名与IP相互映射的一个分布式数据库。DNS协议运行在UDPTCP之上,使用53号端口。(其中在DNS解析查询时用到UDP协议,而在主从传递区域数据库文件时,用到TCP协议。)

2.DNS功能:

DNS服务器实现的是IP到域名的解析和域名到IP的解析。

主机名与IP有两种映射关系:

1.静态映射:在每台设备上都有主机到IP的映射关系,只供此设备使用,如hosts文件中。

2.动态映射:指通过DNS服务器配置主机到ip的映射关系。通过DNS服务器查询主机对应的IP地址

3.域名的组织结构和层次:

域名的结构采用树型层次性结构形成域名空间。

      wKioL1YCCyHS5ydLAAE_SA9JKFI611.jpg

域名的管理机制:

域名的管理采用逐级委托机制。顶级域将管辖子域内DNS服务器的域名解析,运行和维护,授权给子域注册单位自主管理。

3.DNS的查询方式:

DNS的查询方式有两种:

1.递归查询:从客户端到本地DNS服务器的查询是属于递归查询。

1)递归查询

递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。、、

2.迭代查询:DNS服务器之间的交互查询就是迭代查询。

2)迭代查询

DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果

4.DNS服务器的类型:

主域名服务器:本区域内权威域名解析信息源所在地。全面负责本地域名的解析和外层域名解析请求的传递。一个域只能有一个主域名服务器,需要系统管理员构建和配置。

从域名服务器:也称辅助域名服务器。其维护的域名与IP地址的映射记录来源于主域名服务器。

缓存域名服务器:也称高速缓存服务器。通过向其他域名查询获得域名与IP地址的对应记录,将域名查询结果缓存到本地,提高重复查询的速度。

5.DNS域名解析的顺序:

(定义在/etc/host.conf-->查询/etc/hosts文件规定的顺序策略-->查询/etc/resolve.conf文件规定的命名策略--->DNS 服务器。

现今用量最多,稳定性较好的DNS服务器软件为BIND。在Linux上提供域名解析的平台或框架,nsswitch和两个库文件(libness_files.so、libness_dns.so)。nsswitch为完成域名解析提供了一个平台,它本身不能进行域名解析。nsswitch提供了为应用程序向不同的解析库进行名称解析的手段和顺序。真正提供域名解析机制的是:libness_files.so和libness_dns.so库文件。当用户在提交查询请求时,nsswitch 会根据自身的配置文件(/etc/nsswitch.conf)来提供域名解析的手段和顺序,然后通过nsswitch这个框架去这两个库文件进行查找的。

nsswitch配置文件中/etc/nsswitch.conf有这么一行:hosts: files dns

这行files就是通过libness_files.so去查找/etc/hosts文件内的IP域主机的对应关系来完成解析。如果解析失败就是通过DNS服务来解析。当我们真正访问一个主机名的时候,主机名是不能和我们建立关系的,但它会调用一个文件库来完成主机名和IP的转换,这个机制称为stub resolverstub resolver第一步先查找nsswitch的配置文件中指定的files文件查找有没有对应的IP的地址,如果有就调用一个文件库来完成主机名和IP的转换,查找成功,没有,就通过DNS服务器来解析

6.DNS服务器的配置文件DNS数据库记录结构:

DNS服务的配置文件:

/etc/named.conf:DNS服务的基本配置文件,定义了ZONE区域和一些基本配置。

/var/named/named.ca:指向上级DNS(指根DNS) 该文件不需要管理员更改,而是系统自带。

/var/named/named.local:本地子域解析。将localhost反向解析为127.0.0.1

/var/named/目录下还有正向解析文件和反向解析文件。

DNS数据库记录结构:

资源记录(RR):RRDNS域名映射到特定类型的资源信息中,以供在名称空间中注册或解析名称使用。在Linux系统中通常“名称解析库”的每一行成为一个资源记录。

DNS数据库资源记录类型结构:

格式: [name] [ttl] IN  type value

各个字段说明:

name:域对象的名称。它可以使单独的主机名或FQDN

ttl:以秒为单位的生存周期,用于确定该资源记录中的信息在缓存中保存的时间长度。

IN:表明记录为Internet DNS资源记录。

type:记录的类型

value:资源信息数据

 

其中type记录类型有:

SOA:(Start Of Authority)起始授权记录。表示服务器管理的起始开始位置。SOA记录说明了在众多的NS记录里那台才是主服务器

name:当前区域的名字。如zkchang.com.

value:有多部分组成

(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

(2)当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换;

SOA记录中有几段时间序列:

Serial number:反应域名信息变化的序列号,每次域名信息发生变化后需要增大次序列号。以便从服务器获取新的数据

Refresh:刷新时间或核对时间,设置从服务器多长时间与主服务器进行核查,主服务器的数据是否发生变化。

Retry:这项是如果从服务器试图获取主服务器的serial时,但主服务器没有相应,多久再重试。

Exprie:当从服务器无法连接上主服务器时,从服务器可以在多长时间内认为其缓存是有效的,并供用户查询。

Minimum:缓存DNS服务器可以缓存记录多长时间。

如:

            zkchang.com. 86400 IN SOA  ns1.zkchang.com. admin.zkchang.com. (
                                2015091404
                                6H
                                5M
                                2D
                                1D
                                )

NS:(Name Server):NS记录也称名称服务器记录,授权域名服务器。用于说明此区域内有哪些DNS服务器来承担解析任务,SOA记录说明在众多的DNS服务器中哪一个才是主服务器。

name:当前区域的名字

value:当前区域的DNS服务器的名字如:ns1.zkchang.com.

注意:相邻的两个资源记录的name相同时,后续的可以省略;

在添加NS记录后,后续要有一个A记录与之对应。

如:

            zkchang.com.    IN      NS      ns1.zkchang.com.        
            zkchang.com.    IN      NS      ns2.zkchang.com.

A:(Adress)主机名转化为IP地址,任何一个主机只能有一个A记录。

name:某主机的FQDN,如:www,zkchang.com.

value:主机名与之对应的IP地址。

如:

            mail                         IN      A       172.16.99.1    
            www.zkchang.com.             IN      A       172.16.99.1

注意:

*.zkchang.com.IN  A  1.1.1.4

              避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址。

MX:(Mail eXchange):邮件交换记录。定义邮箱服务器,和邮件处理级别(数字越小级别越高)。

CNAME:(Canonic NAME)命名主机别名,主机规范名在A中定义。

PTR:IP地址转换成主机名

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1:而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addra.arpa.

value.FQDN

完整的正向区域数据和反向区域数据解析:

正向:

            $TTL 1D            
            zkchang.com.    IN      SOA     ns1.zkchang.com.        admin.zkchang.com. (
                                            2015091405
                                            6H
                                            5M
                                            2D
                                            1D
                                            )
            zkchang.com.    IN      NS      ns1.zkchang.com.
            zkchang.com.    IN      NS      ns2.zkchang.com.
            zkchang.com.    IN      MX 3    mail.zkchang.com.
            ns1             IN      A       172.16.99.1
            ns2             IN      A       172.16.99.2
            mail            IN      A       172.16.99.1
            www             IN      A       172.16.99.1
            www1            IN      A       172.16.99.1

反向:

            $TTL 1D
            @   IN      SOA     ns1.zkchang.com.        admin.zkchang.com. (
                                                    2015091405
                                                    6H
                                                    5M
                                                    2D
                                                    1D
                                                    )
            99.16.172.in-addr.arpa.         IN      NS      ns1.zkchang.com.
                            IN      NS      ns2.zkchang.com.
            1               IN      PTR     ns1.zkchang.com.
            2               IN      PTR     ns2.zkchang.com.
            1               IN      PTR     mail.zkchang.com.
            1               IN      PTR     www.zkchang.com.
            1               IN      PTR     www1.zkchang.com.