一、DNS子域授权

1、创建子域的原因

  当一个组织获得一个域后,比如:magelinux.com,但是由于组织规模扩大,需要分配出几个部门,例如技术部、财务部和销售部等。如果都使用magelinux.com域的DNS服务器,性能会降低,那么就需要把magelinux.com域分割成几个区域,我们称从原区域分区的域为子域,原区域为父域。而且子域中有它自己的DNS服务器和www,ftp,mail等主机,下面演示添加子域tech.magelinux.com的过程。

2、BIND子域授权的实现前题

  在父域的区域数据文件中添加如下条目:

  (1)授权的子区域名称:tech.magelinux.com

  (2)子区域的名称服务器:dns.tech.magelinux.com

  (3)子区域的名称服务器的IP地:192.168.1.104

3、子域授权的实现

  (1)修改父域区域数据文件

[root@www ~]# vim /var/named/magelinux.com.zone 

$TTL 600

@       IN      SOA     dns.magelinux.com. admin.magelinux.com. (

                     2015092914

                     2H

                     10M

                     7D

                     1D

                     )

@              IN      NS      dns

@              IN      NS      dns2

@              IN      MX  10   mail

dns             IN      A       192.168.1.112

dns2            IN      A       192.168.1.106

mail            IN      A       192.168.1.107

www             IN      A       192.168.1.108

pop             IN      CNAME    mail

ftp             IN      CNAME    www

tech            IN      NS      dns.tech

dns.tech            IN      A       192.168.1.104

  (2)在子域的DNS服务器上安装BIND

[root@www slaves]# yum install bind

  (3)修改子域配置文件

[root@localhost ~]# cat /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 { 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;


//    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";

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


        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 "tech.magelinux.com." IN {

        type master;

        file "tech.magelinux.com.zone";

};

  (4)创建子域数据文件

[root@localhost named]# vim tech.magelinux.com.zone

$TTL 600

@     IN   SOA  dns.tech.magelinux.com.  dnsadmin.tech.magelinux.com. (

                                2015100101

                                1H

                                5M

                                3D

                                1D )

                  IN      NS      dns

        IN      MX  10   mail

dns     IN      A       192.168.1.104

mail    IN      A       192.168.1.120

www     IN      A       192.168.1.121

  (5)修改子域数据文件属性

[root@localhost named]# chown root:named tech.magelinux.com.zone 

[root@localhost named]# chmod 640 tech.magelinux.com.zone 

[root@localhost named]# ls -l tech.magelinux.com.zone 

-rw-r----- 1 root named 223 Aug 14 18:00 tech.magelinux.com.zone

[root@localhost named]# rndc reload

server reload successful

  (6)使用dig命令测试子域

[root@localhost named]# dig -t A www.tech.magelinux.com @192.168.1.104

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t A www.tech.magelinux.com @192.168.1.104

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46551

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1


;; QUESTION SECTION:

;www.tech.magelinux.com.        IN   A


;; ANSWER SECTION:

www.tech.magelinux.com.  600  IN  A   192.168.1.121


;; AUTHORITY SECTION:

tech.magelinux.com.     600  IN  NS  dns.tech.magelinux.com.


;; ADDITIONAL SECTION:

dns.tech.magelinux.com.  600  IN  A   192.168.1.104


;; Query time: 1 msec

;; SERVER: 192.168.1.104#53(192.168.1.104)

;; WHEN: Fri Aug 14 18:11:04 2015

;; MSG SIZE  rcvd: 90

二、DNS的访问控制列表及view功能

1、view功能介绍

  view是视图的意思,实现将DNS服务器一切为N片,当来自不同的IP时就用不同的DNS服务器去解析,速度肯定会更快,当然用户体检就更好了,这就叫做DNS智能解析。举个例子来说,中国大陆的网络一直就有北联通,南电信这么一说,造成这一结果的根本原因就是因为两个网络之间的带宽太小了,这就避免不了网络之间的拥堵。比如人一家游戏公司,你用的是电信的网,而它的服务器是联通的,当你进入这个区玩儿游戏的时候,不卡死才怪,这么糟糕的用户体验,如果能留住用户,不得不说是一个奇迹,这也就是为什么游戏一般都有网通区、电信区的原因。而我们今天要做的就是定义这么一个view,让它根据用户IP自动去选择,如果是联通的IP,就走联通的服务器,如果是电信用户就去访问电信的服务器,让其实现智能DNS解析。

2、acl

  如果想实现DNS的智能解析,这个必须先介绍清楚了

  acl:access control list,顾名思义就是访问抑制列表的意思,定义访问控制列表就是为了能够让其根据IP进行控制,哪些IP可以访问,哪些IP不可以访问,联通的用户走哪条路,电信的用户走哪条路。下面就开始介绍实现这高大上的DNS智能解析功能。

3、view功能配置详解

  只要在DNS服务器中使用view功能,那么所有的域都必须放到view中,那么/etc/named.conf中的"."域也必须给它剪切过来,放到view中,否则会报错的。这里定义两个访问控制列表:telecom及unicom,假设联通的IP是192.16段的,电信的IP是172.16段的,这里只是模拟,如果在真实环境中,就需要自己去统计这些联通和电信的IP了。然后定义三个view:telecom,unicom,default,定义default的意义就在于,你统计时肯定会有漏掉的IP,那就让它走这个默认的。

  定义telecom这个域,把/etc/named.rfc1912.zones中原来的zones都放在这个view中吧。对于view来说,它是有执行顺序的,如果你是联通的用户多,那就把unicom放到上面,如果是电信的多,那就把telecom放到上面,这里假设电信的多。


更新中……