DNS的子域授权、转发以及view

 本节我将分别对DNS的子域授权、DNS配置转发器、DNS配置转发区域以及DNS的view进行讲解,本节本来是想跟上一节内容一起讲解的,但是由于字数问题我就又分了单独一节来讲。

   实验环境:Centos6.5x86_64

   主DNS服务器 ns.magedu.com  172.16.6.20

   子DNS服务器  ns.sub.magedu.com  172.16.6.50

子域授权(这里只讲解正向解析)

子域授权,顾名思义就是在一个域的基础上又创建子域,当然这个子域必须在父域中进行声明,下面我们就来看下他是怎么实现的。

父域中配置

首先得在父域的解析库文件中添加子域的NS记录以及A记录

[root@localhost ~]# vim /var/named/magedu.com.zone
$TTL  3600
@       IN  SOA  ns.magedu.com.   admin.magedu.com (
                  2014080609     版本每次务必改
                  1H
                  10M
                  7D
                  1D )
        IN  NS   ns
        IN  NS   ns2
sub     IN  NS  ns.sub          添加子域服务器的NS记录
        IN  MX  10  mail
ns      IN  A   172.16.6.20
ns2     IN  A   172.16.106.20
ns.sub  IN  A   172.16.6.50      添加子域服务器的A记录
mail    IN  A   172.16.6.21
www     IN  A   172.16.6.22
web     IN  CNAME www

还是版本的问题,每次修改之后必须得改。


子域服务器配置

子域服务器中的/etc/named.conf文件还是跟父域中的一样,只要是修改/etc/named.rfc1912.zones

[root@localhost ~]# 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; };
};
新添加一条
zone "sub.magedu.com" IN {
       type master;
       file "sub.maedu.com.zone";
};

配置好之后检查语法

[root@localhost ~]# named-checkconf


配置子域服务器中的解析库文件

[root@localhost ~]# vim /var/named/sub.magedu.com.zone
$TTL 3360
@     IN  SOA  sub.magedu.com.  admin.magedu.com. (       注意子域的名称
                      2014080601
                      1H
                      10M
                      1W
                      2D )
      IN  NS  ns
      IN  MX  10  mail
ns    IN  A   172.16.6.50
www   IN  A   172.16.6.52
mail  IN  A   172.16.6.51

配置好之后别忘了语法检查

[root@localhost ~]# named-checkzone "sub.magedu.com"  /var/named/sub.magedu.com.zone 
zone sub.magedu.com/IN: loaded serial 2014080601
OK

确认无误之后就可以进行重新加载了

[root@localhost ~]# rndc reload
server reload successful

配置好之后就可以进行测试了

wKiom1PiMfCimf6cAAIHTPIrhgI642.jpg

www.sub.magedu.com 进行测试,结果返回正确结果172.16.6.52

这样一个子域授权就正式完成了并且可以运行了。

DNS配置转发器

下面我们用DNS来配置一个转发器,一旦该服务器本身不能解析,则器会将请求转发给转发器指向的服务器进行解析。

这里我们就对子域服务进行配置转发功能。

转发器的设置非常简单,只需要对/etc/named.conf进行配置

[root@localhost ~]# vim /etc/named.conf 
只需要对options进行修改
options {
        //listen-on port 53 { 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     { localhost; };
        recursion yes;
        
        forward only;       注意格式:这里的only表示转发后无论返回什么答案都选择相信
        forwarders { 172.16.6.20; };    设置转发的服务器
        //dnssec-enable yes;
        //dnssec-validation yes;
        //dnssec-lookaside auto;

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

配置完成不要忘记重读配置文件

[root@localhost ~]# rndc reconfig

好了,下面我们来测试一下

我们选择对www.magedu.com进行测试,不属于子域服务器的管辖范围

wKiom1PiNtOD1xqSAAInT08mpqA970.jpg

测试成功,返回正确值172.16.6.22


DNS配置转发区域

我们不但可以配置转发,而且还可以控制想要转发的区域。

[root@localhost ~]# vim /etc/named.rfc1912.zones 
 加入一个zone
zone "magedu.com" IN {
      type forward;
      forward only;    
      forwarders { 172.16.0.1; };为了实验更加直观,这里我们选择一台可以上网的主机
};

配置后重读配置文件

[root@localhost ~]# rndc reconfig

配置成功后进行测试。

在测试之前,这里我们对这个转发区域的意思进行解释,当所查询的地址属于magedu.com.域时,则会将该地址发给172.16.0.1去解析,如果172.16.0.1无法解析,则选择相信,不再查询;如果所查地址不属于该域,则不给于转发,让服务器自己去迭代查询。由于本服务器没有连接网络,而转发后的服务器172.16.0.1能上外网。所以要是我们以www.baidu.com和www.magedu.com为例,理论上来说结果应该是www.baidu.com无法查询到结果,而www.magedu.com能够查询到结果。我们来验证一下。

wKioL1Pjc17znnSFAAFtbLTOHBQ573.jpg

第一个www.baidu.com无法查询到结果,验证无误,OK。

wKioL1Pjc6ORhgTaAAHfPY01q58762.jpg

第二个结果能够得到结果122.10.114.6,验证无误,也OK。

这样,区域转发的功能我们就完成了。

view视图功能

我们知道网通和电信之间进行相互访问速度比较慢,那是因为每一次相互访问都会经过北京的一个机房中唯一的一个通信机房,而带宽是非常有限,因此为了避免没有意义的相互访问,这里我们就引入了view的概念,即脑裂。

下面我们就来配置下:

需要注意的是在写视图时,所有的zone都必须在view里面,所有要把/etc/named.conf里的根的zone也要放到view里去。

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

//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

acl mwjnet {
   172.16.0.0/16;                 为了实验更加直观,这里就只对172.16网段的地址进行控制
};                             这里创建一个访问控制列表
view local {
    match-clients { mwjnet; };   view调用控制列表mwjnet
zone "." IN {
        type hint;
        file "named.ca";
};
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

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

        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 "sub.magedu.com" IN {
       type master;                    
       file "sub.magedu.com.zone";       这里文件中定义了www.sub.magedu.com.指向的地址为
};                                       172.16.6.52
zone "magedu.com" IN {
      type forward;
      forward only;
      forwarders { 172.16.6.20; };
};
};
view  tel {
     match-clients { any; };
     zone "sub.magedu.com" IN {
         type master;
         file "magedu.com.2";            这里文件中定义了www.sub.magedu.com. 指向的地址为
    };                                   为2.3.4.5
};

配置完成之后先检测语法

[root@localhost ~]# named-checkconf

生成相应的解析库文件,这里只须生成/var/named/magedu.com.2

$TTL 3360
@     IN  SOA  sub.magedu.com. admin.magedu.com. (
                    2014080701
                    1H
                    10M
                    1w
                    3D )
     IN  NS  ns
ns   IN  A   172.16.6.50
www  IN  A   2.3.4.5

检测语法并重新加载

当然还要修改权限以及数组,这里我就没有附上操作了

[root@localhost ~]# named-checkzone "sub.magedu.com" /var/named/magedu.com.2 
zone sub.magedu.com/IN: loaded serial 2014080701
OK
[root@localhost ~]# rndc reload
server reload successful

下面就可以进行测试了需要注意的是为了方便测试,我对服务器设置了IP别名,192.168.1.23和172.16.6.50都是指该服务器。

用192网段的地址主机

wKiom1PiZZ6jNPh6AAHdnX0MwkY053.jpg

结果为2.3.4.5

当用172.16网段的主机时

wKioL1PiZ4yjChkFAAGZI5-xu_8588.jpg得到的地址为172.16.6.52

这样结果就跟我们预想的一样,不同的网段去到同一个服务器上找到的地址不同,这样我们的视图功能就已经完成并且可以使用。

本节的内容就讲到这里了,讲的不好的地方希望大家多提建议,不对的地方非常欢迎指正,谢谢!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章