CentOS通过bind配置DNS服务器

一、创建DNS主服务器

1、安装bind并配置主配置文件

主服务器为CentOS 7,主服务地址为172.16.11.55

安装bind

[[email protected] ~]# yum install bind

安装完成后查看是否存在/var/named/named.ca

这个文件包含了互联网上根服务器对应的名字和地址

备份一下/etc/named.conf

配置主配置文件/etc/named.conf

[[email protected] named]# vim /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.
//

options {
        listen-on port 53 {  172.16.11.55; 127.0.0.1;  };
#这里要加入对外监听53端口的主机地址
//        listen-on-v6 port 53 { ::1; };
#注释掉ipv6的设置
        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";
        allow-query     { any; };
#将这里改为any,表示服务器允许所有地址来查询
        /* 
         - 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;
#这里为yes表示允许递归查询

//        dnssec-enable yes;
//        dnssec-validation yes;

        /* Path to ISC DLV key */
//        bindkeys-file "/etc/named.iscdlv.key";

//        managed-keys-directory "/var/named/dynamic";
从dnssec开始到此全部注释掉
        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";

改完之后重启服务,查看53号端口是否对外监听

[[email protected] named]# systemctl restart named.service
[[email protected] named]# ss -tunl | grep 53
udp    UNCONN     0      0      172.16.11.55:53                    *:*                  
udp    UNCONN     0      0      127.0.0.1:53                    *:*                  
tcp    LISTEN     0      10     172.16.11.55:53                    *:*                  
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                  
tcp    LISTEN     0      128    127.0.0.1:953                   *:*                  
tcp    LISTEN     0      128     ::1:953                  :::*    
#可以看到已经监听到53号端口上了

在主配置文件中定义区域,编辑/etc/named.rfc1912.zones

[[email protected] named]# vim /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; };
};
#在最后增加了一个区域叫xinfeng.com
zone "xinfeng.com" IN {
#type是服务器类型,master表示为主服务器
        type master;
#file是区域解析库文件的名称,这个文件放在/var/named/下
        file "xinfeng.com.zone";
};

2、配置正向区域解析,并用dig测试

编辑完后保存,然后到/var/named/下面去创建一个xinfeng.com.zone的文件

[[email protected] named]# vim xinfeng.com.zone
$TTL 86400
#TTL表示客户端得到结果后的可缓存时长,单位是秒,这里是1天,可从全局继承
$ORIGIN xinfeng.com.
#ORIGIN定义为xinfeng.com.【注意最后有一个点】,这里定义之后,就可用后面@代替xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com (
#SOA表示起始授权纪录,之后跟上当前区域主DNS的名称,然后跟上当前主区域的管理员邮箱,邮箱中的@用.替换
                        2016041718
#2016041718表示序列号,编辑一次此文件就必须手动加1
                        1H
#1H表示刷新时间为1消失
                        5M
#5M表示重试时间为5分钟
                        7D
#7D表示过期时间为7天,也可以写成1W
                        1D )
#1D表示否定答案的时间为1天
        IN      NS      ns1
#NS专用于表示当前区域的DNS服务器,之后必须跟一个A纪录
ns1     IN      A       172.16.11.55
#A表示ipv4正向解析,ipv6为AAAA,这里解析ns1.xinfeng.com到172.16.11.55
www     IN      A       172.16.11.55
#这里解析www.xinfeng.com到172.16.11.55
ftp     IN      CNAME   www
#CNAME表示别名,这里解析ftp.xinfeng.com到www.xinfeng.com,最终解析到172.16.11.55

保存之后用named-check来检查主配置文件和区域解析文件是否有语法错误

[[email protected] named]# named-checkconf
[[email protected] named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041718
OK

OK表示没有语法错误

之后一定要记得改变文件/var/named/xinfeng.com.zone的属组为named,并改变权限为640

[[email protected] named]# ll
-rw-r--r--. 1 root  root   190 4月  14 02:42 xinfeng.com.zone
[[email protected] named]# chown :named xinfeng.com.zone 
[[email protected] named]# chmod 640 xinfeng.com.zone 
[[email protected] named]# ll
-rw-r-----. 1 root  named  190 4月  14 02:42 xinfeng.com.zone

然后重启named服务

[[email protected] named]# systemctl restart named.service

安装dig测试,dig在bind-utils包内

[[email protected] named]# yum install bind-utils
[[email protected] named]# dig -t A xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7034
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xinfeng.com.			IN	A

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:24:15 CST 2016
;; MSG SIZE  rcvd: 98

[[email protected] named]# dig -t A www.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36364
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.xinfeng.com.		IN	A

;; ANSWER SECTION:
www.xinfeng.com.	86400	IN	A	172.16.11.55

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 1 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:24:56 CST 2016
;; MSG SIZE  rcvd: 94

可以看到测试能成功解析

3、配置反向区域解析

依然要在主配置文件定义区域,编辑/etc/named.rfc1912.zone

[[email protected] named]# vim /etc/named.rfc1912.zones 
zone "xinfeng.com" IN {
        type master;
        file "xinfeng.com.zone";
};
#在刚才的正向解析之后加入下面的内容,注意网络地址要反写
zone "11.16.172.in-addr.arpa" IN {
        type master;
        file "172.16.11.zone";
};

保存之后在/var/named/中增加172.16.11.zone的区域解析库文件

[[email protected] named]# vim 172.16.11.zone
$TTL 86400
$ORIGIN 11.16.172.in-addr.arpa.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1.xinfeng.com.
55      IN      PTR     ns1.xinfeng.com.
55      IN      PTR     www.xinfeng.com.
#这里的不能有A或者AAAA纪录,PTR就是反向解析的意思,注意地址反写,其他的和正向解析没有区别

保存之后记得改属组和权限,并检查语法

[[email protected] named]# chmod 640 172.16.11.zone
[[email protected] named]# chown :named 172.16.11.zone
[[email protected] named]# named-checkzone "11.16.172.in-addr.arpa" /var/named/172.16.11.zone 
zone 11.16.172.in-addr.arpa/IN: loaded serial 2016041720
OK
[[email protected] named]# named-checkconf

显示OK语法检测OK,重启服务,并用dig测试

[[email protected] named]# systemctl restart named.service
[[email protected] named]# dig -x 172.16.11.55 @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 172.16.11.55 @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50285
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;55.11.16.172.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
55.11.16.172.in-addr.arpa. 86400 IN	PTR	www.xinfeng.com.
55.11.16.172.in-addr.arpa. 86400 IN	PTR	ns1.xinfeng.com.

;; AUTHORITY SECTION:
11.16.172.in-addr.arpa.	86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:09:54 CST 2016
;; MSG SIZE  rcvd: 131

可以看到测试正常

4、配置泛域名解析

编辑正向区域解析文件/var/nemad/xinfeng.com.zone,在其中加入*的A纪录,并且序列号加1

[[email protected] named]# vim /var/named/xinfeng.com.zone 

$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com (
                        2016041719
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
ns1     IN      A       172.16.11.55
www     IN      A       172.16.11.55
ftp     IN      CNAME   www
*       IN      A       172.16.11.55

检查语法错误

[[email protected] named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041719
OK

重载文件并用dig测试

[[email protected] named]# rndc reload
server reload successful
[[email protected] named]# dig -t A nfs.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A nfs.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37887
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nfs.xinfeng.com.		IN	A

;; ANSWER SECTION:
nfs.xinfeng.com.	86400	IN	A	172.16.11.55

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:21:13 CST 2016
;; MSG SIZE  rcvd: 94

测试正常

二、配置从服务器进行主从复制

新建一台从服务器,服务器系统为CentOS 6,地址为172.16.11.57

1、安装bind和bind-utils,并用dig测试看是否能解析到刚才我们配置的主服务

[[email protected] ~]# yum install bind
[[email protected] ~]# yum install bind-utils
[[email protected] ~]# service named start
[[email protected] ~]# ss -tunl | grep 53     
udp    UNCONN     0      0              127.0.0.1:53                    *:*         
tcp    LISTEN     0      3              127.0.0.1:53                    *:*     
tcp    LISTEN     0      128                  ::1:953                  :::*     
tcp    LISTEN     0      128            127.0.0.1:953                   *:*   
[[email protected] ~]# dig -t axfr xinfeng.com @172.16.11.55

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -t axfr xinfeng.com @172.16.11.55
;; global options: +cmd
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.
ftp.xinfeng.com.	86400	IN	CNAME	www.xinfeng.com.
ns1.xinfeng.com.	86400	IN	A	172.16.11.55
www.xinfeng.com.	86400	IN	A	172.16.11.55
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: Thu Apr 14 12:31:13 2016
;; XFR size: 6 records (messages 1, bytes 191) dig -t axfr xinfeng.com @172.16.11.55

测试结果是正常的

2、配置从服务器的主配置文件

在/etc/named.conf中按照主服务配置一样修改,对外监听端口换成本机的也就是172.16.11.57

[[email protected] ~]# vim /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.
//

options {
        listen-on port 53 { 172.16.11.57; 127.0.0.1; };
//      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";
        allow-query     { any; };
        recursion yes;

//      dnssec-enable yes;
//      dnssec-validation yes;
//      dnssec-lookaside auto;

        /* Path to ISC DLV key */
//      bindkeys-file "/etc/named.iscdlv.key";

//      managed-keys-directory "/var/named/dynamic";
};

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";
"/etc/named.conf" 43L, 1027C

编辑/etc/named.rfc1912.zone文件,在最后加入

[[email protected] ~]# vim /etc/named.rfc1912.zones 
zone "xinfeng.com" IN {
        type slave;
        masters { 172.16.11.55; };
        file "slaves/xinfeng.com.zone";
};

也就是说他的区域解析库文件放置在/var/named/slaves/下叫xinfeng.com.zone,这里我们不需要去创建编辑这个区域解析库文件,因为之后主从同步之后,会自动获得这个文件,重启服务

[[email protected] ~]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]

3、在主服务器上定义从服务器的正向解析库文件

编辑主DNS服务器的/var/named/xinfeng.com.zone文件在其中加入从服务器的A纪录和NS纪录,这里是ns2

[[email protected] named]# vim /var/named/xinfeng.com.zone 

$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
        IN      NS      ns2
ns1     IN      A       172.16.11.55
ns2     IN      A       172.16.11.57
www     IN      A       172.16.11.55
ftp     IN      CNAME   www

主服务器重载服务

[[email protected] named]# rndc reload
server reload successful

到从服务器也就是172.16.11.57下查看区域解析库文件是否同步

[[email protected] ~]# cd /var/named/slaves/
[[email protected] slaves]# ls
xinfeng.com.zone

可以看到区域解析库文件已同步成功

4、在从服务器上定义主配置文件,定义反向解析库文件位置

编辑主服务器也就是172.16.11.55的反向解析文件,加入ns2的A纪录和NS纪录,然后重载服务

[[email protected] named]# vim /var/named/172.16.11.zone 

$TTL 86400
$ORIGIN 11.16.172.in-addr.arpa.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1.xinfeng.com.
        IN      NS      ns2.xinfeng.com.
55      IN      PTR     ns1.xinfeng.com.
57      IN      PTR     ns2.xinfeng.com.
55      IN      PTR     www.xinfeng.com.
[[email protected] named]# rndc reload
server reload successful

在从服务器上也就是172.16.11.57上编辑/etc/named.rfc1912.zone文件,在最后加入

[[email protected] ~]# vim /etc/named.rfc1912.zones 
zone "11.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.11.55; };
        file "slaves/172.16.11.zone";
};

完成后重载从服务器,就会同步主服务器上的反向解析库文件

[[email protected] ~]# rndc reload
server reload successful
[[email protected] ~]# cd /var/named/slaves/
[[email protected] slaves]# ls
172.16.11.zone  xinfeng.com.zone
[[email protected] slaves]# cat 172.16.11.zone
$ORIGIN .
$TTL 86400	; 1 day
11.16.172.in-addr.arpa	IN SOA	ns1.xinfeng.com. admin.xinfeng.com. (
				2016041720 ; serial
				3600       ; refresh (1 hour)
				300        ; retry (5 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS	ns1.xinfeng.com.
$ORIGIN 11.16.172.in-addr.arpa.
55			PTR	ns1.xinfeng.com.
			PTR	www.xinfeng.com.

区域解析库文件同步成功

需要注意的是,主从服务器的bind版本需要一致,而且一定不要更改从服务器的区域解析库文件,只需要改主服务器的区域解析库文件。

三、子域授权

父域为172.16.11.55,子域为172.16.9.9

1、定义父域

进入父域服务器172.16.11.55,编辑/var/named/xinfeng.com.zone也就是父域的正向解析库文件,在其中加入子域的NS纪录和A纪录

[[email protected] ~]# vim /var/named/xinfeng.com.zone 
$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
        IN      NS      ns2
ns1     IN      A       172.16.11.55
ns2     IN      A       172.16.11.57
www     IN      A       172.16.11.55
ftp     IN      CNAME   www
tv      IN      NS      ns1.ops
ns1.ops IN      A       172.16.9.9
[[email protected] ~]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041720
OK
[[email protected] ~]# rndc reload
server reload successful

检查语法正确,并重载后,

2、定义子域

进入子域服务器172.16.9.9

新服务器重新编辑/etc/named.conf,之后开起服务

[[email protected] ~]# vim /etc/named.conf 
[[email protected] ~]# systemctl start named.service
[[email protected] ~]# ss -tunl | grep 53
udp    UNCONN     0      0      172.16.9.9:53                    *:*                  
udp    UNCONN     0      0      127.0.0.1:53                    *:*                  
tcp    LISTEN     0      10     172.16.9.9:53                    *:*                  
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                  
tcp    LISTEN     0      128    127.0.0.1:953                   *:*                  
tcp    LISTEN     0      128     ::1:953                  :::*

编辑子域172.16.9.9的/etc/named.rfc1912.zones ,在后面加入

[[email protected] ~]# vim /etc/named.rfc1912.zones 
zone "tv.xinfeng.com" IN {
        type master;
        file "tv.xinfeng.com.zone";
};
[[email protected] ~]# rndc reload
server reload successful

编辑子域172.16.9.9的/var/named/tv.xinfeng.com.zone

[[email protected] ~]# vim /var/named/tv.xinfeng.com.zone
$TTL 1d
$ORIGIN tv.xinfeng.com.
@       IN      SOA     ns1.tv.xinfeng.com. admin.tv.xinfeng.com. (
                        2016041722
                        1H
                        10M
                        3D
                        1D )
        IN      NS      ns1
ns1     IN      A       172.16.9.9
www     IN      A       172.16.9.9         
[[email protected]]# chown :named tv.xinfeng.com.zone 
[[email protected]]# chmod 640 tv.xinfeng.com.zone 
[[email protected] ~]# rndc reload
server reload successful

3、测试解析

测试子域能否解析自己范围的

[[email protected]]# dig -t A ns1.tv.xinfeng.com @172.16.9.9
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A ns1.tv.xinfeng.com @172.16.9.9
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56031
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.tv.xinfeng.com.INA
;; ANSWER SECTION:
ns1.tv.xinfeng.com.    86400    IN    A    172.16.9.9
;; AUTHORITY SECTION:
tv.xinfeng.com.        86400    IN    NS    ns1.tv.xinfeng.com.
;; Query time: 0 msec
;; SERVER: 172.16.9.9#53(172.16.9.9)
;; WHEN: 一 3月 21 07:58:01 CST 2016
;; MSG SIZE  rcvd: 77

测试成功,测试父域能否解析子域的

[[email protected] ~]# dig -t A www.tv.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.tv.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61635
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.tv.xinfeng.com.		IN	A

;; Query time: 2 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 06:38:48 CST 2016
;; MSG SIZE  rcvd: 47

测试成功

四、区域转发

1、父域定义全部转发

在父域服务器172.16.11.55编辑/etc/named.conf主配置文件

[[email protected] ~]# vim /etc/named.conf
#在options中注释掉
//      allow-query     { any; };
#在options中增加
        forward first;
        forwarders { 114.114.114.114; };
[[email protected] ~]# rndc reload
server reload successful

2、子域定义区域转发

在子域服务器172.16.9.9编辑/etc/named.rfc1912.zones文件,在最后添加zone

[[email protected]]# vim /etc/named.rfc1912.zones
zone "xinfeng.com" IN {
        type forward;
        forward only;
        forwarders { 172.16.11.55; };
};
[[email protected] named]# rndc reload
server reload successful

【注意】:若全部转发和区域转发在一台服务器上同时启用,则能精确匹配区域转发的则区域转发,其他的由全部转发负责

五、view

1、编辑DNS服务器的主配置文件/etc/named.conf,将其中的默认zone剪切到/etc/named.rfc1912.zone中

[[email protected] ~]# vim /etc/named.conf
#将以下删除
zone "." IN {
        type hint;
        file "named.ca";
};
[[email protected] ~]# vim /etc/named.rfc1912.zones
#放在此文件最顶端

2、编辑/etc/named.conf,在顶端定义几个acl

[[email protected] ~]# vim /etc/named.conf
acl mynet {
        172.16.0.0/16;
        127.0.0.0/8;
};

3、编辑/etc/named.rfc1912.zone

[[email protected] ~]# vim /etc/named.rfc1912.zones
view internal {
        match-clients { mynet; };
        allow-recursion { mynet; };
zone {
...};
zone {
...};
zone{
...};

};
#用view来控制所有zone
[[email protected] ~]# named-checkconf 
[[email protected] ~]# systemctl restart named.service

把能和172.16.11.55的主机地址加入/etc/named.rfc1912.zone的match-clients,然后用dig测试,再删除测试

4、注意事项

一个bind服务器可定义多个view,每个view中可定义一个或多个zone

每个view用一来匹配一组客户端

多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件

一旦启用了view,所有的zone都只能定义在view中

仅有必要在匹配到允许递归请求的客户所在view中定义根区域

客户端请求到达时,是自上而下检查每个view所服务的客户端列表

六、总结

配置一个DNS服务器的过程:

1、配置DNS主配置文件:/etc/named.conf

2、定义区域文件:/etc/named.rfc1912.zone

3、配置区域文件中对应的区域解析库文件:/var/named/ZONE_NAME.zone

4、重载服务:rndc reload

5、测试:dig

时间: 2024-11-05 16:01:42

CentOS通过bind配置DNS服务器的相关文章

烂泥:centos安装及配置DNS服务器

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过DNS软件BIND为例,进行实验. 本次实验:OS centos6.5 64bit 安装DNS软件,使用如下命令: yum -y install bind bind-chroot bind-utils BIND配置文件保存在两个主要位置: /etc/named.conf 这个是BIND服务主配置文件

在Debian上用Bind 配置DNS服务器

1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,DNS是什么? --DNS,DomainName Service,或者Domain Name Server,域名服务/域名服务器. 你在你的浏览器里面输入http://www.linuxsir.com之后,之所以可以上去,就是因为有了DNS. 简单地说,DNS把一串名字,转换成了IP地址.你可能会说:

CentOS安装和配置dns服务器

(1)dns介绍 1.基本介绍 名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名,www.baidu.com hosts文件: 作用:实现名字解析,主要为本地主机名丶集群节点提供快速解析,集中式数据库 dns服务器: 作用:实现名字解析(将主机名解析成ip地址),分布式数据库 2.dns解析流程:客户端解析www.baidu.com 1)客户端查询自己的缓存(windows中的hosts文件也是缓存),如果没有将查询发送到/etc/resolv.co

Centos 7.0 配置DNS服务器(主从配置)

本章博文对DNS服务器进行了简述,并搭建实验模拟Centos 7.0配置Master DNS服务器 及配置Slave (冗余)  DNS服务器 . DNS简介:    DNS定义:   DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 过

红帽7(centos 7 )配置DNS服务器

配置DNS前,我们有必要了解一下DNS的作用等: DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53 接下来安装named服务和nslookup. yum install bind-chroot -y yum install bind-uti

CentOS 7.4搭建DNS服务器实现主从同步

CentOS 7.4搭建DNS服务器实现主从同步相关概念:正向解析:将域名解析成IP地址反向解析:将IP地址解析成域名第一步:准备工作systemctl stop firewalld //关闭防火墙setenforce 0 //关闭selinuxyum install bind //安装DNS服务第二步:编辑配置文件1.编辑主配置文件vi /etc/named.conf //主配置文件options {listen-on port 53 { 192.168.80.101; }; //改成自己服务

学习记录——配置DNS服务器

一实验准备工作 主DNS服务器 1.配置主机域名 [[email protected] ~]# hostname xuan.com   ///临时修改名,永久修改需要去/etc/sysconfig/network 修改.然后记住在/etc/hosts 里更新自己的域,为了方便实验,先修改了名字 2.取消dhcp,ip地址改为静态 3.安装DNS [[email protected] -]# yum -y install bind 二配置DNS服务器 1.查看安装文件目录 [[email prot

redhat 6.5 & windows 配置DNS服务器

场景描述: 某客户处,企业内有多台Linux搭建的DNS服务器,也有多台windows 搭建的DNS服务器.某客户想把Linux的DNS服务器添加到windows 的DNS服务器上的"反向查找区域".如下图所示: 环境搭建: 说明:windows的DNS服务器搭建略过,本文将重点介绍使用redhat 6.5搭建DNS服务器. Redhat 6.5搭建DNS服务器之环境介绍: 一台windows DNS服务器,计算机名:dc01.contoso.com,IP:192.168.10.10

RedHat6.3配置DNS服务器

RedHat6.3配置DNS服务器 作者:沈小然 北京证联支付有限责任公司 1         系统环境 OS:Red Hat Enterprise Linux Server release 6.3 (Santiago) DNS 服务器:172.21.20.1/255.255.0.0 2         安装DNS # yum -y install bind 3         配置DNS 3.1           开始配置DNS主配置文件 named.conf 编辑 /etc/named.c