感谢支持
我们一直在努力

Linux基本知识点总结——DNS视图的实现

DNS视图能够智能地自动判断访问者的IP地址,然后根据不同的访问者把域名分别解析成不同的IP地址,从而让不同的IP指向在不不同网络上的主机,例如使网通用户会访问到网通服务器,电信用户会访问到电信服务器。

DNS视图的实现,主要用到acl和view两个字段。以下实验平台为CentOS 6.2,环境为:

DNS服务器

主机名:itpro    IP地址:192.168.56.53

客户端测试机A

主机名:pca    IP地址:192.168.56.101

客户端测试机B

主机名:pcb    IP地址:192.168.56.202

注:这是在内网做的实验,用的是同一网段的IP;不过,这里假设成三个网段里的三台设备:itpro是公网里的dns服务器,pca是连接电信网络的客户机,pcb是连接联通网络的客户机。

一、DNS服务器的配置

有关bind和bind-chroot的安装及使用,前一篇《RHCE培训笔记——DNS基础》已经介绍,这里不再详述。

为避免路径过长或因切换路径等而作多余的啰嗦,本文是在root目录下进行的,请注意。实际操作建议在伪目录中进行。

1.修改主配文件

内容修改后,如下:

[root@itpro ~]# cat /etc/named.conf

// named.conf

options {

        listen-on port 53 { any; };

        listen-on-v6 port 53 { any; };

        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;

        };

};

acl cncnet { 192.168.56.101; };  #注,定义联通网段,这里只指定一个IP地址

acl telecomnet { 192.168.56.202; };  #注,定义电信网段,这里只指定一个IP地址

view telecom {

zone “.” IN {

      type hint;

      file “named.ca”;

};

//注,这个zone在named.conf里默认是有的,使用view语句后,

//要把它删掉(删掉后好像没影响,不过这是一个hint类型的zone,保留了),

//或放进view里,否则在重启named时会有如下报错,

//“when using ‘view’ statements, all zones must be in views”

        match-clients { telecomnet; };

        recursion yes;

        include “/etc/named.rfc1912.zones”;

};

view cnc {

        match-clients { cncnet; };

        recursion yes;

        zone “sq.com” IN {

                type master;

                file “cnc.sq.com.zone”;

                allow-update { none; };

        };

        zone “100.40.125.in-addr.arpa” IN {

                type master;

                file “cnc.sq.com.local”;

                allow-update { none; };

        };

};

include “/etc/named.root.key”;

注:view cnc{}本是想写成类似view telecom{}那样的格式,如

view cnc {

        match-clients { cncnet; };

        recursion yes;

        include “/etc/named.cnc.zones”;

};

并拷贝/etc/named.rfc1912.zones文件(及其权限),创建/etc/named.cnc.zones文件,再在named.cnc.zones文件里重新定义zone内容。

但配置完成后,在重启named时报错,说找到到named.cnc.zones这个文件,

[root@itpro ~]# service named restart

Stopping named:                                            [  OK  ]

Starting named:

Error in named configuration:

/etc/named.conf:63: open: /etc/named.cnc.zones: file not found

                                                          [FAILED]

将named.cnc.zones改为named.rfc1913.zones,也是找不到,由此可以确实,默认的named.rfc1912.zones文件,其名字应该是有意义的,或者是在哪个配置里进行了注册之类,不过尚未找出具体原委。没办法,只好将view cnc的zone内容,写进named.conf这个主配置文件里。其实干脆把telecom{}区域的所有配置内容也写到这个主配置文件里,会更直观。

2.配置named.rfc1912.zones文件

这个配置文件,被view telecom {}用到,

内容修改后如下:

[root@itpro ~]# cat /etc/named.rfc1912.zones

// named.rfc1912.zones:

……省略部分内容……

zone “sq.com” IN {

        type master;

        file “sq.com.zone”;

        allow-update { none; };

};

zone “200.96.202.in-addr.arpa” IN {

        type master;

        file “sq.com.local”;

        allow-update { none; };

};

注:在文件内容后面追加以上内容。

3.针对联通用户的域名及反向域名解析记录

在/var/named/目录下,分别以named.localhost和named.loopback为模板,创建cns.sq.com.zone和cns.sq.com.local两个文件。注意,拷贝模板时,要使用cp –p命令以保留模板属性。

以下是两数据文件修改后的内容:

[root@itpro ~]# cat /var/named/cnc.sq.com.zone

$TTL 1D

@      IN SOA  ns.sq.com root (

                                        2      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS    ns.sq.com.

ns      A      192.168.56.101

www    A      125.40.100.111

[root@itpro ~]#

[root@itpro ~]# cat /var/named/cnc.sq.com.local

$TTL 1D

@      IN SOA  ns.sq.com. root (

                                        2      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      ns.sq.com.

ns      A      192.168.56.101

111    PTR    www.sq.com.

4.针对电信用户的域名及反向域名解析记录

在/var/named/目录下,分别以amed.localhost和named.loopback为模板,创建sq.com.zone和sq.com.local两个文件。注意,拷贝模板时,要使用cp –p命令以保留模板属性。

以下是两数据文件修改后的内容:

[root@itpro ~]# cat /var/named/sq.com.zone

$TTL 1D

@      IN SOA  ns.sq.com root (

                                        3      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS    ns.sq.com.

ns      A      192.168.56.101

www    A      202.96.200.111

[root@itpro ~]#

[root@itpro ~]# cat /var/named/sq.com.local

$TTL 1D

@      IN SOA  ns.sq.com. root (

                                        3      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      ns.sq.com.

ns      A      192.168.56.101

111    PTR    www.sq.com.

二、测试

 

先将客户机pca、pcb的dns都指向DNS服务器192.168.56.53。

 

1.在主机pca(192.168.0.101)上测试(假设此机使用的是联通的网络)

[root@itpro ~]# nslookup www.sq.com

Server: 192.168.56.101

Address: 192.168.56.101#53

 

Name: www.sq.com

Address: 125.40.100.111 #注,解析出的是联通的地址

 

[root@ pca ~]# nslookup 125.40.100.111

Server: 192.168.56.101

Address: 192.168.56.101#53

 

111.100.40.125.in-addr.arpa name = www.sq.com.

 

2.在主机pcb(192.168.0.202)上测试(假设此机使用的是电信的网络)

[root@itsec ~]# nslookup www.sq.com

Server: 192.168.56.101

Address: 192.168.56.101#53

 

Name: www.sq.com

Address: 202.96.200.111 #注,解析出的是电信的地址

 

[root@ pcb ~]# nslookup 202.96.200.111

Server: 192.168.56.101

Address: 192.168.56.101#53

 

111.200.96.202.in-addr.arpa name = www.sq.com.

 

以上结果正确,实验完满结束。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux基本知识点总结——DNS视图的实现
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏