DNS是什么

DNS:Domain Name System,域名系统

DNS作为域名和IP地址相互映射的一个分布式数据库,能够让用户更方便的访问互联网。它的正向映射是把一个主机和IP地址关联起来,它的反向映射则是IP地址到主机名。DNS使用TCP和UDP的53号端口。当前,对于每一级域名长度的限制是63个字符,域名总长度不能超过253个字符。

为什么要用DNS

连接到互联网的主机不计其数。当我要访问www.magedu.com这个网站。由于底层网络只能理解IP地址,而我的电脑不知道www.magedu.com这台主机的IP地址。DNS服务器收到查询请求之后,把查询到的结果(IP:101.200.188.230)再返还给我的电脑。然后我的电脑再通过IP地址进行访问。  

wKioL1ddI8iROCm-AADp5FlwnmU856.png

如图所示:

    1、本机向DNS服务器发送查询请求。

    2、DNS服务器将查询的结果返还给本机。

    3、本机通过IP地址访问www.magedu.com。

域名:

    DNS名称空间被组织成一个“树”形结构。每个完成的域名(例如,www.magedu.com)是这颗树的分支上的一个节点。完整限定域名(FQDN,Fully Qualified Domain Name)是到一个DNS对象的完整路径,包括最后一个点。

wKioL1ddJB3QeZ4SAAEIGxahSug847.png


以上述的域名为例说明,magedu网址是由两部分组成,标号magedu是这个域名的主体,而最后的标号com则是该域名的后缀,代表的这是一个com国际域名,是顶级域名。而前面的www是网络名,为www的域名。DNS规定,域名中的标号由英文字母和数字组成,每个组成部分(标号)不能超过63个字符,整个FQDN(完整域名)全长不超过256个字符。FQDN不区分大小写,但是他们通常都采用小写。RFC2181对域名放开了限制。


域名级别

域名分为:

国际顶级域名:.com, .net, .org, .edu等

国家地区顶级域名:.cn, .de, .jp, .hk, .uk, .us等

除了顶级域名外,还有二级域名,就是靠近顶级域名左侧的字段。如:www.magedu.com中,.magedu就是二级域名。接下来还有三级域名,即靠近二级域名的左侧的字段,以此类推还有四级域名等。


DNS查询类型:

递归查询:客户端向根服务器发送请求,根服务器并不返回真实的答案,而是推荐它下级的服务器,以此类推,直到查询IP地址返回给客户机。

迭代查询:客户机向DNS服务器发送请求,DNS服务器直接回复答案给客户机。


域名解析

正向解析:FQDN到IP地址的解析。

反向解析:IP地址到FQDN的解析。


域名服务器的分类

服务器的类型说明
主服务器维护所负责解析的域内解析库的服务器
从服务器从主DNS服务器或其它从DNS服务器“复制”(区域传送)一份解析库
缓存服务器

缓存以前的查询,通常没有本地的区

转发服务器负责非本地域名的本地查询


一次完整的查询过程

以上述域名www.magedu.com为例。客户机向最近的远端DNS服务器发送查询请求,DNS服务器首先查看缓存中是否有www.magedu.com这条记录。如果没有就向根服务器发送查询请求,根服务器会告诉你要去请求.com顶级服务器。之后DNS服务器再向顶级域名服务器发送查询请求,得到的回复是向.magedu这个二级域名服务器发送查询请求。最终,DNS服务器向二级域名发送请求并得到正确答案返回给客户机。同时将此次查询的结果写入缓存之中,以便下次的查询。

wKioL1ddLoSic0jUAACaGXDjeEQ223.png

资源记录

DNS层次结构中的每一个区(zone),都有与之相关的一组资源记录。资源记录的基本格式是:

name [TTL] IN rr_type value


记录的类型

类型名称功能
SOAStart Of Authority

定义一个DNS区

NSName Server标识服务器,授权子域
AIPv4 Address名称到地址的转换
AAAAIPv6 Address名称到IPv6地址的转换
PTRPointer地址到名字的转换
MXMail Exchanger控制邮件的路由
CNAMECanonical Name主机的呢称或别名

记录的类型解释

SOA

一个SOA记录标记出一个区,即位于DNS域名空间中相同位置的一组资源记录的开始位置。一个DNS域的数据通常至少包括两个区:一个区用来把主机名转换成IP地址,称为正向区,其他一些区把IP地址反向映射到主机名,称为反向区。

例如:
magedu.com.    86400    IN  SOA    ns.magedu.com.  admin.magedu.com.    (
               2016040201    ; 序列号
               2H    ;刷新时间
               10M    ;重试时间
               1W    ;过期时间
               1D    ;否定答案的TTL值
)

NS

NS(域名服务器)记录标识一个区的权威服务器(主服务器和从服务器),并把子域授权给其他机构。NS记录通常直接放在这个区的SOA记录后面。

注意:一个区域可以有多条NS记录
例如:
magedu.com.  IN  NS  ns1.magedu.com.
magedu.com.  IN  NS  ns2.magedu.com.
 
注意:
相邻的两个资源记录的name相同时,后续的可以省略。
对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录。

MX

电子邮件系统使用MX记录来更有效地路由邮件。MX记录优先于邮件发送方所指定的目的地址,在大多数情况下,它将邮件指向接收方网点的邮件主机。

一个区域内,MX记录可有多个,但是每个记录的value之前应该有一个数字(0-99)。表示此服务器的优先级,数字越小优先级越高。
例如:
magedu.com.  IN  MX 10  mx1.magedu.com.
             IN  MX 20  mx2.magedu.com.
 
注意:
    对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录。

A

A记录是DNS数据库的核心。它们提供了主机名到IP地址的映射,而这以前是在/etc/hosts文件中指定的。一个主机通常给它的每个网络端口都有一条A记录。

例如:
ns1  IN  A  101.200.188.230

AAAA

AAAA记录提供主机名到IPv6地址的映射。

PTR

PTR记录提供IP地址到主机名的反向映射。反向映射记录存在于in-addr.arpa这个域,并且以IP地址各字节逆序的形式命名。

例如:
101  IN  PTR  www.magedu.com.

CNAME

CNAME记录为之前多分配几个名字。通常,这些别名要么用来将某项功能与主机关联起来,要么用来缩短一个长主机名。

例如:
web.magedu.com.  IN  CNAME  www.magedu.com.


BIND

BIND指Berkeley Internet Name Domain(伯克利因特网域名)系统,它是ISC提供的一种开源软件包,为Linux、Unix、Mac OS和Windows系统实现了DNS协议。


BIND安装

# yum -y install bind bind-utils


BIND简介

    dns:协议

    bind:dns协议的一种实现

    named:bind程序运行的进程名

    bind-libs:被bind和bind-utils包中的程序共同用到的库文件

    bind-utils:bind客户端程序集,例如:dig,host,nslookup等

    bind:提供的dns server程序,已经几个常用的测试程序

    bind-chroot:选装,让named运行于jail模式下


bind配置文件说明

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

  或包含进来的其它文件

    /etc/named.iscdly.key

    /etc/named.rfc1912.zones

    /etc/named.root.key

  区域配置文件一般在/etc/named.rfc1912.zones,全局配置在/etc/named.conf中

    1、主配置文件格式:

    全局配置段:

      options { ... }; #注意内容前后有空格,分号结尾

    日志配置段:

      logging { ... };

    区域配置段:

      zone { ... };

      配置那些由本机负责解析的区域,或转发的区域

    注意:每个语句必须以分号结尾

    2、缓存名称服务器的配置:(注意此处的配置应该在使用前操作)

    监听能与外部主机通信的地址:

      listen-on port 53 { 192.168.130.242; };

    一般情况,建议关闭dnssec(基本上用不到,而且很麻烦,反正我是不知道。。)

       dnssec-enable no;

      dnssec-validation no;

      dnssec-lookaside no;   #或者在前面加俩个//;

    修改仅允许本地查询:

      allow-query { any; };  #或者注释掉

解析库文件

    /var/nanmed/目录下:

                一般名字为:ZONE_NAME.zone

                        例如:bjwf.com.zone

                                    192.168.130.zone

                注意:

                        1、一台DNS服务器可同时为多个区域提供解析

                        2、必须要有跟区域解析库文件:named.ca

                        3、还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库

                                正向:named.localhost            

                                反向:named.loopback

检查配置文件语法错误

    named-checkconf [/etc/named.conf]

    named-checkzone ZONE_NAME ZONE_FILE

# named-checkconf
# named-checkzone bjwf.com /var/named/bjwf.com.zone 
zone bjwf.com/IN: loaded serial 2016061202
OK
测试及管理工具

 dig命令:

        语法:dig [ -t RR_TYPE] name [@SERVER] [query options]

        作用:用于测试DNS系统,因此其不会查询hosts文件

            查询选项:

                    +[no]trace:跟踪解析过程

                    +[no]recurse:进行递归解析

#正向解析
# dig -t A ns1.bjwf.com @192.168.130.240

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

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

;; ANSWER SECTION:
ns1.bjwf.com.		86400	IN	A	192.168.130.240

;; AUTHORITY SECTION:
bjwf.com.		86400	IN	NS	ns2.bjwf.com.
bjwf.com.		86400	IN	NS	ns1.bjwf.com.

;; ADDITIONAL SECTION:
ns2.bjwf.com.		86400	IN	A	192.168.130.241

;; Query time: 1 msec
;; SERVER: 192.168.130.240#53(192.168.130.240)
;; WHEN: 一 6月 13 16:55:05 CST 2016
;; MSG SIZE  rcvd: 105

#反向解析
# dig -x 202.106.0.20

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

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

;; ANSWER SECTION:
20.0.106.202.IN-ADDR.ARPA. 38400 IN	PTR	c1-xingfudajie-ns2.

;; Query time: 6 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: 一 6月 13 17:31:52 CST 2016
;; MSG SIZE  rcvd: 111

#模拟完全区域传送
# dig -t axfr DOMAIN [@server]
# dig -t axfr bjwf.com. @192.168.130.240

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t axfr bjwf.com. @192.168.130.240
;; global options: +cmd
bjwf.com.		86400	IN	SOA	ns1.bjwf.com. admin.bjwf.com. 2016061202 3600 300 604800 86400
bjwf.com.		86400	IN	NS	ns1.bjwf.com.
bjwf.com.		86400	IN	NS	ns2.bjwf.com.
ns1.bjwf.com.		86400	IN	A	192.168.130.240
ns2.bjwf.com.		86400	IN	A	192.168.130.241
www.bjwf.com.		86400	IN	A	192.168.130.241
bjwf.com.		86400	IN	SOA	ns1.bjwf.com. admin.bjwf.com. 2016061202 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 192.168.130.240#53(192.168.130.240)
;; WHEN: 一 6月 13 17:33:44 CST 2016
;; XFR size: 7 records (messages 1, bytes 192)

 host命令:

        host [ -t RR_TYPE] name SERVER_IP

# host 192.168.130.240
240.130.168.192.in-addr.arpa domain name pointer bogon.
# host -t A www.bjwf.com
www.bjwf.com has address 192.168.130.241

nslookup命令:

        nslookup [ -options] [name] [server]

# nslookup www.bjwf.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	www.bjwf.com
Address: 192.168.130.241

rndc命令:named服务控制命令 

# rndc status
version: 9.9.4-RedHat-9.9.4-29.el7_2.3 <id:8f9657aa>
CPUs found: 4
worker threads: 4
UDP listeners per interface: 4
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

配置一个主DNS服务器

以bjwf.com域为例:

1、定义主配置文件

# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.130.242; };
        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 no; 
        dnssec-validation no;
        
        /* 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";

2、定义区域配置文件

# vim /etc/named.rfc1912.zones
zone "bjwf.com" IN {
        type master;
        file "bjwf.com.zone";
};

zone "130.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.130.zone";
};
#注意:区域名字即为域名

3、建立区域数据文件(主要为A或AAAA记录等)

    在/var/named/目录下建立区域数据文件

# vim /var/named/bjwf.com.zone   (正向区域文件)
$TTL 86400
@       IN      SOA     ns1.bjwf.com.   admin.bjwf.com. (
                        2016061301
                        1H
                        5M
                        7D
                        1D      )
        IN      NS      ns1.bjwf.com.
        IN      NS      ns2.bjwf.com.
        IN      MX  10  mx1
        IN      MX  15  mx2
mx1     IN      A       192.168.130.111
mx2     IN      A       192.168.130.112
ns1     IN      A       192.168.130.242
ns2     IN      A       192.168.130.243
www     IN      A       192.168.130.240

# vim /var/named/192.168.130.zone   (反向区域文件)
$TTL 86400
@	IN	SOA	ns1.bjwf.com.	admin.bjwf.com.	(
			2016061401	
			1H
			5M
			7D
			1D
)
	IN	NS	ns1.bjwf.com.
	IN	NS	ns2.bjwf.com.
242	IN	NS	ns1.bjwf.com.
243	IN	NS	ns2.bjwf.com.
240	IN	PTR	www.bjwf.com.
245	IN	PTR	ftp.bjwf.com.

4、检查配置文件并修改区域配置文件权限

#检查语法
# named-checkconf
# named-checkzone "bjwf.com" bjwf.com.zone 
zone bjwf.com/IN: loaded serial 2016061301
OK
# named-checkzone "130.168.192.in-addr.arpa" 192.168.130.zone 
zone 130.168.192.in-addr.arpa/IN: loaded serial 2016061301
OK
#修改权限及属组
# chown root:named 192.168.130.zone 
# chown root:named bjwf.com.zone 
# chmod 640 192.168.130.zone 
# chmod 640 bjwf.com.zone 
# ll
-rw-r----- 1 root  named  261 Jun 14 11:01 192.168.130.zone
-rw-r----- 1 root  named  291 Jun 13 18:00 bjwf.com.zone

5、启动服务器并查询

# service named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
# netstat -tunlp|grep 53
tcp  0      0 192.168.130.242:53  0.0.0.0:*      LISTEN      3019/named          
tcp  0      0 127.0.0.1:953       0.0.0.0:*      LISTEN      3019/named          
tcp  0      0 ::1:953             :::*           LISTEN      3019/named          
udp  0      0 192.168.130.242:53  0.0.0.0:*                  3019/named  

#查询
# dig -t A www.bjwf.com @192.168.130.242  (正向)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.bjwf.com @192.168.130.242
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2828
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.bjwf.com.			IN	A

;; ANSWER SECTION:
www.bjwf.com.		86400	IN	A	192.168.130.240

;; AUTHORITY SECTION:
bjwf.com.		86400	IN	NS	ns2.bjwf.com.
bjwf.com.		86400	IN	NS	ns1.bjwf.com.

;; ADDITIONAL SECTION:
ns1.bjwf.com.		86400	IN	A	192.168.130.242
ns2.bjwf.com.		86400	IN	A	192.168.130.243

;; Query time: 0 msec
;; SERVER: 192.168.130.242#53(192.168.130.242)
;; WHEN: Tue Jun 14 13:22:16 2016
;; MSG SIZE  rcvd: 114

# dig -x 192.168.130.240 @192.168.130.242  (反向)

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.130.240 @192.168.130.242
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49513
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;240.130.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
240.130.168.192.in-addr.arpa. 86400 IN	PTR	www.bjwf.com.

;; AUTHORITY SECTION:
130.168.192.in-addr.arpa. 86400	IN	NS	ns2.bjwf.com.
130.168.192.in-addr.arpa. 86400	IN	NS	ns1.bjwf.com.

;; ADDITIONAL SECTION:
ns1.bjwf.com.		86400	IN	A	192.168.130.242
ns2.bjwf.com.		86400	IN	A	192.168.130.243

;; Query time: 0 msec
;; SERVER: 192.168.130.242#53(192.168.130.242)
;; WHEN: Tue Jun 14 13:22:36 2016
;; MSG SIZE  rcvd: 140


配置从DNS服务器

1、定义主配置文件

# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.130.243; };
//      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;
# vim /etc/named.rfc1912.zones        
zone "bjwf.com" IN {                   #正向解析
        type slave;                    #类型从DNS
        masters { 192.168.130.242; };  #主DNS的IP地址
        file "slaves/bjwf.com.zone";   #bjwf.com.zone拷贝到slaves文件夹下
};

zone "130.168.192.in-addr.arpa" IN {    #反向解析
        type slave;                     #类型从DNS
        masters { 192.168.130.242; };   #主DNS的IP地址
        file "slaves/192.168.130.zone"; #192.168.130.zone拷贝到salves文件夹下
};

# service named start     #重启服务
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]

#查看同步过来的文件
# cat bjwf.com.zone 
$ORIGIN .
$TTL 86400	; 1 day
bjwf.com		IN SOA	ns1.bjwf.com. admin.bjwf.com. (
				2016061301 ; serial            #版本号
				3600       ; refresh (1 hour)  #更新时间
				300        ; retry (5 minutes) #更新失败,重试更新时间
				604800     ; expire (1 week)   #更新失败多长时间后此DNS失效时间
				86400      ; minimum (1 day)   #解析不到请求不予回复的时间
				)
			NS	ns1.bjwf.com.   #域名服务器
			NS	ns2.bjwf.com.   #域名服务器
$ORIGIN bjwf.com.
ns1			A	192.168.130.242 #ns1域名服务器的地址
ns2			A	192.168.130.243 #ns2域名服务器的地址
www			A	192.168.130.240 #www服务器的地址

# cat 192.168.130.zone 
$ORIGIN .
$TTL 86400	; 1 day
130.168.192.in-addr.arpa IN SOA	ns1.bjwf.com. admin.bjwf.com. (
				2016061401 ; serial
				3600       ; refresh (1 hour)
				300        ; retry (5 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS	ns1.bjwf.com.
			NS	ns2.bjwf.com.
$ORIGIN 130.168.192.in-addr.arpa.
240			PTR	www.bjwf.com.
242			NS	ns1.bjwf.com.
243			NS	ns2.bjwf.com.
245			PTR	ftp.bjwf.com.

2、更新数据查看同步

# vim /var/named/bjwf.com.zone
$TTL 86400
@       IN      SOA     ns1.bjwf.com.   admin.bjwf.com. (
                        2016061302    #版本号修改了
                        1H
                        5M
                        7D
                        1D
)
        IN      NS      ns1.bjwf.com.
        IN      NS      ns2.bjwf.com.
ns1     IN      A       192.168.130.242
ns2     IN      A       192.168.130.243
www     IN      A       192.168.130.240
p_w_picpath   IN      A       192.168.130.10   #新增A记录
img     IN      CNAME   p_w_picpaths           #新增CNAME记录
# vim /var/named/192.168.130.zone
$TTL 86400
@       IN      SOA     ns1.bjwf.com.   admin.bjwf.com. (
                        2016061402   #版本号加一
                        1H
                        5M
                        7D
                        1D
)
        IN      NS      ns1.bjwf.com.
        IN      NS      ns2.bjwf.com.
242     IN      NS      ns1.bjwf.com.
243     IN      NS      ns2.bjwf.com.
240     IN      PTR     www.bjwf.com.
245     IN      PTR     ftp.bjwf.com.
10      IN      PTR     p_w_picpath.bjwf.com.   #新增的记录

# rndc reload
server reload successful    #重载一下

#在从服务器上查看一下
# cat bjwf.com.zone 
$ORIGIN .
$TTL 86400	; 1 day
bjwf.com		IN SOA	ns1.bjwf.com. admin.bjwf.com. (
				2016061302 ; serial
				3600       ; refresh (1 hour)
				300        ; retry (5 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS	ns1.bjwf.com.
			NS	ns2.bjwf.com.
$ORIGIN bjwf.com.
p_w_picpath			A	192.168.130.10    #新增的同步完成
img			CNAME	p_w_picpaths
ns1			A	192.168.130.242
ns2			A	192.168.130.243
www			A	192.168.130.240

# cat 192.168.130.zone 
$ORIGIN .
$TTL 86400	; 1 day
130.168.192.in-addr.arpa IN SOA	ns1.bjwf.com. admin.bjwf.com. (
				2016061402 ; serial
				3600       ; refresh (1 hour)
				300        ; retry (5 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS	ns1.bjwf.com.
			NS	ns2.bjwf.com.
$ORIGIN 130.168.192.in-addr.arpa.
10			PTR	p_w_picpath.bjwf.com.    #新增的同步完成
240			PTR	www.bjwf.com.
242			NS	ns1.bjwf.com.
243			NS	ns2.bjwf.com.
245			PTR	ftp.bjwf.com.

3、在从服务器上测试一下

# dig -t A img.bjwf.com @192.168.130.242

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A img.bjwf.com @192.168.130.242
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 1755
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;img.bjwf.com.			IN	A

;; ANSWER SECTION:
img.bjwf.com.		86400	IN	CNAME	p_w_picpaths.bjwf.com.

;; AUTHORITY SECTION:
bjwf.com.		86400	IN	SOA	ns1.bjwf.com. admin.bjwf.com. 2016061302 3600 300 604800 86400

;; Query time: 1 msec
;; SERVER: 192.168.130.242#53(192.168.130.242)
;; WHEN: Tue Jun 14 15:23:41 2016
;; MSG SIZE  rcvd: 97

# dig -t A img.bjwf.com @192.168.130.243

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A img.bjwf.com @192.168.130.243
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 24987
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;img.bjwf.com.			IN	A

;; ANSWER SECTION:
img.bjwf.com.		86400	IN	CNAME	p_w_picpaths.bjwf.com.

;; AUTHORITY SECTION:
bjwf.com.		86400	IN	SOA	ns1.bjwf.com. admin.bjwf.com. 2016061302 3600 300 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.130.243#53(192.168.130.243)
;; WHEN: Tue Jun 14 15:23:53 2016
;; MSG SIZE  rcvd: 97                      #可以看出主从上都一样

# dig -x 192.168.130.10 @192.168.130.243   #反向解析也没有问题

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.130.10 @192.168.130.243
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37022
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;10.130.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
10.130.168.192.in-addr.arpa. 86400 IN	PTR	p_w_picpath.bjwf.com.

;; AUTHORITY SECTION:
130.168.192.in-addr.arpa. 86400	IN	NS	ns1.bjwf.com.
130.168.192.in-addr.arpa. 86400	IN	NS	ns2.bjwf.com.

;; ADDITIONAL SECTION:
ns1.bjwf.com.		86400	IN	A	192.168.130.242
ns2.bjwf.com.		86400	IN	A	192.168.130.243


子域授权

一、子域配置

1、主域服务器配置

# vim /var/named/bjwf.com.zone 
$TTL 86400
@	IN	SOA	ns1.bjwf.com.	admin.bjwf.com.	(
			2016061303
			1H
			5M
			7D
			1D
)
	IN	NS	ns1.bjwf.com.
	IN 	NS 	ns2.bjwf.com.
ns1	IN	A	192.168.130.242
ns2	IN	A	192.168.130.243
www	IN	A	192.168.130.240
p_w_picpath	IN	A	192.168.130.10
img	IN	CNAME	p_w_picpaths

test	IN	NS	ns1.test.bjwf.com.
ns1	IN	A	192.168.130.244

# rndc reload    #重载服务
server reload successful

2、子域服务器配置

(1)、修改主配置文件及区域定义文件

# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.130.244; };
        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;
# vim /etc/named.rfc1912.zones
zone "test.bjwf.com" IN {
        type master;
        file "test.bjwf.com.zone";
};

(2)、定义区域文件

# vim /var/named/test.bjwf.com.zone
$TTL 86400
@       IN      SOA     ns1.test.bjwf.com.      admin.test.bjwf.com.    (
                        2016061401
                        1H
                        2M
                        7D
                        1D
)
        IN      NS      ns1.test.bjwf.com.
ns1     IN      A       192.168.130.244
www     IN      A       192.168.130.20

# chown :named test.bjwf.com.zone
# chmod 640 test.bjwf.com.zone
# named-checkconf 
# named-checkzone "test.bjwf.com" test.bjwf.com.zone 
zone test.bjwf.com/IN: loaded serial 2016061401
OK

# service named start   #启动子域进行测试
Starting named:                                            [  OK  ]

# dig -t A www.test.bjwf.com @192.168.130.244   #通过子域测试可以实现

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.test.bjwf.com @192.168.130.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2134
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.test.bjwf.com.		IN	A

;; ANSWER SECTION:
www.test.bjwf.com.	86400	IN	A	192.168.130.20

;; AUTHORITY SECTION:
test.bjwf.com.		86400	IN	NS	ns1.test.bjwf.com.

;; ADDITIONAL SECTION:
ns1.test.bjwf.com.	86400	IN	A	192.168.130.244

;; Query time: 0 msec
;; SERVER: 192.168.130.244#53(192.168.130.244)
;; WHEN: Tue Jun 14 16:06:50 2016
;; MSG SIZE  rcvd: 85

# dig -t A www.test.bjwf.com @192.168.130.242  #通过主域查询不到

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.test.bjwf.com @192.168.130.242
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 20380
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.test.bjwf.com.		IN	A

;; Query time: 1 msec
;; SERVER: 192.168.130.242#53(192.168.130.242)
;; WHEN: Tue Jun 14 16:06:53 2016
;; MSG SIZE  rcvd: 35


二、DNS转发

DNS转发,一般指向外网的dns服务器,当本地没有记录时会向外网dns服务器发起查询请求。

注意:被转发的服务器必须允许为当前服务做递归;

    1、区域转发:仅转发对某特定区域的解析请求:

        zone "ZONE_NAME" IN {

          type forward;

            forward (first|only);   #配置文件中不能有扣号。centos6.7中测试

        };

      first:首先转发;转发器不响应时,自行去迭代查询;

      only:只转发;

    2、全局转发:针对凡本地没有通过zone定义的区域查询请求,通通抓给某转发服务器。

        options {

            ... ...

            forward {only|first};

            forwarders {SERVER_IP;};

            ... ...

            };


(1)、首先在主从服务器上分别配置子域转发。

# vim /etc/named.rfc1912.zones
zone "test.bjwf.com" IN {
        type forward;
        forward only;
        forwarders { 192.168.130.244; };
};
# rndc reload  或 service named restart      #分别主从DNS服务器上执行

#测试
# dig -t A www.test.bjwf.com @192.168.130.244     #在子域测试

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.test.bjwf.com @192.168.130.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22532
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.test.bjwf.com.		IN	A

;; ANSWER SECTION:
www.test.bjwf.com.	86400	IN	A	192.168.130.20

;; AUTHORITY SECTION:
test.bjwf.com.		86400	IN	NS	ns1.test.bjwf.com.

;; ADDITIONAL SECTION:
ns1.test.bjwf.com.	86400	IN	A	192.168.130.244

;; Query time: 0 msec
;; SERVER: 192.168.130.244#53(192.168.130.244)
;; WHEN: Tue Jun 14 16:28:54 2016
;; MSG SIZE  rcvd: 85

# dig -t A www.test.bjwf.com @192.168.130.242    #主域测试

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.test.bjwf.com @192.168.130.242
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11415
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.test.bjwf.com.		IN	A

;; ANSWER SECTION:
www.test.bjwf.com.	86284	IN	A	192.168.130.20

;; AUTHORITY SECTION:
test.bjwf.com.		86284	IN	NS	ns1.test.bjwf.com.

;; ADDITIONAL SECTION:
ns1.test.bjwf.com.	86284	IN	A	192.168.130.244

;; Query time: 1 msec
;; SERVER: 192.168.130.242#53(192.168.130.242)
;; WHEN: Tue Jun 14 16:28:56 2016
;; MSG SIZE  rcvd: 85

# dig -t A www.test.bjwf.com @192.168.130.243  #主域从服务器上测试

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.test.bjwf.com @192.168.130.243
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34667
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.test.bjwf.com.		IN	A

;; ANSWER SECTION:
www.test.bjwf.com.	86343	IN	A	192.168.130.20

;; AUTHORITY SECTION:
test.bjwf.com.		86343	IN	NS	ns1.test.bjwf.com.

;; ADDITIONAL SECTION:
ns1.test.bjwf.com.	86343	IN	A	192.168.130.244

;; Query time: 1 msec
;; SERVER: 192.168.130.243#53(192.168.130.243)
;; WHEN: Tue Jun 14 16:28:59 2016
;; MSG SIZE  rcvd: 85


(2)、全局转发这里不在演示。。自行测试。。



大概写到这吧。。以后可能还有补充。。写的比较乱,比较杂,敬请谅解,有什么不对的地方,麻烦朋友们告诉我。以上为个人学习整理,如有错漏,大神勿喷。。。