了解DNS服务器基本点后,下面就让我们实战一下吧!

实例一:
假设某公司扩展市场、财务两个部门(也可称为两个子域),这两个部门都想实现DNS服务器自我管理;而这两个部门在公司以前的域名mageedu.com上扩展出两个小组织,分别为:
市场部:www.market.mageedu.com
财务部:
www.fin.mageedu.com
前提:需要四台虚拟机,分别定义为linux1、linux2、linux3、linux4,规定linux1为主DNS服务器、linux2为从DNS服务器、linux3为子域fin.mageedu.com服务器、linux4为子域market.mageedu.com服务器;
主DNS服务器IP地址:172.16.52.2
从DNS服务器IP地址:172.16.52.3
mail服务器IP地址:172.16.52.14
www服务器IP地址:172.16.52.15
子域fin.mageedu.com服务器IP地址:172.16.52.10
子域market.mageedu.com服务器IP地址:172.16.52.11

声明:下面我使用的是bind97版本进行演示,内容上不只是针对于上面的操作,同时我也演示了一些其他内容操作
(对于子域我们只考虑正向区域划分,同时对于子域服务器我只演示fin.mageedu.com,另一个子域服务器配置相同):

 
  
  1. 主DNS服务器操作内容:  
  2. 第一步:下载、安装DNS服务器软件包bind97;  
  3. [root@localhost ~]#cd /etc/yum.repos.d/  
  4. [root@localhost yum.repos.d]#lftp 172.16.0.1       ##根据自己的服务器地址下载软件包  
  5. lftp>cd pub/gls/server.repo  
  6. lftp>get server.repo  
  7. lftp>bye  
  8. [root@localhost yum.repos.d]#yum install bind97 bind-utils  
  9. 第二步:编辑主配置文件/etc/named.conf  
  10. [root@localhost ~]#vim /etc/named.conf  
  11. options {  
  12.    directory      "/var/named";  
  13.    allow-recursion { 172.16.0.0/16; };  
  14. };  
  15. zone "." IN {     ##定义根区域,根区域数据文件bind97包中自带,我们可以使用bind97自带区域数据文件;  
  16.      type hint;  
  17.      file "named.ca";  
  18. };  
  19. zone "localhost" IN {    ##定义本地主机区域,本地主机区域文件也是自带;  
  20.      type master;  
  21.      file "named.localhost";  
  22. };  
  23. zone "0.0.127.in-addr.arpa" IN {   ##定义本地环回区域,本地环回区域文件也是自带;  
  24.      type master;  
  25.      file "named.loopback";  
  26. };  
  27. zone "mageedu.com" IN {    ##定义正向区域,为了简便我们自己编辑正向区域文件  
  28.      type master;  
  29.      file "mageedu.com.zone";  
  30. };  
  31. zone "52.16.172.in-addr.arpa" IN {    ##定义反向区域,同样我们自己编辑反向区域文件  
  32.      type master;  
  33.      file "172.16.52.zone";  
  34. };  
  35. :wq  
  36. 第三步:编辑正向区域数据文件mageedu.com.zone  
  37. [root@localhost ~]#cd /var/named/  
  38. [root@localhost named]#vim mageedu.com.zone  
  39. $TTL 86400  
  40. @       IN      SOA     ns1.mageedu.com.      admin.fin.mageedu.com. (  
  41.                           2013040201     ##序列号,序列号可以自定义,一般长度为8-10  
  42.                           2H        ##刷新时间  
  43.                           10M        ##重试时间  
  44.                           7D          ##过期时间  
  45.                           2D )         ##否定答案的生存时间  
  46.         IN      NS      ns1  
  47.         IN      MX  10  mail  
  48. ns1     IN      A       172.16.52.2  
  49. mail    IN      A       172.16.52.14  
  50. www     IN      A       172.16.52.15   
  51. :wq  
  52. [root@localhost named]#chmod 640 mageedu.com.zone  
  53. [root@localhost named]#chown root:named mageedu.com.zone  
  54. [root@localhost named]#service named start  
  55. 第四步:编辑反向区域数据文件172.16.52.zone  
  56. [root@localhost named]#vim 172.16.52.zone  
  57. $TTL 86400  
  58. @     IN    SOA    ns1.mageedu.com.    admin.mageedu.com. (  
  59.                                2013040201  
  60.                                1H  
  61.                                5M  
  62.                                2D  
  63.                                6H )  
  64.                  IN    NS      ns1.mageedu.com.  
  65. 2                IN    PTR     ns1.mageedu.com.  
  66. 14               IN    PTR     mail.mageedu.com.  
  67. 15               IN    PTR     www.mageedu.com.  
  68. :wq  
  69. [root@localhost named]#chmod 640 172.16.52.zone      ##不让任何人有篡改区域数据文件更改其权限  
  70. [root@localhost named]#chown root:named  172.16.52.zone    ##更改区域文件的属主、属组  
  71. [root@localhost named]#named-checkconf      ##检测主配置文件是否有语法错误  
  72. [root@localhost named]#named-checkzone "mageedu.com" mageedu.com.zone     ##检测区域文件是否有语法错误  
  73. [root@localhost named]#named-checkzone "52.16.172.in-addr.arpa" 172.16.52.zone  
  74. [root@localhost named]#service named  restart  
  75. 主DNS服务器上时刻增添着新内容,为了数据安全的考虑,在公司内部配置一台从DNS服务器,  
  76. 隔一定时间把主DNS服务器的数据同步过来实现数据备份功能,接下来模拟配置从DNS服务器;  
  77. (切记配置从DNS服务器后一定要在主DNS服务器的正向数据文件中添加从DNS服务器的A、NS资源记录)  
  78. 从DNS服务器操作内容:  
  79. 第一步:先卸载bind-libs、bind-utils,然后同样在从DNS服务器上安装bind97软件包,这个过程我就不再演示了  
  80. 第二步:编辑主配置文件  
  81. [root@localhost ~]#setenforce 0    ##一定要关闭SELinux文件  
  82. [root@localhost ~]#vim /etc/named.conf  
  83. options {  
  84.    directory      "/var/named";  
  85.    allow-recursion { 172.16.0.0/16; };   ##允许递归172.16.0.0网段  
  86. };  
  87. zone "." IN {     ##定义根区域,bind97包中自带根区域数据文件,我们直接使用bind97自带区域数据文件;  
  88.      type hint;  
  89.      file "named.ca";  
  90. };  
  91. zone "localhost" IN {    ##定义本地主机区域,本地主机区域文件也是自带;  
  92.      type master;  
  93.      file "named.localhost";  
  94. };  
  95. zone "0.0.127.in-addr.arpa" IN {   ##定义本地环回区域,本地环回区域文件也是自带;  
  96.      type master;  
  97.      file "named.loopback";  
  98. };  
  99. zone "mageedu.com" IN {    ##定义从DNS服务器正向区域,在软件包中有自带的区域文件,大家可以进入/var/named/slaves/查看一下,在这里为了简便我们等一下自己编辑正向区域文件  
  100.      type slave;  
  101.      file "slaves/mageedu.com.zone";  
  102.      masters { 172.16.52.2; };    ##指定从DNS服务器正向数据文件依赖的主DNS服务器  
  103. };  
  104. zone "52.16.172.in-addr.arpa" IN {    ##定义从DNS服务器反向区域,同样我们自己编辑反向区域文件  
  105.      type slave;  
  106.      file "slaves/172.16.52.zone";  
  107.      masters  { 172.16.52.2; };   ##指定从DNS服务器反向数据文件依赖的主DNS服务器  
  108. };  
  109. :wq  
  110. [root@localhost ~]#named-checkconf  
  111. [root@localhost ~]#chgrp named /etc/named.conf     ##在/var/named/slaves目录下的属主、属组都是root用户,而named进程的属主、属组都是named,因此要把该目录下的属性修改成named  
  112. [root@localhost ~]#service named start  
  113. 第三步:在主DNS服务器中的正向、反向区域文件分别添加从DNS服务器的记录  
  114. [root@localhost named]#vim mageedu.com.zone  
  115. $TTL 86400  
  116. @       IN      SOA     ns1.mageedu.com.      admin.fin.mageedu.com. (  
  117.                           2013040202     ###改变了数据内容,要把之前的序列号加1  
  118.                           2H         
  119.                           10M          
  120.                           7D            
  121.                           2D )           
  122.         IN      NS      ns1  
  123.         IN      NS      ns2        ##添加的从DNS服务器NS记录  
  124. ns1     IN      A       172.16.52.2  
  125. ns2     IN      A       172.16.52.3     ##添加的从DNS服务器A记录  
  126.         IN      MX  10  mail  
  127. mail    IN      A       172.16.52.14  
  128. www     IN      A       172.16.52.15   
  129. :wq  
  130. [root@localhost named]#service named  restart  
  131. [root@localhost named]#vim 172.16.52.zone  
  132. $TTL 86400  
  133. @     IN    SOA    ns1.mageedu.com.    admin.mageedu.com. (  
  134.                                2013040202     ###把序列号加1  
  135.                                1H  
  136.                                5M  
  137.                                2D  
  138.                                6H )  
  139.                  IN    NS      ns1.mageedu.com.  
  140.                  IN    NS      ns2.mageedu.com.     ##添加的从DNS服务器NS记录  
  141. 2                IN    PTR     ns1.mageedu.com.  
  142. 3                IN    PTR     ns2.mageedu.com.     ##添加的从DNS服务器PTR记录  
  143. 14               IN    PTR     mail.mageedu.com.  
  144. 15               IN    PTR     www.mageedu.com.  
  145. :wq  
  146. [root@localhost named]#service named  restart  
  147. 第四步:通过使用tail /var/log/messages查看主、从DNS服务器同步数据情况,这里我就不演示了;  
  148. 子域DNS服务器操作:  
  149. 第一步:在主DNS服务器中,编辑/var/named/mageedu.com.zone区域文件  
  150. [root@localhost named]#vim mageedu.com.zone  
  151. $TTL 86400  
  152. @       IN      SOA     ns1.mageedu.com.      admin.mageedu.com. (  
  153.                           2013040201   ##在区域文件中增添新内容,序列号要加1,这里我们可以把01改为02,查看从DNS服务器是否自动增添我们所增子域信息;  
  154.                           2H  
  155.                           10M  
  156.                           7D  
  157.                           2D )  
  158.         IN      NS      ns1  
  159.         IN      NS      ns2  
  160.         IN      MX  10  mail  
  161. ns1     IN      A       172.16.52.2  
  162. ns2     IN      A       172.16.52.3  
  163. mail    IN      A       172.16.52.14  
  164. www     IN      A       172.16.52.15  
  165. fin     IN      NS      ns1.fin  
  166. market  IN      NS      ns1.market  
  167. ns1.fin IN      A       172.16.52.10  
  168. ns1.market IN   A       172.16.52.11  
  169. :wq    
  170. [root@localhost named]#service named restart  
  171. 第二步:切入到从DNS服务器查看/var/named/slaves/mageedu.com.zone是否同步到主DNS服务器增添内容  
  172. [root@localhost slaves]#cat mageedu.com.zone  
  173. 第三步:进入子域fin.mageedu.com服务器中编辑主配置文件  
  174. [root@localhost ~]#vim /etc/named.conf  
  175. options {  
  176.    directory      "/var/named";  
  177.    allow-recursion { 172.16.0.0/16; };   ##允许递归172.16.0.0网段  
  178. };  
  179. zone "." IN {     ##定义根区域,根区域数据文件bind97包中自带,我们可以使用bind97自带区域数据文件;  
  180.      type hint;  
  181.      file "named.ca";  
  182. };  
  183. zone "localhost" IN {    ##定义本地主机区域,本地主机区域文件也是自带;  
  184.      type master;  
  185.      file "named.localhost";  
  186. };  
  187. zone "0.0.127.in-addr.arpa" IN {   ##定义本地环回区域,本地环回区域文件也是自带;  
  188.      type master;  
  189.      file "named.loopback";  
  190. };  
  191. zone "fin.mageedu.com" IN {  ##定义子域区域  
  192.      type master;  
  193.      file "fin.mageedu.com.zone";  
  194. };  
  195. :wq  
  196. [root@localhost ~]#service named restart  
  197. 第四步:在子域名称服务器中编辑fin.mageedu.com.zone区域数据文件      
  198. [root@localhost named]#vim fin.mageedu.com.zone  
  199. $TTL 86400  
  200. @       IN      SOA     ns1.fin.mageedu.com.      admin.fin.mageedu.com. (  
  201.                           2013040201  
  202.                           2H  
  203.                           10M  
  204.                           7D  
  205.                           2D )  
  206.         IN      NS      ns1  
  207.         IN      MX  10  mail  
  208. ns1     IN      A       172.16.52.10  
  209. mail    IN      A       172.16.52.11  
  210. www     IN      A       172.16.52.12   
  211. :wq  
  212. [root@localhost named]#chmod 640 fin.mageedu.com.zone  
  213. [root@localhost named]#chown root:named fin.mageedu.com.zone  
  214. [root@localhost named]#service named restart  
  215. [root@localhost named]#dig -t A  www.fin.mageedu.com.zone @172.16.52.10      ##通过本地主机解析www.fin.mageedu.com.zone记录  
  216. [root@localhost named]#dig -t NS  fin.mageedu.com.zone @172.16.52.10    ##解析NS记录  
  217. 如果使用指定主DNS服务器地址解析,这时候子域是解析不到父域的,我们可以使用forward命令指定通过哪个服务器进行转发;  
  218. 要想实现这个功能必须在子域名称服务器的主配置文件中添加一个转发区域;  
  219. zone "mageedu.com" IN {  
  220.       type forward;  
  221.       forward first;  
  222.       forwarders { 172.16.52.2; };    ##定义一个转发域,通过父域地址进行转发  
  223. }; 

实例二:
利用一台主DNS服务器实现智能DNS解析,另两台充当联通、电信网段的客户机,规划如下:
联通网段:172.16.0.0/16、127.0.0.0/8
电信网段:除了联通网段之外的网段(主要考虑除了联通、电信的网段无法进行智能解析)
说明:使用智能DNS解析,必须要借助视图,而所有的区域都要定义在视图中;

 
  
  1. 第一步:在主DNS服务器上编辑主配置文件(这里我使用的主DNS服务器IP地址为172.16.52.2)  
  2. [root@localhost ~]#vim /etc/named.conf  
  3. acl telecom {  
  4.      172.16.0.0/16;   
  5.      127.0.0.0/8;  
  6. };  
  7. options {  
  8.      directory   "/var/named";   
  9.      allow-recursion { telecom; };  
  10. };  
  11. view telecom {  
  12.      match-clients { telecom; };  
  13.      zone "mageedu.com" IN {  
  14.            type master;  
  15.            file "telecom.mageedu.com.zone";  
  16.          };  
  17. };  
  18. view unicom {  
  19.      match-clients { any; };  
  20.      zone "mageedu.com" IN {  
  21.            type master;  
  22.            file "unicom.mageedu.com.zone";  
  23.          };  
  24. };  
  25. :wq  
  26. [root@localhost ~]#named-checkconf  
  27. [root@localhost ~]#cd /var/named/  
  28. 第二步:在主DNS服务器上编辑telecom.mageedu.com.zone区域文件  
  29. [root@localhost named]#vim telecom.mageedu.com.zone  
  30. $TTL 43200  
  31. @        IN       SOA       ns1.mageedu.com.       admin.mageedu.com. (  
  32.                           2013040201  
  33.                           2H  
  34.                           10M  
  35.                           7D  
  36.                           2D )  
  37.         IN      NS      ns1  
  38.         IN      MX  10  mail  
  39. ns1     IN      A       172.16.52.2  
  40. mail    IN      A       172.16.52.11  
  41. www     IN      A       172.16.52.12                         
  42. :wq  
  43. [root@localhost named]#chgrp named telecom.mageedu.com.zone  
  44. [root@localhost named]#chmod 640 telecom.mageedu.com.zone  
  45. 第三步:在主DNS服务器上编辑unicom.mageedu.com.zone区域文件  
  46. [root@localhost named]#vim unicom.mageedu.com.zone  
  47. $TTL 43200  
  48. @        IN       SOA       ns1.mageedu.com.       admin.mageedu.com. (  
  49.                           2013040201  
  50.                           2H  
  51.                           10M  
  52.                           7D  
  53.                           2D )  
  54.         IN      NS      ns1  
  55.         IN      MX  10  mail  
  56. ns1     IN      A       172.16.52.2  
  57. mail    IN      A       192.168.0.10  
  58. www     IN      A       192.168.0.11  
  59. :wq  
  60. [root@localhost named]#service named restart  
  61. 第四步:分别使用联通、电信客户机进行测试www.mageedu.com  
  62. [root@localhost named]#dig -t A www.mageedu.com @172.16.52.2 

心动不如行动吧!