Centos 7 dns bind 主从安装配置

来自Linux78|wiki
Bob讨论 | 贡献2019年11月7日 (四) 10:02的版本 (创建页面,内容为“== 概述 == DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

概述

DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:

正向解析:根据主机名(域名)查找对应的IP地址。

反向解析:根据IP地址查找对应的主机名(域名)。

工作形式上又分主服务器、从服务器和缓存服务器。

主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。

从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。

缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率


安装Bind服务程序

准备环境

Centos 7.x

yum install bind bind-utils -y
#备注:如下操作无效
#yum -y install bind-chroot

域名解析服务Bind的程序名称叫做named,服务程序的配置文件如下:

主程序 /usr/sbin/named

主配置文件 /etc/named.conf

区域配置文件 /etc/named.rfc1912.zones


编辑主配置文件

cp /etc/named.conf{,.ori}
vim /etc/named.conf    #注释的为要修改的行
修改1:
listen-on port 53 { 127.0.0.1; }; //127.0.0.1修改为any,代表允许监听任何IP地址。修改为如下:
listen-on port 53 { any; }; 
修改2:
allow-query { localhost; }; //localhost修改为any,代表允许任何主机查询。修改为如下:
allow-query { any; };

正向解析

第1步:配置区域数据信息

正向解析的作用是根据主机名(域名)查找到对应的IP地址,区域文件中已有一些默认信息,可不必理会,直接在下面追加即可:

vim /etc/named.rfc1912.zones zone "music.com" IN {

       type master;
       file "music.com.zone";
       allow-update { none; };

}; 第2步:配置解析数据信息:   我们可以直接复制正向解析模板文件:"/var/named/named.localhost",填写信息后即可直接使用。

[root@Centos ~]# cd /var/named/ [root@Centos named]# cp -a named.localhost music.com.zone [root@Centos named]# vim music.com.zone

$TTL 1D       @ IN SOA music.com. scottcho.qq.com. (

                                       0       ; serial
                                       1D      ; refresh
                                       1H      ; retry
                                       1W      ; expire
                                       3H )    ; minimum
       NS      ns.music.com.

ns IN A 192.168.0.85

       IN MX 10 mail.music.com.

mail IN A 192.168.0.85 www IN A 192.168.0.85 bbs IN A 192.168.0.95 重启named服务让配置文件立即生效:

[root@Centos named]# systemctl restart named


第3步:检验解析结果。 将本机的DNS设置为本机的IP 192.168.0.85

[root@Centos named]# cat /etc/resolv.conf

  1. Generated by NetworkManager

search test

nameserver 192.168.0.85 nslookup命令用于检测能否从网络DNS服务器中查询到域名与IP地址的解析记录,检测named服务的解析能否成功。 此为查询DNS服务器的信息:

[root@Centos named]# nslookup > www.music.com Server: 192.168.0.85 Address: 192.168.0.85#53

Name: www.music.com Address: 192.168.0.85 > mail.music.com Server: 192.168.0.85 Address: 192.168.0.85#53

Name: mail.music.com Address: 192.168.0.85 > bbs.music.com Server: 192.168.0.85 Address: 192.168.0.85#53

Name: bbs.music.com Address: 192.168.0.95 > ns.music.com Server: 192.168.0.85 Address: 192.168.0.85#53

Name: ns.music.com Address: 192.168.0.85 2.4 反向解析实验-可以不配置 第1步:配置区域数据信息。   反向解析的作用是根据IP地址查找到对应的主机名(域名),在区域文件(named.rfc1912.zones)中默认已存在一些注释内容与区域信息,可不需要删除上面实验及默认区域信息,直接在下面追加即可。

[root@Centos named]# vim /etc/named.rfc1912.zones

zone "0.168.192.in-addr.arpa" IN {

       type master;
       file "192.168.0.arpa";
       allow-update { none; };

}; 第2步:配置解析数据信息。 [root@Centos named]# vim /etc/named.rfc1912.zones [root@Centos named]# cp -a named.loopback 192.168.0.arpa

[root@Centos named]# vim 192.168.0.arpa

$TTL 1D           @ IN SOA music.com. scottcho.qq.com. (     #授权信息开始:#DNS区域的地址#域名管理员的邮箱(不要用@符号) 0 ; serial #更新序列号

                                       1D      ; refresh   #更新时间
                                       1H      ; retry   #重试延时
                                       1W      ; expire   #失效时间
                                       3H )    ; minimum  #无效解析记录的缓存时间
       NS      ns.music.com.       #域名服务器记录    

ns A 192.168.0.85        #地址记录 85 PTR ns.music.com.      #PTR为指针记录,仅用于反向解析中 85 PTR mail.music.com. 85 PTR www.music.com 95 PTR bbs.music.com


第3步:检验解析结果。 重启named服务程序,让配置文件立即生效:

[root@Centos named]# systemctl restart named 执行nslookup命令检查反向解析结果:

root@Centos named]# nslookup > 192.168.0.85 Server: 192.168.0.85 Address: 192.168.0.85#53

85.0.168.192.in-addr.arpa name = mail.music.com. 85.0.168.192.in-addr.arpa name = ns.music.com. 85.0.168.192.in-addr.arpa name = www.music.com.0.168.192.in-addr.arpa. > 192.168.0.95 Server: 192.168.0.85 Address: 192.168.0.85#53

95.0.168.192.in-addr.arpa name = bbs.music.com.0.168.192.in-addr.arpa.


2.5 配置dns转发服务器 [root@Centos named]# vim /etc/named.conf 配置如下参数 1 2 allow-query { any; }; forwarders { 114.114.114.114; 8.8.8.8; 223.5.5.5; 223.6.6.6; };   如下所示:

options {

       listen-on port 53 { any; };
       listen-on-v6 port 53 { ::1; };
       directory       "/var/named";
       dump-file       "/var/named/data/cache_dump.db";
       statistics-file "/var/named/data/named_stats.txt";
       memstatistics-file "/var/named/data/named_mem_stats.txt";
       recursing-file  "/var/named/data/named.recursing";
       secroots-file   "/var/named/data/named.secroots";
       allow-query     { any; };
       forwarders { 114.114.114.114; 8.8.8.8; 223.5.5.5; 223.6.6.6; };
       recursion yes;
       dnssec-enable yes;
       dnssec-validation yes;
       /* Path to ISC DLV key */
       bindkeys-file "/etc/named.root.key";
       managed-keys-directory "/var/named/dynamic";
       pid-file "/run/named/named.pid";
       session-keyfile "/run/named/session.key";

};

...省略...


3 主从复制配置 主DNS:192.168.15.98

从DNS:192.168.15.99


3.1 主DNS配置 3.1.1 主配置文件 只看“// 修改为”部分即可

[root@szxlkl01-dns-98 ~]# cat /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // // See the BIND Administrator's Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {

       listen-on port 53 { any; };                           // 修改为:any                           
       listen-on-v6 port 53 { ::1; };
       directory       "/var/named";
       dump-file       "/var/named/data/cache_dump.db";
       statistics-file "/var/named/data/named_stats.txt";
       memstatistics-file "/var/named/data/named_mem_stats.txt";
       recursing-file  "/var/named/data/named.recursing";
       secroots-file   "/var/named/data/named.secroots";
       allow-query     { any; };                         // 修改为:any;允许查询
       forwarders { 114.114.114.114; 8.8.8.8; 223.5.5.5; 223.6.6.6; };  // 修改为:外网DNS服务器;转发配置
       /* 
        - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
        - If you are building a RECURSIVE (caching) DNS server, you need to enable 
          recursion. 
        - If your recursive DNS server has a public IP address, you MUST enable access 
          control to limit queries to your legitimate users. Failing to do so will
          cause your server to become part of large scale DNS amplification 
          attacks. Implementing BCP38 within your network would greatly
          reduce such attack surface 
       */
       recursion yes;
       dnssec-enable yes;
       dnssec-validation yes;
       /* Path to ISC DLV key */
       bindkeys-file "/etc/named.root.key";
       managed-keys-directory "/var/named/dynamic";
       pid-file "/run/named/named.pid";
       session-keyfile "/run/named/session.key";

};

logging {

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

};

zone "." IN {

       type hint;
       file "named.ca";

};

include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

[root@szxlkl01-dns-98 ~]# 3.1.2 配置域名区域 只看// huawei.com后面部分

以huawei.com为例:// huawei.com后面增加一个域名区域

[root@szxlkl01-dns-98 ~]# cat /etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. //

zone "localhost.localdomain" IN {

       type master;
       file "named.localhost";
       allow-update { none; };

};

zone "localhost" IN {

       type master;
       file "named.localhost";
       allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

       type master;
       file "named.loopback";
       allow-update { none; };

};

zone "1.0.0.127.in-addr.arpa" IN {

       type master;
       file "named.loopback";
       allow-update { none; };

};

zone "0.in-addr.arpa" IN {

       type master;
       file "named.empty";
       allow-update { none; };

};

// huawei.com

zone "huawei.com" IN {

       type master;
       file "huawei.com.zone";
       masterfile-format text;
       allow-update {none;};
       allow-transfer {192.168.15.99;};
       notify yes;
       also-notify {192.168.15.99;};

}; [root@szxlkl01-dns-98 ~]# 3.1.3 配置域名解析 [root@szxlkl01-dns-98 ~]# cat /var/named/huawei.com.zone $TTL 1D $ORIGIN huawei.com. @ IN SOA ns.lalala.com. root.localhost. ( 11 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ; minimum ) @ IN NS ns1.huawei.com. @ IN NS ns2.huawei.com. ns1 IN A 192.168.15.98 ns2 IN A 192.168.15.99

vuat environment

vuat.fintech IN A 10.68.8.64 vuat.fintech IN A 10.68.8.65


3.2 从DNS配置 3.2.1 主配置文件 和主DNS一样的

3.2.2 配置域名区域 以huawei.com为例:// huawei.com后面增加一个域名区域

[root@szxlkl02-dns-99 ~]# cat /etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. //

zone "localhost.localdomain" IN {

       type master;
       file "named.localhost";
       allow-update { none; };

};

zone "localhost" IN {

       type master;
       file "named.localhost";
       allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

       type master;
       file "named.loopback";
       allow-update { none; };

};

zone "1.0.0.127.in-addr.arpa" IN {

       type master;
       file "named.loopback";
       allow-update { none; };

};

zone "0.in-addr.arpa" IN {

       type master;
       file "named.empty";
       allow-update { none; };

};


// huawei.com

zone "huawei.com" IN {

       type slave;
       masters { 192.168.15.98; };
       file "huawei.com.zone";
       masterfile-format text;

};

[root@szxlkl02-dns-99 ~]# 3.1.3 配置域名解析 从DNS不需要配置域名解析/var/named/lakala.com.zone

因为主域名更新后,执行修改serial +1后,在执行命令: rndc reload 后

从DNS对应域名配置文件/var/named/lakala.com.zone就会自动同步。

3.3 验证主从复制 3.3.1 需求:增删解析 DNS加一条记录:10.68.8.65 vuat.fintech.huawei.com

3.3.2 主DNS编辑配置文件 vim /var/named/huawei.com.zone 1、serial 号+1

2、加记录:vuat.fintech IN A 10.68.8.65 详情如下所示:

[root@szxlkl01-dns-98 ~]# vim /var/named/lakala.com.zone $TTL 1D $ORIGIN huawei.com. @ IN SOA ns.huawei.com. root.localhost. ( 12 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ; minimum ) @ IN NS ns1.huawei.com. @ IN NS ns2.huawei.com. ns1 IN A 192.168.15.98 ns2 IN A 192.168.15.99

vuat environment

vuat.fintech IN A 10.68.8.64 vuat.fintech IN A 10.68.8.65

主DNS执行同步命令

[root@szxlkl01-dns-98 ~]# rndc reload server reload successful [root@szxlkl01-dns-98 ~]# 3.3.3 从DNS上看已同步 [root@szxlkl02-dns-99 ~]# cat /var/named/lakala.com.zone $ORIGIN . $TTL 86400 ; 1 day huawei.com IN SOA ns.huawei.com. root.localhost. (

                               12         ; serial
                               86400      ; refresh (1 day)
                               3600       ; retry (1 hour)
                               604800     ; expire (1 week)
                               10800      ; minimum (3 hours)
                               )
                       NS      ns1.huawei.com.
                       NS      ns2.huawei.com.

$ORIGIN huawei.com. vuat A 192.168.15.64

                       A       192.168.15.65

3.3.4 dig命令和nslookup查看 linux客户端配置DNS为192.168.15.98和192.168.15.99

[root@szxlkl01-dns-98 ~]# mkdir /var/named/logs/

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

修改为

logging { file "/var/named/logs/bind_query.log" versions 3 10M; severity dynamic; print-category yes; print-time yes; // 表示记录日志的时间 print-severity yes; // 表示记录日志级别 }; category queries { query_log; }; // 表示queries类型的DNS日志信息全部记录到query_log这个channel中 };