DNS实验

 

建立DNS服务器(正向解析)

linux没有缓存 windows有dns缓存 权威结果,非权威结果 无论是正向解析数据库还是反向解析数据中  写管理员邮件地址或完整域名(FQDN)都要再后面加上点。否则系统会自动不上区域名称。 实验环境先清理防火墙规则,关闭防火墙.

centos7 systemctl disable firewalld
centos6 chkconfig iptables off

[root@centos7 ~]# iptables -F
[root@centos7 ~]# systemctl disable firewalld
[root@centos7 ~]# systemctl is-enabled firewalld
disabled

[root@centos6 ~]# iptables -F
[root@centos6 ~]# chkconfig --list iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on       6:off
[root@centos6 ~]# chkconfig iptables off

安装bind会有个安装前脚本

[root@centos7 ~]# rpm -q --scripts  bind
preinstall scriptlet (using /bin/sh):
if [ "$1" -eq 1 ]; then
  /usr/sbin/groupadd -g 25 -f -r named >/dev/null 2>&1 || :;   ####创建named用户组
  /usr/sbin/useradd  -u 25 -r -N -M -g named -s /sbin/nologin -d /var/named -c Named named >/dev/null 2>&1 || :;  ####创建named用户
fi;
:;
postinstall scriptlet (using /bin/sh):
/sbin/ldconfig

if [ $1 -eq 1 ] ; then 
        # Initial installation 
        systemctl preset named.service >/dev/null 2>&1 || : 
fi 

if [ "$1" -eq 1 ]; then
  # Initial installation
  [ -x /sbin/restorecon ] && /sbin/restorecon /etc/rndc.* /etc/named.* >/dev/null 2>&1 ;
  # rndc.key has to have correct perms and ownership, CVE-2007-6283
  [ -e /etc/rndc.key ] && chown root:named /etc/rndc.key
  [ -e /etc/rndc.key ] && chmod 0640 /etc/rndc.key
fi
:;
preuninstall scriptlet (using /bin/sh):
# Package removal, not upgrade

if [ $1 -eq 0 ] ; then 
        # Package removal, not upgrade 
        systemctl --no-reload disable named.service > /dev/null 2>&1 || : 
        systemctl stop named.service > /dev/null 2>&1 || : 
fi
postuninstall scriptlet (using /bin/sh):
/sbin/ldconfig
# Package upgrade, not uninstall

systemctl daemon-reload >/dev/null 2>&1 || : 
if [ $1 -ge 1 ] ; then 
        # Package upgrade, not uninstall 
        systemctl try-restart named.service >/dev/null 2>&1 || : 
fi

1、安装bind包,启动服务 2、创建zone信息 指明区域信息,domain:magedu.com 指明区域数据库 /var/named/magedu.com.zone 修改配置文件,/etc/named.conf

/etc/named.conf

    listen-on port 53 { local; };
    allow-query     { any; };

/etc/named.rfc1912.zones

    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone";  ###什么名字不重要,但是创建区域数据文件时,名字和这里的配置要一致。
    };
创建区域数据库文件/var/named/magedu.com

[root@centos7 ~]# vim /var/named/magedu.com.zone
$TTL 1D                                             ####全局定义TTL值,也可每条记录单独定义。
@       IN      SOA     ns1     admin.magedu.com (  ####soa必须写主dns的名称
                                2016092901          ####版本号不能超过十位
                                1D
                                1H
                                1W
                                3H
)
        IN      NS      ns1                        ####也可以写   ns1.magedu.com.          注意点 
        IN      NS      ns2
ns1     IN      A       192.168.154.139            ####ns1后面会自动补全  ns1.magedu.come.  注意点不要忘记写
ns2     IN      A       192.168.154.133
websrv  IN      A       192.168.154.139
www     IN      CNAME   websrv
*       IN      CNAME   websrv                    ####匹配任意以magedu.com为后缀的主机名。
~                                       
配置邮件服务器必须要写优先级,哪怕就是一个也要写。

注意创建区域数据库文件要修改权限和所属组。

[root@centos7 ~]# ll /var/named/magedu.com.zone 
-rw-r--r--. 1 root root 206 Sep 29 10:45 /var/named/magedu.com.zone
[root@centos7 ~]# chgrp named /var/named/magedu.com.zone 
[root@centos7 ~]# chmod 640 /var/named/magedu.com.zone 
[root@centos7 ~]# ll /var/named/magedu.com.zone
-rw-r-----. 1 root named 206 Sep 29 10:45 /var/named/magedu.com.zone
[root@centos7 ~]#

3、检查配置 named-checkconf   检查主配置文件 named-checkzone "magedu.com" "/var/named/magedu.com.zone"

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

4、重启服务 systemctl reload named rndc reload      ####专门管理dns的工具

5、测试工具测试  测试FQDN(www.magedu.nslookup) 测试客户端的/etc/resolv.conf文件需要修改,但是不能重启网络服务否则被冲掉。 改为当前dns服务器地址。

ping、host、dig、nslookup(查询反向解析)

[root@centos6 ~]# host www.magedu.com
www.magedu.com is an alias for websrv.magedu.com.
websrv.magedu.com has address 192.168.154.139

[root@centos6 ~]# ping www.magedu.com 
PING websrv.magedu.com (192.168.154.139) 56(84) bytes of data.
64 bytes from 192.168.154.139: icmp_seq=1 ttl=64 time=0.267 ms
64 bytes from 192.168.154.139: icmp_seq=2 ttl=64 time=0.400 ms

[root@centos6 ~]# dig www.magedu.com

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

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

;; ANSWER SECTION:
www.magedu.com.         86400   IN      CNAME   websrv.magedu.com.
websrv.magedu.com.      86400   IN      A       192.168.154.139

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

;; ADDITIONAL SECTION:
ns1.magedu.com.         86400   IN      A       192.168.154.139
ns2.magedu.com.         86400   IN      A       192.168.154.133

;; Query time: 12 msec
;; SERVER: 192.168.154.139#53(192.168.154.139)
;; WHEN: Wed Sep 28 14:43:24 2016
;; MSG SIZE  rcvd: 137

客户端查询使用的是UDP协议,但是两台dns同步数据,无论是通知更新还是主动更新,UDP和TCP连个协议的53号端口都需要打开。

建立反向解析区域

[root@centos6 ~]# nslookup 192.168.154.139
Server:         192.168.154.139
Address:        192.168.154.139#53

** server can't find 139.154.168.192.in-addr.arpa.: NXDOMAIN


[root@centos6 ~]# nslookup
> www.magedu.com
Server:         192.168.154.139
Address:        192.168.154.139#53

www.magedu.com  canonical name = websrv.magedu.com.
Name:   websrv.magedu.com
Address: 192.168.154.139
>

创建区域信息

zone "154.168.192.in-addr.arpa" IN {      ####解析一个网段。网络号反写。
        type master;
        file "154.168.192.zone";
};

建立反向解析数据库 SOA和NS 记录是必须加的。

[root@centos7 ~]# vim /var/named/154.168.192.zone
$TTL 86400
@       IN      SOA     ns1.magedu.com. admn.magedu.com. ( 2016092901 1D 10M 1W 1D )
        IN      NS      ns1.magedu.com.
139     IN      PTR     ns1.magedu.com
139     IN      PTR     websrv.magedu.com.
133     IN      PTR     ns2.magedu.com.
~                                        

[root@centos7 ~]# named-checkconf
[root@centos7 ~]# named-checkzone "154.168.192.in-addr.arpa" "/var/named/154.168.192.zone"
zone 154.168.192.in-addr.arpa/IN: loaded serial 2016092901
OK

测试:

nslookup

[root@centos6 ~]# nslookup 192.168.154.139
Server:         192.168.154.139
Address:        192.168.154.139#53

139.154.168.192.in-addr.arpa    name = ns1.magedu.com.154.168.192.in-addr.arpa.
139.154.168.192.in-addr.arpa    name = websrv.magedu.com.

[root@centos6 ~]# nslookup 
> 192.168.154.133
Server:         192.168.154.139
Address:        192.168.154.139#53

133.154.168.192.in-addr.arpa    name = ns2.magedu.com.

dig

[root@centos6 ~]# dig -x 192.168.154.139            ########################

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

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

;; ANSWER SECTION:
139.154.168.192.in-addr.arpa. 86400 IN  PTR     websrv.magedu.com.
139.154.168.192.in-addr.arpa. 86400 IN  PTR     ns1.magedu.com.154.168.192.in-addr.arpa.

;; AUTHORITY SECTION:
154.168.192.in-addr.arpa. 86400 IN      NS      ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.         86400   IN      A       192.168.154.139

;; Query time: 0 msec
;; SERVER: 192.168.154.139#53(192.168.154.139)
;; WHEN: Wed Sep 28 15:44:07 2016
;; MSG SIZE  rcvd: 140

[root@centos6 ~]# dig -t PTR 139.154.168.192.in-addr.arpa      ####################

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t PTR 139.154.168.192.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22917
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
139.154.168.192.in-addr.arpa. 86400 IN  PTR     ns1.magedu.com.154.168.192.in-addr.arpa.
139.154.168.192.in-addr.arpa. 86400 IN  PTR     websrv.magedu.com.

;; AUTHORITY SECTION:
154.168.192.in-addr.arpa. 86400 IN      NS      ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.         86400   IN      A       192.168.154.139

;; Query time: 1 msec
;; SERVER: 192.168.154.139#53(192.168.154.139)
;; WHEN: Wed Sep 28 15:45:52 2016
;; MSG SIZE  rcvd: 140


建立从服务器

1、建立从dns服务器,安装bind,关闭防火墙,开启服务。 2、建立区域信息,从的dns不需要建立区域数据库文件  从主dns上同步过来的数据放到/var/named/slave/目录下。

修改配置主配置文件

[root@centos6 ~]# vim /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; };    ###############注释掉,即使监听在本地所有ip上
//      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;

        /* 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@centos6 ~]# 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-zo
nes-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

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

zone "magedu.com" {                           ##################
        type slave;
        masters {192.168.154.139;};
        file "slaves/magedu.com.slave"
};

重新加载配置文件。

[root@centos6 ~]# rndc reload
server reload successful
[root@centos6 ~]# ll /var/named/slaves/magedu.com.slave 
-rw-r--r--. 1 named named 433 Sep 28 16:08 /var/named/slaves/magedu.com.slave
[root@centos6 ~]# cat /var/named/slaves/magedu.com.slave
$ORIGIN .
$TTL 86400      ; 1 day
magedu.com              IN SOA  ns1.magedu.com. admin.magedu.com.magedu.com. (
                                2016092901 ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      ns1.magedu.com.
                        NS      ns2.magedu.com.
$ORIGIN magedu.com.
*                       CNAME   websrv
ns1                     A       192.168.154.139
ns2                     A       192.168.154.133
websrv                  A       192.168.154.139
www                     CNAME   websrv

传送的日志信息 [root@centos6 ~]# cat /var/log/messages | grep "named"

Sep 28 16:08:48 centos6 named[6656]: reloading configuration succeeded
Sep 28 16:08:48 centos6 named[6656]: reloading zones succeeded
Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: Transfer started.
Sep 28 16:08:48 centos6 named[6656]: transfer of 'magedu.com/IN' from 192.168.154.139#53: connected using 192.168.154.133#49986
Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: transferred serial 2016092901
Sep 28 16:08:48 centos6 named[6656]: transfer of 'magedu.com/IN' from 192.168.154.139#53: Transfer completed: 1 messages, 9 records, 242 bytes, 0.001 secs (242000 bytes/sec)
Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: sending notifies (serial 2016092901)

注意:默认建立辅助dns,主dns不需要做任何配置,辅助dns就能从主dns上同步数据。但是不安全。 dns默认任何人同步它的dns记录。默认任何做它的从dns。

[root@centos6 ~]# dig -t axfr magedu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t axfr magedu.com
;; global options: +cmd
magedu.com.             86400   IN      SOA     ns1.magedu.com. admin.magedu.com.magedu.com. 2016092901 86400 3600 604800 10800
magedu.com.             86400   IN      NS      ns1.magedu.com.
magedu.com.             86400   IN      NS      ns2.magedu.com.
*.magedu.com.           86400   IN      CNAME   websrv.magedu.com.
ns1.magedu.com.         86400   IN      A       192.168.154.139
ns2.magedu.com.         86400   IN      A       192.168.154.133
websrv.magedu.com.      86400   IN      A       192.168.154.139
www.magedu.com.         86400   IN      CNAME   websrv.magedu.com.
magedu.com.             86400   IN      SOA     ns1.magedu.com. admin.magedu.com.magedu.com. 2016092901 86400 3600 604800 10800
;; Query time: 1 msec
;; SERVER: 192.168.154.139#53(192.168.154.139)
;; WHEN: Wed Sep 28 16:36:46 2016
;; XFR size: 9 records (messages 1, bytes 242)

/etc/named.conf文件中,添加一条 allow-transfer {192.168.154.133;};   ###添加上辅助dns的IP地址。 只能是添加的指定主机可以同步dns数据。 从dns也可以从其它从dns那里同步数据。 [root@centos6 ~]# dig -t axfr magedu.com @192.168.154.133 使用dig命令  @指定抓取那个dns 所以辅助dns也需要配置该条目。禁止其它dns抓取数据。

正向区域数据库文件传输完毕。 反向区域数库的同理。

3、主dns配置 主dns上必须有辅助dns的NS记录和A记录,主dns改版本号,才能通知辅助dns更新区域数据库文件。

[root@centos7 ~]# cat /var/named/magedu.com.zone 
$TTL 1D
@       IN      SOA     ns1     admin.magedu.com (
                                2016092901
                                1D
                                1H
                                1W
                                3H
)
        IN      NS      ns1
        IN      NS      ns2              ######################
ns1     IN      A       192.168.154.139
ns2     IN      A       192.168.154.133  ######################
websrv  IN      A       192.168.154.139
www     IN      CNAME   websrv
*       IN      CNAME   websrv

4、同步机制 第一次启动从dns会从主dns上拉取数据。 主dns上数据有改变,必须改版本号才能同步区域数控文件。 从dns定期更新主dns上数据,如版本号无改变则不更新。

反向区域的从

从服务器配置 /etc/named.rfc1912.zones 添加反向区域信息。

zone "154.168.192.in-addr.arpa" {
        type slave;
        masters {192.168.154.139;};
        file "slaves/154.arpa.zone";
};

named-checkconf 检查主配置文件。

重新加载配置

[root@centos6 ~]# rndc reload
server reload successful
[root@centos6 ~]# ll /var/named/slaves/
total 8
-rw-r--r--. 1 named named 394 Sep 28 16:57 154.arpa.zone
-rw-r--r--. 1 named named 433 Sep 28 16:08 magedu.com.slave
[root@centos6 ~]# cat /var/named/slaves/154.arpa.zone 
$ORIGIN .
$TTL 86400      ; 1 day
154.168.192.in-addr.arpa IN SOA ns1.magedu.com. admn.magedu.com. (
                                2016092901 ; serial
                                86400      ; refresh (1 day)
                                600        ; retry (10 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      ns1.magedu.com.
$ORIGIN 154.168.192.in-addr.arpa.
133                     PTR     ns2.magedu.com.
139                     PTR     ns1.magedu.com
                        PTR     websrv.magedu.com.

注意主dns的反向区域需要有辅助dns的NS记录否则,即使序列号改变也不会通知给辅助dns。


创建子域

两种情况,访问量不大,可以父域和子域都在一个主机上。 在一个主机上创建 在父域dns上直接创建子域的区域信息。 配置/etc/named.rfc1912.zones

zone "game.magedu.com" {
    type master;
    file "game.magedu.com.zone";
};

在/etc/named下创建子域区域数据库文件。

注:在/etc/named.rfc1912.zones文件中,mageduc.com和game.magedu.com是平级的两个区域。 dns没有创建子域,只是相当于多了个区域而已。 同理可以什么都不修改,直接将子域的A记录放到父域的区域数据库中。

在子域的数据库文件中,需要定义NS和NS的A记录,A记录指向的是本主机。 区域数据库文件中尽量使用@符号,这样可以灵活引用配置文件中定义的区域名称。

$TTL 1D @       IN      SOA     ns1     admin.magedu.com (                                2016092902                                1D                                1H                                1W                                3H )        IN      NS      ns1        IN      NS      ns2 ns1     IN      A       192.168.154.139 ns2     IN      A       192.168.154.133

================================================================================

子域授权:分布式数据库 定义一个子区域:

1、主dns的父域的区域数据库需要配置子域信息。 加上如下信息。 study   IN      NS      ns1.study.magedu.com. ns1.study       IN      A       192.168.154.140

注意关闭 /etc/named.conf  ###dns安全相关的配置,不能注释掉。注释掉默认相当于开启。 dnssec-enable no; dnssec-validation no;

建立根、顶级域名服务器,二级域名服务器

原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/56548

(0)
yywyyw
上一篇 2016-11-01
下一篇 2016-11-01

相关推荐

  • NoSQL之MongoDB

    分布式系统理论 1、 CAP: 分布式系统只能满足其中两个  Consistency :一致性 Availibility:可用性 Partitions Tolerance :分区容错性 C,A : SQL 传统的数据库。 两段机制。 C,P :悲观枷锁机制,分布式加锁机制。加锁机制与SQL不太一样。 这里的C为最终一致性。 放弃C后的特例,既可以保证可用性,…

    2018-01-09
  • linux上的文件查找工具:locate和find

    一、非实时超找工具 locate     1、locate是查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db文件索引实在系统比较空闲的时候自动进行的,是系统的周期性任务,因为是周期性任务,所以有些短期的数据无法更新到数据库,如果需要马上应用,乣管理员手动更新数据库,用命令updatedb来执行。同时索引…

    Linux干货 2016-08-16
  • quota AND raid

    1.磁盘配额 将home目录独立出来单独的分区,限制用户的使用。 (1)先创建分区,如下图的分区sda6 (2)命令同步系统的新增加分区:partx –a /dev/sda (3)命令格式化新分区:     (4)把创建的设备挂载到/mnt/home下    (5)迁移数据,移动之前要确保home分区没有使用。权限是保…

    Linux干货 2016-09-19
  • oracle6.7使用udev作为asm

    1、需求 oracle6.7使用udev作为asm /dev/sdb <–> /dev/asm-diskb /dev/sdc <–> /dev/asm-diskc /dev/sdd <–> /dev/asm-diskd /dev/sde <–> /dev/asm-…

    Linux干货 2016-07-29
  • 基于Python和MoviePy库实现数据的动态展示

    基于Python和MoviePy库实现数据的动态展示 (翻译:以马内利)  原文链接:Data Animations With Python and MoviePy   Python拥有很多实现数据可视化的库,但是很少可以展示GIFs的动态视图。 这篇博客主要介绍怎样使用MoviePy库作为一个其他可视化库的通用插件。 Movi…

    2015-03-26