实验题目:

    1.DNS的正反向解析

    2.DNS的主从同步

 

实验环境:

    1.VMware虚拟机

    2.两台以上linux子机

    3.XP测试机

 

实验过程:

一、DNS的正反向解析

    实验拓扑:

        wKioL1PmRf2i2IooAADQWPCQOLc175.jpg

    说明:其实这里面不需要指定网关,只是为了好看就设定了吧。服务器的DNS指向自己。要不然用ping的时候ping不通。

    目的就是要让客户端用域名解析到IP或用IP解析到域名。这里只是为了测试,实际情况下,反解风险很大,慎用!

 

    1.服务器端:

        安装DNS服务器(bind),挂载光盘镜像

        wKioL1PmR36Ak0B2AAFEG1hjXIU660.jpg

        

        安装bind服务和bind-utils服务(后面用到的工具测试)

        wKioL1PmR8aRY-PIAACptGY4iA4789.jpg

        wKiom1PmRsyymdpjAACqcVRJuBo796.jpg

 

        下面我们来看看DNS的主配置文件里是什么意思

        options {                            //定义服务器的全局选项

            directory   "/var/named";            //定义服务器区配置文件的工作目录 

            dump-file   "/var/named/data/cache_dump.db";    //服务器存放数据库的路径

            statistics-file "/var/named/data/named_stats.txt";    //定义了服务器统计信息文件的路径

        };

        zone  "."  IN  {                    //定义根区域,容器指令zone的作用是定义一个DNS区域,

                                                   //指令后面跟着DNS区域的名称,根区域的名称是“.”。

                                                   //在容器指令zone花括号内定义该DNS区域的选项。

 

        type hint;                            //区域的类型为“hint”,当服务器启动的时候,它能找到

                                                   //根DNS服务器并得到根DNS服务器的最新列表。

 

        file "named.ca";                //指定根服务器文件为named.ca

        };

 

    2.正向解析配置

        定义一个区域ky.com,注意:每一句后面必须要有“;”,要不然启动时会报错,file文件指定的文件名可以随便取,不是固定的,但是一会要创建的区域库文件的文件名必须跟这里file里的一致。这里的zone是自己添加进去的。

        编辑文件:#vim /etc/named.rfc1912.zones

        wKioL1PmSkCD0ik6AAAjqKShSlM213.jpg

 

        创建区域库文件

        #cd  /var/named/

        #vim ky.com

        wKioL1PmSqPzXpXoAACnUGhwI34020.jpg

        文件详解:

            $TTL 36000:定义允许客户端缓存来自查询的数据的默认时间,单位是秒,也可以自己设定

            H(小时)、D(天)、W(星期)来做单位。

            @:默认代表本区域,即ky.com.

            IN:代表类型属于Internet类,这个格式是固定不变的

            SOA:Start of Authority(起始授权记录)的缩写,它是主要名称服务器区域文件中必须要设定

            的资源记录,它表示创建它的DNS服务器是主要名称服务器。

            ky.com.:定义了负责该区域的名称解析的授权主机名,这样DNS服务器才会知道谁控制了这

            个区域。

            注意:在配置文件中,完整的主机地址末尾要加上一个点,以表示是一个完整的主机名,这是

            因为任何末尾没加“.”的名称都会被视为本区域内的相对域名,如www.ky.com(末尾没有点),

            则会被当成www.ky.com.ky.com来解析。

            root.ky.com.:设置管理员的邮箱地址,由于已经在前面使用了服号“@”代表本区域的名

            称,因此管理员邮箱使用“.”代替“@”。

            20140801:serial,序列号,不能超过十位数。序列号用于标识该区域的数据是否有更新,当

            辅助DNS服务器与主DNS服务器联系并进行数据更新时,就会比较这个数值。如果发现这个数

            值比它最后一次更新的数值大时,则进行区域复制,否则放弃区域复制操作,所以每次修改完

            都要增加序列号的值。

            1H:refresh,定义更新间隔,即规定辅助域名服务器多长时间查询一个主服务器,从主服务器

            获得最新数据,以保证辅助服务器的数据是更新的

            5M:retry,定义了重试间隔的值。当辅助服务器在更新时间到期后,仍然无法与主名称服务器

            取得联系时,重试区域复制的间隔。通常间隔应该小于更新间隔

            1D:expiry time,定义过期时间的值。过期时间用于定义辅助名称服务器在改时间内一直不能

            与主名称服务器取得联系时,则放弃重试并丢弃这个区域的数据。

            2D:minimum,否定答案的统一缓存时长,如果开头没有定义$TTL,则以此值为准。

            IN NS ky.com.:定义名称服务器NS资源记录。

            ky.com. IN A 1.1.1.1:定义主机地址A记录。

            *:泛解析,表示凡是主机名输错的(域名输入正确)都会解析到哪。

 

        重启服务

        wKioL1PmTcHgBfmXAABSmsQhQ5w720.jpg

 

        查看正向解析,本机测试:

        wKioL1PmTinCBlL1AABwmdzuGz4002.jpg

        wKiom1PmTSqga2TdAABfyZ3JQfo234.jpg

        wKioL1PmTl_T5qyBAAB6uLSROf8570.jpg

 

    3.反向解析

        定义一个反向区域

        wKioL1PmTtrzaSGJAAA9tMIsDpI302.jpg

 

        创建反向解析文件

        wKiom1PmTfDAvhW_AACaTbof-hQ268.jpg

 

        重启服务后,我们来本机检测一下

        wKiom1PmTxTxZ2HnAACFUagRGmI587.jpg

        wKioL1PmUEzQuDjdAAB-WRCsD7U717.jpg

 

        下面来用客户端测试一下

        wKioL1PmULLxzwImAAG7IY3gqZE372.jpg

        wKiom1PmT8DDr9I4AADgTG59WmM225.jpg

        到此,正反向解析顺利完成。

 

二、主从同步

        实验拓扑:

        wKioL1PmUU6DLcEfAADjsYvmp5U865.jpg

 

        实验目的:

            辅助DNS服务器要自动从主DNS上获取解析信息,从而实现同步备份功能

 

 

        实验过程:

            1.主DNS服务器按照上例,辅助DNS服务器要装DNS服务

            2.在主DNS服务器里添加一条NS记录,指定从服务的NS,添加A记录。

        wKioL1PmUhGC9juGAADRmdG2kMo680.jpg

        wKiom1PmUQ_jDSiAAADPihJPjYQ290.jpg

 

        3.在辅助DNS上定义辅助区域,注意:因为是备份服务器,所以这里的配置要和主服务器上的配置完全一样(主机名和区域文件名),还要指明自己是备份服务器(slave),指明主服务器是谁,这里的file里指的是路径,一般放在var/named/slaves下,因为创建的文件的属组是named,named在/var/named目录下没有写权限,所以要在slaves目录下。

        wKiom1PmUgvSzdDyAAC0-kq90ek408.jpg

 

        4.这样就可以了,我们来测试一下,在主服务器上添加A记录,看看能同步过来不

        wKioL1PmU73zwwalAAD1CX9uNjA294.jpg

        wKiom1PmUr7w3_OQAADN5Xh2-bo637.jpg

        #rndc reload

        查看辅助DNS同步过来的文件

        wKiom1PmUweCxTrTAAFbsJEiffY727.jpg

        wKioL1PmVD3ASGMrAAFp824bevU920.jpg

        这样主从同步就完成了。

        注意:当主服务器挂掉之后,备用服务器会立即启用,但是,备用服务器还是一直会去请求主服务器,在这之间有个时间,是说备用服务器每过多长时间去向主服务器发送请求,经过多长时间主服务器不应答,就放弃,这时间是前面写库文件里面定义的。那这时有人要问了,把expire时间改长点不就可以了么?那当然不行了,因为备用服务器的库只能从主服务器中获得,如果主服务器长时间不在,它自己的库就无法更新。