DNS服务器(Centos 7):bind安装&配置

介绍

Linux系统中的DNS服务器的名字叫bind,本文通过介绍bind的安装以及

环境

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

DNS服务器地址:192.168.1.100

 

安装

  1. 安装bind: yum install bind
  2. 启动服务: service named start
  3. 设置开机启动:systemctl enable named

安装后便有个入口配置文件/etc/named.conf,其中(1)可以include其他配置文件,(2)以及设置不同的域的配置文件.

例如/etc/named.conf中包含下面的内容,指定了不同的zone所对应的配置文件

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        }
};

zone "." IN {
    type hint;
    file "named.ca";
};

说明

如果要增加demo.com的域,从而使用a.demo.com、b.demo.com等域名,则需要主要进行两步:(1)配置named.conf(2)配置demo.com的配置文件

增加域名

  • 步骤1:在/etc/named.conf增加域,增加如下配置
上面示例是:增加了demo.com域,并指定了该域的配置文件位置file/var/named/demo.com。当然的file值也可以换成其他值。
  • 步骤2:配置/var/named/demo.com。这个文件可以copy其他已有的文件(例如/var/named/named.empty),然后进行修改。修改成如下内容:
$TTL 3H
@       IN SOA  @ demo.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum 
        NS      @
        A       127.0.0.1
        AAAA    ::1


a          IN      A       192.168.1.101
b          IN      A       192.168.1.102                                     

如果要继续增加其他域名,在上面继续按照相同的方式追加即可

  • 步骤3:重启named服务:service named restart

本地测试

进行测试前,需要设置本机的dns服务器。

  • 编辑/etc/resolv.con,修改文件为如下内容:
nameserver 192.168.1.100
  • 1
  • 1
  • 在DNS服务器本地测试:nslookup a.demo.com如果能解析到,则说明域名服务器以及域名配置成功

远端测试-失败

  • 在另外一个主机上(如Windows PC)上配置DNS服务器为DNS服务器地址(本例子中为:192.168.1.100)
  • (Windows)刷新DNS缓存:ipconfig /flushdns
  • 执行nslookup a.demo.com。可以发现无法解析。

无法解析的原因是,DNS服务器(bind)默认只允许地址为127.0.0.1/localhost的主机通过DNS服务器进行查询,即DNS服务器本身只能被自己查询。

如果要解决这个问题,则需要进行配置。如下面的步骤。

配置允许远端查询

配置文件/etc/named.conf需要进行如下修改

  • listen-on port 53 { 127.0.0.1; };修改为listen-on port 53 { any; };
  • allow-query { localhost; };修改为allow-query { any; };
  • dnssec-enable yes;修改为dnssec-enable no;
  • dnssec-validation yes;修改为dnssec-validation no;

重启named服务:service named restart

再一次远端测试-成功

  • 在另外一个主机上(如Windows PC)上配置DNS服务器为DNS服务器地址(本例子中为:192.168.1.100)
  • (Windows)刷新DNS缓存:ipconfig /flushdns
  • 执行nslookup a.demo.com。可以发现能够正常解析。

至此通过bind部署DNS服务器以及配置实验结束。

TODO

  • /var/named.conf中各个字段的作用
  • demo.com文件中各个字段的意义以及作用