一、DNS服务器的百科名片

   DNS服务器是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器将域名映射为IP地址的过程就称为“域名解析”。074610218.jpg

   BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

注:DNS服务器通过BIND软件进行阶层式的管理主机名与其对应的IP地址。

二、DNS服务器的类型

1、 主DNS服务器(primary name server):它是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。

2、 辅助DNS服务器(secondary name server):即从DNS服务器,它可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为"区文件复制"。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。

3、 高速缓存服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软  件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。

三、DNS服务器如何查询

1、DNS服务器利用BIND软件实现的层次化管理既能处理海量客服端的请求,又能完成局部名称配。

2、DNS的查询分为迭代查询和递归查询。

迭代查询:需要发出N次请求前N-1次都为参考答案:

递归查询:只发出一次请求就得到答案074639755.png

   缓存服务器迭代而来的答案保存在公共缓存中,但却有缓存生存时间的限制,且客服端请求时缓存服务器递归给客服端的答案也为参考答案(非权威答案),只有从原始服务器上能得到权威答案。

四、域名解析

1、DNS的名称解析库: /var/named

2、解析中资源记录的格式

name   [ttl]   IN 资源记录类型 ralue (对应IP值)

3、DNS的解析类型:正向解析,反向解析

正向解析:FQDN--->IP 由主机名查询其相应的IP;

正向解析库文件:/var/named/magedulinux.org.zone

080126176.png

反向解析:IP--->FQDN 由IP查询其相应的主机名;

反向解析库文件:/var/named/172.16.20.zone

080209932.png

4、常用的解析资源记录类型

A记录(ipv4) :FQDN(完整主机名)--->ipv4 IP地址 说明一个主机的ip地址;

NS记录       :Domain(域)--->DNS Server 说明一个域的DNS服务器是谁;

SOA记录      : Domain ----> Master DNS 说明一个域内主DNS是谁;

CNAME记录    :FQDN --->FQDN 一个主机名可以有多个别名;

PTR记录      :IP --->FQDN;

MX记录       :Domain--->MailServer MX有优先级(0-99);

五、子域授权

1、DNS服务器的子域:父域内划分出来的小域即为子域。

2、子域的授权:父域建立子域并将子域的解析工作委派到额外的域名服务器,并在父域的权威DNS服务器中登记相应的委派记录,建立这个操作的过程称为区域委派。

3、子域授权流程

1)在父域中划分出一个小域并声明子域;

# vim /var/named/magedulinux.org.zone在此文件中的后两行添加

dns.magedulinux.org     IN    NS    dep1
dep1                    IN    A     192.168.20.1

2)创建子域的主配置文件

# vim /etc/named.conf

zone "dep1.magedulinux.org" IN {
                  type master;     
                  file "dep1.magedulinux.org.zone";
       };
zone "20.168.192.in-addr.arpa" IN {  
                  type master;
                  file "192.168.20.zone";
       };

3)创建子域的区域文件:创建正向区域文件和反向区域文件;

正向区域文件: /var/named/magedulinux.org.zone

$TTL 3600
@     IN      SOA    dns.magedulinux.org.    admin.magedulinux.org.  (
                                             2013081402
                                             2H
                                             5M
                                             7d
                                             1d          )
      IN      NS      dns        
      IN      MX 10   mail
dns   IN      A       172.16.20.1
mail  IN      A       172.16.20.2
www   IN      A       172.16.20.3
www   IN      A       172.16.20.4
web   IN      CNAME   www
dns   IN      NS      dep1
dep1  IN      A       192.168.20.1       

4)重启服务,进行测试。

# vim /etc/resolv.conf

设置nameserver 172.16.20.1

# service named restart
# rndc reload
# dig -t A dep1.magedulinux.org


六、DNS服务器的相关命令

1、dig 命令

1)正向解析:dig -t 资源记录类型 名称  @server-IP

081734116.png

2)反向解析:dig -x IP  @server-IP

081753853.png

3)dig +trace 跟踪解析过程

4)dig -t axfr zone 完全区域传送

5) dig -t ixfr zone 增量区域传送

2、host命令

host -t 资源记录类型 名称

081710128.png

3、rndc命令

1) rndc reconfig 只重读配置文件

2)rndc reload 既重读配置文件又重读区域数据解析库

081601346.png

3) rndc status 查看状态

4) rndc flush 清除DNS中的缓存

5) rndc querylog 打开查询日志

4、allow 命令

allow 命令写入区域配置文件内 /etc/named.rfc1912.zones

1)allow-transfer { } 允许区域传送

2)allow-query { } 允许查询

3)allow-update { } 允许更新

104003402.png

4)allow-recursion { } 允许递归查询

七、DNS中使用acl,view及转发

1、基于BIND使用acl(访问控制列表)功能

acl string { address_match_element; ... };

any,none, local, localnet

acl功能定义在区域配置文件的最上方,要先定义才能使用。

2、如何使用转发将请求转发出去

1)转发类型

a/转发所有对非本机负责解析的区域请求;

定义与 option 段 转发全局请求

b/仅转发对特定区域的请求;

定义与 zone 段  只转发特定的区域请求

2)转发的前提:接收转发请求的服务器必须能够为请求者做递归查询。

 forwarders only

 forwarders {IP;};

3、如何实现view (视图化) bind view

1)view要定义多个;

2)先定义区域内的客服端 (internal内网);

# view "myview" {
        zone "magedulinux.org" IN {
                type master;
                file "internal";
};
                 }
# view "VIEW_NAME" {
        match-client { any;}
        zone "magedulinux.org" IN {
                type master;
                file "external";
};
                   }

3)再定义任意的客服端   (external外网);

4)定义的规则由内至外的次序不能颠倒。

八、如何使用DNS中的日志系统

1、日志系统由channel和categroy组成。

2、categroy:记录哪个功能产生的日志信息,一共内置有15种功能。

3、channel:日志信息记录到何处,一般有两种形式,file和syslog。同时还需要指定日志级别。

4、使用serverity定义日志级别

critical > error > warning > notice > info  debug (level)

一般情况下默认为 info ,也可默认为dynamic  

5、一个categroy产生的日志可以发往多个channel;而一个channel只能为一个categroy记录日志。

九、DNS服务器 BIND的配置

 BIND的配置流程,

1)主配置文件 /etc/named.conf中的每个语句都要使用;结尾

2)定义区域

3)定义各区域的全局配置

4)定义视图

5)定义日志

1、修改主配置文件

主配置文件 /etc/named.conf的修改,注释掉如下选项也可以修改

111555412.png

检测主配置文件的语法错误  named checkconf

启动named服务,缓存DNS服务器

2、定义新区域

在区域配置文件 /etc/named.rfc1912.zones新建一个区域

112040569.png

检测区域文件语法错误 named-checkzone

3、创建新区域配置文件

在 /var/named 下建立“ZONE_NAME.zone”文件

通常只包含宏定义和资源记录,而且第一个记录必须是SOA记录

1)一个FQDN可对应于多个IP;(负载均衡)

2)多个FQDN可对应一个IP; (一台主机可以有多个名称)

113718153.png

4、确保主配置文件和各区域解析库文件的权限为640,属主为root,属组为named

113744531.png