Debian9 BIND9 文件族详解

                                                                       Debian9 BIND9 文件族详解

先来看下Bind9配置文件族

  • -rw-r--r-- 1 root root 3923 Aug 31 03:05 bind.keys
  • -rw-r--r-- 1 root root  237 Aug 31 03:05 db.0
  • -rw-r--r-- 1 root root  271 Aug 31 03:05 db.127
  • -rw-r--r-- 1 root root  237 Aug 31 03:05 db.255
  • -rw-r--r-- 1 root root  353 Aug 31 03:05 db.empty
  • -rw-r--r-- 1 root root  270 Aug 31 03:05 db.local
  • -rw-r--r-- 1 root root 3048 Aug 31 03:05 db.root
  • -rw-r--r-- 1 root bind  463 Aug 31 03:05 named.conf
  • -rw-r--r-- 1 root bind  217 Dec 17 20:56 named.conf.default-zones
  • -rw-r--r-- 1 root bind  164 Dec 17 21:29 named.conf.local
  • -rw-r--r-- 1 root bind  890 Dec 16 19:09 named.conf.options
  • -rw-r----- 1 bind bind   77 Dec 16 19:09 rndc.key
  • -rw-r--r-- 1 root root    0 Dec 17 20:54 zones.rfc1918

下面来简单说明一下这些配置文件:

  1. named.conf          设置一半的named参数,指向该服务器使用的域数据库
  2. named.conf.options   全局选项
  3. db.root          跟服务器指向文件,无需更改
  4. db.local         区域正解文件,将FQDN--->IP地址
  5. db.127          区域反解文件,将IP--->FQDN

其主配置文件/etc/named.conf的控制语句

1.Acl 定义IP地址的访问控制列表

2.Control 定义ndc使用的控制通道

3.Include 把其他文件包含到配置文件中

4.Key 定义授权的安全密钥

5.Logging 定义日志写什么,写在哪

6.Options 定义全局配置选项和缺省值

7.Server 定义远程服务器的特征

8.Trunstred-keys 为服务器定义DNSSEC加密秘钥

9.Zone 定义一个区域

初始情况下,该配置文件(/etc/named.conf)内容如下:

zone "." {

type hint;

file "/etc/bind/db.root";

              };

zone "localhost" {

type master;

file "/etc/bind/db.local";

                           };  

zone "127.in-addr.arpa" {

type master;

file "/etc/bind/db.127";

                                      };

include "/etc/bind/named.conf.options";

include "/etc/bind/named.conf.local";

include "/etc/bind/named.conf.default-zones";

其中type项的值:

Master:定义为域主服务器

Slave:定义为域辅服务器

Hint:定义为互联网中根域服务器

在Debian系统中,所有Options语句的配置内容,全部转移至named.conf.options中,以下是该文件的默认配置:

options {

        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want

        // to talk to, you may need to fix the firewall to allow multiple

        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable

        // nameservers, you probably want to use them as forwarders.

        // Uncomment the following block, and insert the addresses replacing

        // the all-0's placeholder.

        // forwarders {

        //      0.0.0.0;

        // };

        // If BIND logs error messages about the root key being expired,

        // you will need to update your keys.  See https://www.isc.org/bind-keys

        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035

        listen-on-v6 { any; };

             };

接下来做一个简单的实验,域名a.com,做正向解析,在上手配置之前,一定要知道这些文件互相之间的包含关系,下图可以大致表示

Debian9 BIND9 文件族详解_第1张图片

在知道了这个文件关系之后,在进行配置,思路会清晰很多,否则你会不知道将区域配置写在哪里,接下来看一下实验配置

vim /etc/bind/named.conf.default-zones

zone "a.com" {

        type master;

        file "/etc/bind/db.a.com";

};

这段内容添加在named.conf , named.conf.local , named.conf.default-zones都可以(因为这些主配置文件与其他是包含关系)

cp db.local db.a.com && vim db.a.com

$TTL    604800

@       IN      SOA     dns.a.com. root.a.com. (

                       2                      ; Serial

                       604800            ; Refresh

                       86400              ; Retry

                       2419200          ; Expire

                       604800 )          ; Negative Cache TTL

;

@            IN      A       192.168.10.1

a.com.     IN      NS      dns.a.com.

dns         IN       A       192.168.10.1

a             IN      A       192.168.10.1

b            IN       A       192.168.10.2

@            IN      A       192.168.10.1      ##如果你的区域数据库中没有这行,那么你就要将下面的主机名写完整,例如:

a.a.com.  IN      A       192.168.10.1

b.a.com.  IN      A       192.168.10.2

如果少了红字行的同时,下列行又没有写全,那么就会导致域名无法正常解析,添加补正后通过systemctl restart bind9 重启服务,就可以用客户端解析测试了

                                          区域类型

主域名服务器

Primary Master Server是一个域信息的根本来源,同时负责向辅域名服务器传输包含域信息的数据库,主域名服务器将从本地数据库中读取域数据

辅域名服务器

Slave Server或Secondary Server,辅域名服务器会使用一个叫做域传输的复制过程,调入其他服务器中的域数据库。通常情况下,数据库是直接从主服务器上传输过来的,但也有可能使用本地硬盘上的cache读取到的,辅域名服务器可以提供必要的冗余服务,所有的辅域名服务器都应该写在这个域的NS记录中

隐藏服务器(stealth server)

Stealth Server 可以针对一个域的查询返回授权的记录,但是它并没有列在这 个域的 NS 记录里。Stealth 服务器可以用来针对一个域进行集中分发,这样可以不 用在远程服务器上手工编辑这个域的信息了。在这种方式中,一个域的 master 文件在 stealth server上存储的 位置,经常叫做“hidden primary”配置。Stealth 服务器也可以 将域文件在本地做一个拷贝,从而可以在所有官方的域名服务器都不能访问的情况下, 也能更快地读取域的记录

高速缓存域名服务器(caching only server)

缓存服务器可以将它收到的信息存储下来,并再将其提供给其它的用户进行查询,直 到 这些信息过期。它的配置中没有任何本地的授权域的配置信息。它可以响应用户的请求, 并询问其它授权的域名服务器,从而得到回答用户请求的信息

转发服务器(fowarding server)

一台缓存名服务器本身不能进行完全的递归查询。相反,它能从缓存向其它的缓存服务器转发一部分或是所有不能满足的查询,一般被称作转发服务器。

可能会有一个或多个转发服务器,它们会按照顺序进行请求,直到全部穷尽或者请求 得到回答为止。转发服务器一般用于用户不希望站点内的服务器直接和外部服务器通讯的情况下。一个特定的情形是许多 DNS 服务器和一个网络防火墙。服务器不能透过防火墙传 送信息,它就会转发给可以传送信息的服务器,那台服务器就会代表内部服务器询问因特 网 DNS 服务器。使用转发功能的另一个好处是中心服务器得到了所有用户都可以利用的更 加完全的信息缓冲

 

                                                                                                                     -------------上文(DNS服务器类型)抄自Centos官网

你可能感兴趣的:(Debian8,Linux,DNS)