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)
上一篇 2016-11-01 09:50
下一篇 2016-11-01 10:11

相关推荐

  • 马哥教育网络班22期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。     文件管理类命令有:cp,mv,rm     1. cp:copy           使用方法:      &nbs…

    Linux干货 2016-08-22
  • 系统服务之LVS 集群

    Linux集群(Cluster) 一.概论 1.定义     Cluster:计算机集合;     linux集群,多台Linux主机为解决某个特定问题组合起来形成的单个系统;     由于现代化业务上线的需求, 单服务器已经不能…

    Linux干货 2016-10-28
  • 网络班27期第五周作业

    N27_网络班 第五周作业 1、 显示当前系统上root、fedora或user1用户的默认shell [root@localhost ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 2、 找出/etc/rc.d/init.d/function文件中某单词后面跟一组小括号的行,形如…

    Linux干货 2017-08-28
  • HTTP详解(1)-工作原理

    1. HTTP简介          HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输…

    Linux干货 2015-04-04
  • 走进Linux(一)

    一、计算机基础 世界上第一台计算机于1946年诞生于美国宾夕法尼亚大学,名叫:ENIAC。     计算机主要由硬件系统和软件系统两部分组成:     1、组成硬件的五大部分:    控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序…

    Linux干货 2016-09-22
  • Apache配置压缩优化时报错——undefined symbol: inflateEnd

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1345264    圣诞都过了,好久没来51发博文了。最近一直在忙考试和其他一些私人事务,感觉长期不发博文,有点不好。不是不发,实在是最近…

    Linux干货 2016-08-15