Loading... <h3><span style="font-family: 宋体;font-size: 16px">一、安装DNS服务器</span></h3> <p><span style="font-family: 宋体;font-size: 14px"> DNS服务的安装包为bind,使用yum直接安装即可:<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160227-33.png" title="1430295910139155.png" alt="1.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 安装完成后,查看DNS服务相关的文件:<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160227-88.png" title="1430296336488435.png" alt="2.png" /></span></p> <h3><span style="font-family: 宋体;font-size: 16px">二、配置正向区域</span></h3> <p><span style="font-family: 宋体;font-size: 14px"> 1、在配置正向区域之前,先来看下主配置文件中的内容:<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 全局配置段<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-12.png" title="1430300154886782.png" alt="1.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 其中:<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> listen-on port 53:监听端口,默认是本机,即只允许本机进行DNS查询,可以使用any开放给所有用启。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> direcoryt:指明正、反向解析区域的配置文件的存放路径。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> dump-file、statistics-file、memstatistics-file:这三个文件为统计信息文件,可以不设置。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> allow-query:定义哪些客户端可发送DNS查询请求。</span></p> <p><span style="font-family: 宋体;font-size: 14px"> recursion:开启递归查询。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-78.png" title="1430300527350765.png" alt="2.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> logging表示定义的日志的相关信息。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> zone表示区域设置,主配置文件中默认定义了根域。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> include表示后面的文件是此配置文件的组成部分。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 打开/etc/named.rfc1912.zone2文件,里面已经定义了许多默认的zone。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-45.png" title="1430300735357321.png" alt="4.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 说明:我们手动添加正、反向区域时,可以直接在主配置文件(/etc/named.conf)中定义,也可以在/etc/named.rfc1912.conf文件中定义。<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 2、配置正向区域<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 1)修改主配置文件</span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-69.png" title="1430324648339901.png" alt="1.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 2)添加区域记录<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-25.png" title="1430324678107695.png" alt="2.png" /></span></p> <p><span style="font-family: 宋体;font-size: 14px"> 3)创建区域文件<br /></span></p> <p><span style="font-family: 宋体;font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-3.png" title="1430324718622923.png" alt="3.png" /></span></p> <p><span style="font-size: 14px"> 格式说明: Name [TTL] IN RRType VALUE</span></p> <p><span style="font-size: 14px"> Name:资源记录的名称。<br /></span></p> <p><span style="font-size: 14px"> TTL:缓存时间,可以在文件开头统一定义。<br /></span></p> <p><span style="font-size: 14px"> IN:固定格式。<br /></span></p> <p><span style="font-size: 14px"> RRType:资源记录的类型。<br /></span></p> <p><span style="font-size: 14px"> VALUE:资源记录所对应的值。<br /></span></p> <p><span style="font-size: 14px"> 针对不同的资源记录,格式中各字段的内容也不尽相同:</span></p> <p><span style="font-size: 14px"> (1)SOA</span></p> <p><span style="font-size: 14px"> 任何解析库文件的第一个库文件必须是SOA。</span></p> <p><span style="font-size: 14px"> Name:当前区域名称,通常可以简写为@。</span></p> <p><span style="font-size: 14px"> VALUE:通常是主DNS服务器的FQDN,也可以是当前区域的区域名称。</span></p> <p><span style="font-size: 14px"> 以上图为例,说明SOA各字段的含义:</span></p> <p><span style="font-size: 14px"> @ IN SOA ns.test.com. admin.test.com. (</span></p> <p><span style="font-size: 14px"> serial number ;解析库的版本号,最长不超过10位;</span></p> <p><span style="font-size: 14px"> refresh time ;周期性同步时长;</span></p> <p><span style="font-size: 14px"> expire time ;过期时长;从服务器放弃解析之前所用的时长;</span></p> <p><span style="font-size: 14px"> negative answer ttl ;否定答案的统一缓存时长,对于没有解析到的记录的缓存时间;</span></p> <p><span style="font-size: 14px"> )</span></p> <p><span style="font-size: 14px"> 注意:admin.test.com.是邮件地址,由于此文件中@已有特定的含义,所以使用.来代替@。</span></p> <p><span style="font-size: 14px"> (2)NS:Name Server</span></p> <p><span style="font-size: 14px"> Name:区域名称。</span></p> <p><span style="font-size: 14px"> VALUE:DNS服务器的FQDN。</span></p> <p><span style="font-size: 14px"> 注意:</span></p> <p><span style="font-size: 14px"> 1、如果有多台NS服务器,每一台都必须有对应的NS记录;</span></p> <p><span style="font-size: 14px"> 2、对于正向解析文件来讲,每一个NS的FQDN都有一个A记录。</span></p> <p><span style="font-size: 14px"> (3)MX:Mail Exchanger</span></p> <p><span style="font-size: 14px"> Name:区域名称。</span></p> <p><span style="font-size: 14px"> VALUE:邮件服务器的FQDN。</span></p> <p><span style="font-size: 14px"> 注意:</span></p> <p><span style="font-size: 14px"> 1、如果有多台MX服务器,每一台都必须有对应的MX记录;</span></p> <p><span style="font-size: 14px"> 2、对于正向解析文件来讲,每一MX的FQDN都有一个A记录。</span></p> <p><span style="font-size: 14px"> (4)A:Address</span></p> <p><span style="font-size: 14px"> Name:FQDN。</span></p> <p><span style="font-size: 14px"> VALUE:IP。</span></p> <p><span style="font-size: 14px"> (5)CNAME</span></p> <p><span style="font-size: 14px"> Name:别名,新FQDN。</span></p> <p><span style="font-size: 14px"> VALUE:原FQDN。</span></p> <p><span style="font-size: 14px"> (6)PTR</span></p> <p><span style="font-size: 14px"> Name:逆向的主机IP地址(不包含网络地址)加后缀.in-addr.arpa。</span></p> <p><span style="font-size: 14px"> 例如:172.16.100.7/16其name为7.100.in-addr.arpa</span></p> <p><span style="font-size: 14px"> VALUE:FQDN。</span></p> <p><span style="font-size: 14px"> 3、启动服务</span></p> <p><span style="font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160228-9.png" title="1430330359431542.png" alt="5.png" /></span></p> <p><span style="font-size: 14px"> 4、测试DNS服务器</span></p> <p><span style="font-size: 14px"> 下面分别使用三个工具来测试DNS服务器。</span></p> <p><span style="font-size: 14px"> 1)host</span></p> <p><span style="font-size: 14px"> 命令格式:host -t [A|NS|SOA|MX|PRT] NAME DNS服务器</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160228-86.png" title="1430327645103775.png" alt="4.png" /></p> <p><span style="font-size: 14px"> 2)nslookup</span></p> <p><span style="font-size: 14px"> 命令格式:<br /></span></p> <p><span style="font-size: 14px"> server [DNS服务器]</span></p> <p><span style="font-size: 14px"> set type=[A|NS|SOA|MX]</span></p> <p><span style="font-size: 14px"> <Name></span></p> <p><span style="font-size: 14px"><img src="//cto.wang/usr/uploads/2016/07/20160703160229-36.png" title="1430327752707596.png" alt="5.png" /></span></p> <p><span style="font-size: 14px"> 3)dig</span></p> <p><span style="font-size: 14px"> 命令格式:dig -t [A|NS|SOA|MX|AXFR] @DNS服务器</span></p> <p><span style="font-size: 14px"> 其它常用选项:</span></p> <p><span style="font-size: 14px"> +trace:启动跟踪;</span></p> <p><span style="font-size: 14px"> +notrace:关闭跟踪;</span></p> <p><span style="font-size: 14px"> +recurse:启动递归;</span></p> <p><span style="font-size: 14px"> +norecurse:关闭递归;</span></p> <p><span style="font-size: 14px"> -x PTR:测试反向记录。</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-7.png" title="1430329557624669.png" alt="1.png" /></p> <h3><span style="font-size: 16px">三.配置反向区域</span></h3> <p><span style="font-size: 14px"> 1)添加反向区域记录</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-38.png" title="1430330401127408.png" alt="1.png" /></p> <p><span style="font-size: 14px"> 2、创建反向区域文件</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-80.png" title="1430330423919594.png" alt="2.png" /></p> <p><span style="font-size: 14px"> 3、重新加载DNS服务</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-72.png" title="1430330457308787.png" alt="3.png" /></p> <p><span style="font-size: 14px"> 4、测试DNS服务器</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-50.png" title="1430330472564309.png" alt="4.png" /></p> <h3><span style="font-size: 16px">四、主从复制</span></h3> <p><span style="font-size: 14px"> 1、网络拓扑<br /></span></p> <p><span style="font-size: 14px"> </span><img src="//cto.wang/usr/uploads/2016/07/20160703160229-78.png" title="1430359810371863.png" alt="blob.png" width="533" height="300" style="width: 533px;height: 300px" /></p> <p><span style="font-size: 14px"> 2、配置主、从DNS服务器<br /></span></p> <p><span style="font-size: 14px"> 1)在主DNS服务器的配置文件中添加NS记录 <br /></span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-86.png" title="1430361734814638.png" alt="1.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-91.png" title="1430362156138819.png" alt="4.png" /><span style="font-size: 14px"> 2)在从DNS服务器上安装bind。(略)</span></p> <p><span style="font-size: 14px"> 3)修改从DNS服务器的区域定义配置文件。<br /></span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160229-80-1.png" title="1430361982598520.png" alt="3.png" /></p> <p><span style="font-size: 14px"> 4)重新启动服务<br /></span></p> <p><img src="/upload/rmsaw1rxtix.png" title="1430362380712334.png" alt="5.png" /><img src="/upload/m2t0wyn3cra.png" title="1430362383134016.png" alt="6.png" /></p> <p><span style="font-size: 14px"> 5)验证<br /></span></p> <p><span style="font-size: 14px"> 由于CentOS不允许查看从服务器的区域配置文件,所以只能通过日志来了解同步情况。<br /></span></p> <p><img src="/upload/vcnjobcnmgz.png" title="1430585459233887.png" alt="2.png" /></p> <p><span style="font-size: 14px"> 上图为从服务器的日志信息,其信息表明区域传送成功。<br /></span></p> <p><img src="/upload/sijqgcqquqq.png" title="1430585449179410.png" alt="3.png" /></p> <p><span style="font-size: 14px"> 在DNS主目录中已经可以看到自动同步过来的区域文件,此时就可以使用从DNS服务器进行域名解析了。<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/htw4m3yfz51.png" title="1430418615244809.png" alt="3.png" /></span></p> <h3><span style="font-size: 16px">五、子域授权</span></h3> <p><span style="font-size: 14px"> 1、网络拓扑<br /></span></p> <p><span style="font-size: 14px"> <img src="/upload/3n340nfelnu.png" title="1430375495107257.png" alt="blob.png" width="547" height="319" style="width: 547px;height: 319px" /></span></p> <p><span style="font-size: 14px"> 2、修改主配置文件/etc/named.conf<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/vtuqmcb1ako.png" title="1430376737119456.png" alt="1.png" /></span></p> <p><span style="font-size: 14px"> 3、在父DNS服务器的区域中添加子服务顺的信息<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/otzny1ativy.png" title="1430375678703649.png" alt="1.png" /></span></p> <p><span style="font-size: 14px"> 4、配置子域的区域定义文件<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/mgbh2nxv4zh.png" title="1430375780603014.png" alt="2.png" /></span></p> <p><span style="font-size: 14px"> 5、创建区域配置文件<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/b0xdyvj30jm.png" title="1430375866663972.png" alt="3.png" /></span></p> <p><span style="font-size: 14px"> 6、重新加载服务</span></p> <p><span style="font-size: 14px"> 两台DNS服务器都要重新加载服务配置。<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/lnuhtabi5e4.png" title="1430375985102290.png" alt="4.png" /></span></p> <p><span style="font-size: 14px"> 7、测试<br /></span></p> <p><span style="font-size: 14px"> 使用父域的DNS服务器可以解析到子域的域名记录。<br /></span></p> <p><img src="/upload/2en2xdlwlv3.png" title="1430376613352840.png" alt="4.png" /></p> <h3><span style="font-size: 16px">六、转发器</span></h3> <p><span style="font-size: 14px"> 在上面的实例中,可以能过父域解析到子域的记录,那么通过子域能否解析到父域上的记录?如下图所示:<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/o1slp0duq5x.png" title="1430380337196813.png" alt="1.png" /></span></p> <p><span style="font-size: 14px"> 结果是解析不到的,不过我们可以通过配置转发器把test.com域的请求发送到父域DNS服务器上。<br /></span></p> <p><span style="font-size: 14px"> 转发器的配置有两种方式:<br /></span></p> <p><span style="font-size: 14px"> 1)配置转发区域,指明将哪个区域的请求转发到指定的服务器进行解析,如下图所示:<br /></span></p> <p><span style="font-size: 14px"><img src="/upload/y1dqsjy5drd.png" title="1430380491656381.png" alt="2.png" /></span></p> <p><span style="font-size: 14px"> 2)在/etc/named.conf的全局配置中指定转发,这样会把所有本地无法解析的请求都发送给指定服务器,如下图所示:</span></p> <p><span style="font-size: 14px"><img src="/upload/15ulm1fo1qu.png" title="1430380994139200.png" alt="1.png" /></span></p> <p><span style="font-size: 14px"> 解释:</span></p> <p><span style="font-size: 14px"> forward {only|first}</span></p> <p><span style="font-size: 14px"> only:表示只要对指定的服务器发起递归查询,如果依然查询不到就认为请求资源无效。</span></p> <p><span style="font-size: 14px"> first:对指定服务发起查询无果后,会继续从根服务进行的迭代查询。 </span></p> <h3><span style="font-size: 16px">七、DNS视图</span></h3> <p><span style="font-size: 14px"> 1、网络拓扑<br /></span></p> <p><span style="font-size: 14px"> <img src="/upload/2ipazprrvsd.png" title="1430416050125553.png" alt="blob.png" width="484" height="401" style="width: 484px;height: 401px" /></span></p> <p><span style="font-size: 14px"> 2、定义视图并创建区域文件<br /></span></p> <p><img src="/upload/gdkghv33nou.png" title="1430416297843119.png" alt="4.png" /><img src="/upload/0rrbzagt2pw.png" title="1430416300481166.png" alt="5.png" /></p> <p><span style="font-size: 14px"> 上图中共定义了三个视图,分别为inter、outer、other。每个视图都为特定的客户端提供解析服务,inter专门为192.168.253.0/24网络内的主机提供解析;outer专门为192.168.2.0/24网络内的主机提供解析;其它的主机全部由other视图提供服务。</span></p> <p><span style="font-size: 14px"> 每个视图中定义的相同的正向区域test.com,但是它们的区域配置文件又各不相同,如下图所示:</span></p> <p><span style="font-size: 14px"><img src="/upload/eqh1xbjwvtx.png" title="1430416863122625.png" alt="6.png" /><img src="/upload/rpfbllqscse.png" title="1430416869110099.png" alt="7.png" /><img src="/upload/kwvkjyeuads.png" title="1430416872898623.png" alt="8.png" /></span></p> <p><span style="font-size: 14px"> 这些不同的配置文件保证同样的域名能够解析出不同的IP地址。</span></p> <p><span style="font-size: 14px"> 3、重新启动服务</span></p> <p><span style="font-size: 14px"> 4、验证</span></p> <p><span style="font-size: 14px"> 分别使用3台客户端解析www.test.com,得到了不同的IP地址,如下图所示:</span></p> <p><span style="font-size: 14px"> <img src="/upload/ex2ef3nkp2p.png" title="1430417822861221.png" alt="9.png" /><img src="/upload/ezhfiz33nil.png" title="1430417833389656.png" alt="10.png" /> <br /></span></p> <p><img src="/upload/qu4ujp2a5lg.png" title="1430417894820931.png" alt="11.png" /></p> <p><span style="font-size: 14px"><span style="font-family: 宋体"> 使用</span>view<span style="font-family: 宋体">的注意事项:</span></span></p> <p class="MsoListParagraph" style="margin-left: 52px"><span style="font-size: 14px">1、 <span style="font-family: 宋体">通常只为内网客户端提供递归功能,提供根区域等,将所有的</span>zone<span style="font-family: 宋体">全都放到</span>view<span style="font-family: 宋体">中。</span></span></p> <p class="MsoListParagraph" style="margin-left: 52px"><span style="font-size: 14px">2、 <span style="font-family: 宋体">通常只为外网客户端提供本机所负责的区域,在</span>view<span style="font-family: 宋体">中只定义本地的</span>zone。 </span></p> <h3><span style="font-family: 宋体;font-size: 16px">八、DNS访问控制和ACL</span></h3> <p><span style="font-family: 宋体;font-size: 14px"> 1、访问控制</span></p> <p><span style="font-size: 14px"> allow-tranfer {}:允许向哪些服务器进行区域传送。</span></p> <p><span style="font-size: 14px"> allow-query {}:接受哪些客户端发起的查询请求。</span></p> <p><span style="font-size: 14px"> allow-update {}:是否允许动态更新A记录和PTR记录。</span></p> <p> <span style="font-size: 14px">allow-recursion {}:允许哪些客户端进行递归查询。</span></p> <p><span style="font-size: 14px"> recursion yes|no;:是否允许递归查询。</span></p> <p><span style="font-size: 14px"></span></p> <p><span style="font-size: 14px"> 2、ACL</span></p> <p><span style="font-size: 14px"> 1)CentOS内置了一些ACL范围:<br /></span></p> <p><span style="font-size: 14px"> none:没有任何对象。</span></p> <p><span style="font-size: 14px"> any:所有对象。</span></p> <p><span style="font-size: 14px"> localhost:<span style="font-size: 14px;font-family: 宋体">本机。</span></span></p> <p><span style="font-size: 14px"> localnet:<span style="font-size: 14px;font-family: 宋体">本机所在网络。</span></span></p> <p><span style="font-size: 14px"> 2)<span style="font-family:宋体">自定义</span>acl<span style="font-size: 14px;font-family: 宋体">:</span></span></p> <p><span style="font-size: 14px"><span style="font-size: 14px;font-family: 宋体"> 格式:<br /></span></span></p> <p><span style="font-size: 14px"> acl ACL_NAME<span style="font-size: 14px;font-family: 宋体">{</span></span></p> <p><span style="font-size: 14px"> ip;</span></p> <p><span style="font-size: 14px"> network;</span></p> <p><span style="font-size: 14px"> };</span></p> <p><span style="font-size: 14px"> 例如:<br /></span></p> <p><span style="font-size: 14px"> acl test {</span></p> <p><span style="font-size: 14px"> 192.168.253.0/24;</span></p> <p><span style="font-size: 14px"> 10.0.0.0/16;</span></p> <p><span style="font-size: 14px"> };</span></p> <p><span style="font-size: 14px"> allow-recursion { test; }<span style="font-size: 14px;font-family: 宋体">;</span> <span style="font-size: 14px;font-family: 宋体">允许</span>ACL<span style="font-size: 14px;font-family: 宋体">中定义的主机可以递归。</span></span></p> <p><span style="font-size: 14px"> 注意:acl</span><span style="font-size: 14px;font-family: 宋体">通常定义在主配置文件中的</span><span style="font-size: 14px">option</span><span style="font-size: 14px;font-family: 宋体">的前面。</span></p> <p></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信