bind是什么?


在linux里很多服务都是做成软件包,用户想要用什么服务就下载相应的软件包,

安装使用就行了。bind也就是DNS(域名解析)服务的软件包名称,提供域名解

析功能的。在此处使用的是bind.x86_64    32:9.8.2-0.17.rc1.el6_4.6    centos6.5

这个版本的。其实bind功能很强大,在后面会讲到bind的正反向解析、主从的配

置、子域授权和转发以及一些view的相关知识。



bind安装配置


配置好yum源,用yum安装bind软件包:

[root@station158 ~]# yum -y install bind

为了后面的操作先将bind配置文件中的一些用不到的选项给注释掉,然后开始配

置bind的正向反向解析。


bind正向解析配置

第一步:先添加一个区域数据库,即域名服务文件:

[root@station158 ~]# vim /etc/named.rfc1912.zones
zone "ruixue.com" IN {
        type master;
        file "ruixue.com.zone";
};

新加了一个域名为“ruixue.com”的区域,指定区域文件为“ruixue.com.zone”

第二步:编辑区域数据文件:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim ruixue.com.zone
$TTL   600
@        IN        SOA         dns.ruixue.com.        mydns.ruixue.com. (
                               2014031201
                               1H
                               5M
                               3D
                               1D )
         IN        NS          dns
         IN        MX          mail
dns      IN        A           172.16.251.158
www      IN        A           172.16.251.160
mail     IN        A           172.16.251.170
ftp      IN        CNAME       www

注意此区域数据文件是我们手动创建的,一定是放在/var/named下面的这个目

的,必须给MX记录的mail一个级别数。

第三步:修改区域数据文件属组属主及权限:

[root@station158 named]# chown root:named ruixue.com.zone
[root@station158 named]# chmod 640 172.16.251.in-addr.arpa.zone

第四步:重启服务查看日志无误使用dig验证结果:

[root@station158 named]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@station158 named]# tail /var/log/messages
Feb 25 09:26:42 station158 named[2498]: command channel listening on 127.0.0.1#953
Feb 25 09:26:42 station158 named[2498]: command channel listening on ::1#953
Feb 25 09:26:42 station158 named[2498]: zone 0.in-addr.arpa/IN: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: 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: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: zone ruixue.com/IN: loaded serial 2014031201
Feb 25 09:26:42 station158 named[2498]: zone localhost.localdomain/IN: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: zone localhost/IN: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: managed-keys-zone ./IN: loaded serial 0
Feb 25 09:26:42 station158 named[2498]: running
[root@station158 named]# dig -t A www.ruixue.com @172.16.251.158
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.ruixue.com @172.16.251.158
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22054
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   172.16.251.160
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   172.16.251.158
;; Query time: 0 msec
;; SERVER: 172.16.251.158#53(172.16.251.158)
;; WHEN: Tue Feb 25 09:39:12 2014
;; MSG SIZE  rcvd: 82
[root@station158 named]#

说明:dig,是一个验证域名解析的命令,-t是指明域名类型后面跟上域名及服务

器IP。经常查看一下日志方便排查解析中出现的问题。


bind反向解析配置

第一步:添加一个反向的区域数据库:

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

zone "251.16.172.in-addr.arpa" IN {
        type master;
        file "172.16.251.in-addr.arpa.zone";
};

注意:新建的反向的区域数据名称必须以“.in-addr.arpa”结尾,指向的区域数

据文件也是自己手动创建。

第二步:创建并编辑区域数据文件:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim 172.16.251.in-addr.arpa.zone


$TTL   600
@        IN        SOA         dns.ruixue.com.        mydns.ruixue.com. (
                               2014031201
                               1H
                               5M
                               3D
                               1D )
         IN        NS          dns.ruixue.com.
158      IN        PTR         dns.ruixue.com.
160      IN        PTR         www.ruixue.com.
170      IN        PTR         mail.ruixue.com.

注意:在编写反向解析的区域数据文件时,都把域名补充完整别忘了把后面的那个点也加上。

第三步:修改区域数据文件属组属主及权限:

[root@station158 named]# chown root:named ruixue.com.zone
[root@station158 named]# chmod 640 172.16.251.in-addr.arpa.zone

第四步:重启binf服务并用dig验证结果:

[root@station158 named]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@station158 named]# dig -x 172.16.251.160
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -x 172.16.251.160
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33065
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;160.251.16.172.in-addr.arpa.   IN  PTR
;; ANSWER SECTION:
160.251.16.172.in-addr.arpa. 600 IN PTR www.ruixue.com.
;; AUTHORITY SECTION:
251.16.172.in-addr.arpa. 600    IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   172.16.251.158
;; Query time: 0 msec
;; SERVER: 172.16.251.158#53(172.16.251.158)
;; WHEN: Tue Feb 25 10:40:15 2014
;; MSG SIZE  rcvd: 107
[root@station158 named]


正向反向解析总结:

1、在正向解析的区域数据文件不能出现PTR资源记录;

     2、在正向解析中若重启服务错误,检查一下是否是MX记录没有指定级别

         或是没有修改区域数据文件属主属组和权限;

     3、反向解析的区域名称必须要以“.in-addr.arpa”结尾;

     4、反向解析区域数据文件不能出现MX记录和A记录,但必须要有PTR记录;

     5、若反向解析重启出现错误,检查是否属组属主及权限没有修改;

     6、平常多查看一下日志方便排除问题;




bind主从服务器配置



主从同步配置,顾名思义需要两台服务器,一台为主服务器另一台为从服务器。

大部分的配置都在主服务器上,从服务器直接从主服务将数据同步过来即可。此

次需要做的就是配置两台主从服务器,将主的配置完成,从服务器可以从主的服

务器上面将数据同步过来,并且在主服务更改之后从服务器能立马同步更新内容,

即可达到要求。


第一步:准备从服务器环境:

主服务器就用上面做过正反向解析的那台服务,所以此时要准备另一台服务器来

做从服务器。在开一台服务器和此上一样用yum安装bind软件包,进入bind的主配

置文件注释掉一些用不到的选项,此时从服务器的环境就准备好了!

第二步:新建从服务正反向区域数据:

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "ruixue.com" IN {
        type slave;
        masters { 172.16.251.158; };
        file "slaves/ruixue.com.zone";
};
zone "251.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.251.158; };
        file "slaves/172.16.251.in-addr.arpa.zone";
};

注意:1、此时的区域数据和主的上面的差别很大,起码类型要写成“slave”;

2、特别要注意的细节问题:比如指向主的“masters”一定要加上s

      3、区域数据文件指向要在“slaves/”下面;

4、区域数据文件只需指向“slaves/”下面即可不用在手动创建此文件;

5、不能随意在从服务器上更改区域数据文件;

第三步:在主服务器上添加一条NS记录和A记录或是PTR记录:

(1)先在主服务器的正向解析的区域数据文件添加NS记录和A记录:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim ruixue.com.zone

wKioL1MhoaHh38pnAADENJs_e-0543.jpg

此时可以重启一下主服务上的bind然后查看一下日志是否成功:

[root@station158 named]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@station158 named]# tail /var/log/messages
Feb 26 08:01:46 station158 named[2954]: zone 0.in-addr.arpa/IN: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: zone 251.16.172.in-addr.arpa/IN: loaded serial 2014031201
Feb 26 08:01:46 station158 named[2954]: 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: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: zone ruixue.com/IN: loaded serial 2014031201
Feb 26 08:01:46 station158 named[2954]: zone localhost.localdomain/IN: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: zone localhost/IN: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: managed-keys-zone ./IN: loaded serial 0
Feb 26 08:01:46 station158 named[2954]: running
Feb 26 08:01:46 station158 named[2954]: zone ruixue.com/IN: sending notifies (serial 2014031201)

然后在从服务器上也重启一下服务,用dig验证一下:

[root@localhost named]# cd
[root@localhost ~]# cd /var/named
[root@localhost named]# ls slaves/
172.16.251.in-addr.arpa.zone  ruixue.com.zone
[root@localhost named]# dig -t A www.ruixue.com @172.16.251.178
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.ruixue.com @172.16.251.178
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45034
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   172.16.251.160
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.ruixue.com.
ruixue.com.     600 IN  NS  ns2.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   172.16.251.158
ns2.ruixue.com.     600 IN  A   172.16.251.178

说明:如上所示先在“/var/named/slave”的目录下查看是否生成了此前定义好

      的两个文件。需要注意的是测试时@的是从服务器本机的IP,可不要写成了

      主服务器的IP哦!

(2)在主服务器的反向解析区域数据文件中添加一条NS记录和PTR记录:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim 172.16.251.in-addr.arpa.zone

wKiom1MhpoGSqWaIAADvwiT6sR0468.jpg

然后在从服务器上用dig测试结果:

[root@localhost named]# dig -x 172.16.251.170
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 172.16.251.170
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64817
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;170.251.16.172.in-addr.arpa.   IN  PTR
;; ANSWER SECTION:
170.251.16.172.in-addr.arpa. 600 IN PTR mail.ruixue.com.
;; AUTHORITY SECTION:
251.16.172.in-addr.arpa. 600    IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   172.16.251.158()

(3)验证主从同步:

在主服务器上的正反解析区域数据文件中都添加相应的一个域名及对应IP:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim ruixue.com.zone

wKioL1Mht1_wJLl7AADS-wSjt2c913.jpg

[root@station158 named]# vim 172.16.251.in-addr.arpa.zone

wKiom1MhuHPhuGepAADt1jyjRc4796.jpg

注意:不管是正向还是反向的区域数据文件更改之后都要在第三行日期的最后一

      位数加上1,这样从服务器才能知道主服务做了更改才会同步。

在主服务器上加载一下更改配置,成功之后查看日志看是否同步过去。然后在从服

务器上用dig测试是否同步成功:

[root@station158 named]# service named reload
Reloading named:                                           [  OK  ]

wKioL1MhusHSUR4WAAHuCkuY0L8207.jpg

wKiom1Mhuvnwf5-tAAHClXBVAa0779.jpg

说明:此时查看从服务器的区域数据文件的第三行的日期后面也会变成之前在主

      的服务器上修改过的数字的。

若同步不成功解决办法:

1、在主服务器上的反向解析区域数据文件里面域名的com后面没加“.”;

2、主从的防火墙没关闭,用“service iptables stop”命令关闭了;

3、再同步不成功重启一下named服务然后立马查看日志,排除问题;




子域授权和转发


子域授权就是在自己创建的DNS服务器的基础上再创建出其更小范围的解析域,

种情况比较适合大公司下面的某个大的部门来使用。说简单点就是为父域减轻

解析负担,方便管理员更好的维护和管理DNS服务器。


配置子域授权

第一步:配置子域环境:

配置子域需要再开启一台服务器,然后用yum安装bind软件包,和上面类似进入

到bind的主配置文件注释掉一些用不到的选项,接下来开始配置就行了。

第二步:在父域中配置子域信息:

在父域的区域数据文件中添加子域的的NS记录和A记录:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim ruixue.com.zone

wKiom1Mi7MnQg16cAADrcV-KQG0954.jpg

说明:给父域的区域数据文件里面添加的NS记录指向子域域名,添加的A记录指向

         子域IP。添加完毕别忘了执行“service named reload”命令加载一下新配置哦!

第三步:添加子域区域数据及区域数据文件:

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

wKioL1Mi5H3wWuclAABf_523XW8129.jpg

[root@localhost ~]# cd /var/named
[root@localhost named]# vim sh.ruixue.com.zone

wKioL1Mi5YaSQ_qgAADWuQ2eoAg847.jpg

解释:子域顾名思是由其父域产生而来的,所以子域都是以父域域名结尾前面加

      上子域名称。

注意:在添加子域的区域时type即类型要写“master”,区域数据文件是自己手

      动编辑的,但是别忘了在编写子域区域数据文件时ip都是子域规定的哦!

      然后执行“service named restart”重启一下服务,查看一下日志看是否

      有错。

第四步:在子域服务器上验证结果:

[root@localhost named]# dig -t A www.sh.ruixue.com @172.16.33.100
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.sh.ruixue.com @172.16.33.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29023
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.sh.ruixue.com.     IN  A
;; ANSWER SECTION:
www.sh.ruixue.com.  600 IN  A   172.16.33.110
;; AUTHORITY SECTION:
sh.ruixue.com.      600 IN  NS  dns.sh.ruixue.com.
;; ADDITIONAL SECTION:
dns.sh.ruixue.com.  600 IN  A   172.16.33.100

注意:用dig命令验证时@的也是本机即子域的IP哦!


配置转发


此时设想一下若是让子域去解析父域是不是应该很快就能解析得到呢?

我想很多人的答案都是肯定的吧,可是事实却是否定的。是的,子域此时若想解

析父域并不是直接找父域解析的,而是先去找根然后再从根往下一级一级的找最

终找到父域才能实现解析,这样你还会觉得子域解析父域很快吗。但是怎么才能

实现让子域直接去找父域而不用在绕道去找根再往下一步一步的解析呢。这就要

用到转发了,给子域配置一个转发功能直接指向父域,当子域在解析父域的时候

就不用再去找根了。需要注明的是:转发不光是设置在子域解析父域的问题上的

也可以自己手动指向某个域指向某个域,此处为了方便理解就拿子域转发父域来

做说明了。不多说了,开始把....

第一步:在子域中配置转发功能:

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

wKioL1Mi_f_SCTVFAAB3wUT0oqU304.jpg

注意:此为新添加了一个转发区域,所以type为“forward”,细节问起就是下面

      指向转发的那个单词是“forwarders”后面有个“ers”可别写错了。还有

      就是图中也只出来了最后一项是指的转发的类型,有两个参数only和first

      选择,only是仅转发若没回复直接丢弃请求,first是指若没回复就去找根

      然后再从根往下一层一层的解析。

补充:实在子域中配置转发功能还有一个方式,即在“/etc/named.conf”中直

      接定义,也就是编辑“/etc/named.conf”文件写入forward {onil|first}

      任选其一再写入forwarders { DNS_IP; };此IP为要给转发的服务器的IP。

      需要说明的是在“/etc/named.conf”中配置的forward是对全局都生效的,

      而在转发区域中配置的forward仅对指定的域生效比如此处的“ruixue。com”。

第二步:在父域上开启转发功能:

[root@station158 ~]# vim /etc/named.conf

allow-recursion { 172.16.33.100; };

注意:此是在“/etc/named.conf”这个主配置文件里面直接编辑的。

第三步:在子域上转发父域名测试结果:

[root@localhost ~]# dig -t A www.ruixue.com @172.16.33.100
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.ruixue.com @172.16.33.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56135
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   172.16.251.160
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.ruixue.com.
ruixue.com.     600 IN  NS  dns.sh.ruixue.com.ruixue.com.
;; ADDITIONAL SECTION:
dns.sh.ruixue.com.ruixue.com. 600 IN    A   172.16.33.100
dns.ruixue.com.     600 IN  A   172.16.251.158

解析成功!!!

总结:1、在配置转发时把父域的主配置文件最下面一行即“include "/etc/named.root.key";”

         给注释掉要不会影响转发功能;

     2、若是每次都解析不成功可以查看一下“/etc/resolv.conf ”这个文件的nameserver

         是否指向本地的IP;

      3、在上面提到的在“/etc/named.conf”文件和新建一个转发区域都能实现子域转发

         功能,一个是全局生效一个是局部生效,但是也可以两个都写只是指向的转发域

         不同即可;

      4、别忘了每次更改完配置文件或数据区域文件都执行一下“service named reload”命令

         加载一下配置,然后再查看一下日志这样有助于排错,但是不太推荐重启服务,因为在

         生产环境中重启服务是很严重的后果的不到万不得已千万不要随意重启服务;

      5、再次说明一下,此转发配置不光是针对子域转发父域的,对于其他域的转发也是生效的。



view的讲解


view是什么?一定有人会有这样的疑问吧,view即视图。简单点说就是为了加速用

户访问的速度,这样说是不是更晕了,打个比方来说就是用户使用离自己最近的IP

段来访问服务器。而view的功能就是让同一个域名分出不同网段的地址,又比如说

把网通的地址段分出一个view,电信的地址段分出一个view,当网通的用户访问此

网站时就用网通的view解析,当电信的用户访问时就用电信的view。这样应该都明

白了吧!其实不光是电信网通的区别,也可以是地域的不同分出不同的view,就是

把网通和电信换成北京和上海网段来理解就行了,在北京的用户访问北京地址段的

view,在上海的用户就访问上海地址段的view。这样来说就可以理解为什么使用view

能加速访问了吧!那么怎么才能实现上述功能呢?接下来看吧......


接下来看看怎么实现view的功能吧!

第一步:配置环境:

我们现在在一台机器上配置两个不同的IP段来当作两个不同网段的view,就用上面的

那台父域服务器接着做了,把一些其它信息都删除,保留到和刚装的bind一样。再用

eth0:0配置一个192网段的地址,环境就算出来了。

第二步:将主配置文件中的根区域复制到“/etc/named.rfc1912.zones”文件中:

[root@station158 ~]# vim /etc/named.conf
//zone "." IN {
//      type hint;
//      file "named.ca";
//};

说明:为了更好的管理view我们直接把根区域放到“/etc/named.rfc1912.zones”

      件中统一管理,但是别忘了把主配置文件中的此根区域注释掉哦!

第三步:添加view:

[root@station158 ~]# 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.
//
view one {
     match-clients { 172.16.0.0/16; };
        zone "localhost.localdomain" IN {
                type master;
                file "named.localhost";
                allow-update { none; };
};
zone "." IN {
        type hint;
        file "named.ca";
};
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; };
};
zone "ruixue.com" IN {
        type master;
        file "ruixue.com.one.zone";
};
};
view two {
   match-clients { 192.168.0.0/24; };
   zone "ruixue.com" IN {
       type master;
       file "ruixue.com.two.zone";
};
};
view three {
    match-clients { any; };
    zone "ruixue.com" IN {
        type master;
        file "ruixue.com.two.zone";

说明:如上所示我们添加了view one,view two,view three三个view视图。

解释:所谓的view就是包含一个或多个不同的区域,而 match-clients这一

     项所指的就是不同网段的view,这样也就实现了不同地域段的IP或是

     不同运营商的IP就能使用不同的view了。最后一个view three视图的

     范围是any意思就是不属于上面两个view的用户网段就通过我们给指定

     的view two这个通道访问,建议都加上一个any的视图。

注意:view one是我们内部自己网段的view所以将根区域和本地区域都加在

     上面了。还有就是view two的区域数据文件是我们自己手动创建的,

     但是view three这个view视图是指向view two的。

第四步:创建区域数据文件:

[root@station158 ~]# cd /var/named
[root@station158 named]# vim ruixue.com.two.zone

wKioL1MjTN7AJJs1AADKThEOb4E649.jpg

第五步:更改属组属主及权限:

[root@station158 named]# chown root:named ruixue.com.two.zone
[root@station158 named]# chmod 640 ruixue.com.two.zone

第六步:验证实施:

用172网段验证:

[root@station158 ~]# dig -t A www.ruixue.com @172.16.251.158
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.ruixue.com @172.16.251.158
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4684
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   172.16.251.160
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.sh.ruixue.com.ruixue.com.
ruixue.com.     600 IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   172.16.251.158
dns.sh.ruixue.com.ruixue.com. 600 IN    A   172.16.33.100

用192网段的验证:

[root@station158 ~]# dig -t A www.ruixue.com @192.168.0.100
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.ruixue.com @192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4809
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   192.16.0.110
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   192.16.0.100

用其他网段的用户来访问:

[root@localhost ~]# dig -t A www.ruixue.com @192.168.0.100
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.ruixue.com @192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14515
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;www.ruixue.com.            IN  A
;; ANSWER SECTION:
www.ruixue.com.     600 IN  A   192.16.0.110
;; AUTHORITY SECTION:
ruixue.com.     600 IN  NS  dns.ruixue.com.
;; ADDITIONAL SECTION:
dns.ruixue.com.     600 IN  A   192.16.0.100

访问成功!!!

特别注意:1、在做view视图时千万别忘了把主配置文件即“/etc/named.conf”

           中的限制访问的allow的仅允许本地访问的这一项给注释掉;

           2、上面也提到了在设置的最后一个view即any时是不用再手动创建

           区域数据文件了,可以按自己的意愿指向上面任意的view;

           3、注意一些细节问题,即新建完区域数据文件时都先更改属组属主

           更改权限,加载或重启完服务用“ss -tunl”查看一下服务的端口是

           否都开启了,更改了配置或区域数据文件都用“named-checkconf”命

           令查看配置是否有错,再有就是多查看日志。




总结


到此bind终于是讲完了,大家都明白了吗?其实一开始接触都会遇到这样那样的

问题,有的问题甚至都能让你抓狂明明都设置好了检查n遍都没问题可是都最后解

析的时候就是解析不到IP,遇到这样问题不要着急更不要抓狂冷静下来仔细想想自

己做的配置或是有没有忘做的步骤,再不行就好好看看日志分析一下是那出的问题。

那么在此我就列出几个容易犯得错误:

1、域名写错或是忘记补全加上最后的“.”(特别是反向解析);

2、忘记主配置文件“/etc/named.conf”中allow的设置;

3、添加区域时有些单词后面加“s”或“ers”如:master和forward等等;

4、对主配置文件用不到的选项注释掉;

5、不同类型的bind配置区域和区域数据文件不同;

6、区域数据文件都是放在“/var/named”这个目录下的;

7、反向解析的区域名称必须以“.in-addr.arpa”结尾;

8、更改区域数据文件属组属主和权限;

9、..........(还有好做需要大家在实践中慢慢总结了)