接上篇:DNS-实验3_委派子域和转发

五、             View 功能的实现:
 
好听点说,这个就是传说中的智能DNS。一台web服务器,有多个IP,现在由于安全需要,我们要让外部访问解析成外部IP,内部访问解析成内部IP,DNS如何实现?操作如下:
 
实验环境:rhel5.8(干净的) bind97 172.16.35.1/16(内部IP)     192.168.0.3/24(外部IP)
 
  
  1. yum remove bin-libs bind-utils –y   #先删除原来的  
  2. yum install bind97 bind97-libs bind97-utils –y      #安装所需软件包  
  3. vim /etc/named.conf  
  4. acl "innernet" {        //定义访问控制列表,此功能很强大  
  5.     127/8;  
  6.     172.16/16;  
  7. };  
  8. options {  
  9.         directory "/var/named";  
  10.         version "You guess..."; //隐藏版本号  
  11. };  
  12. view "intranet" {  
  13.         match-clients { innernet; }; //当访问的来源属于访问控制列表,在进入以下查询  
  14.         zone "." IN {  
  15.                 type hint;  
  16.                 file "named.ca";  
  17.         };  
  18.         zone "localhost" IN {  
  19.                 type master;  
  20.                 file "mos.localhost.zone";  
  21.         };  
  22.         zone "0.0.127.in-addr.arpa" IN {  
  23.                 type master;  
  24.                 file "127.0.0.zone";  
  25.         };  
  26.         zone "mos.com" IN {  
  27.                 type master;  
  28.                 file "mos.com.intranet";  
  29.         };  
  30. };  
  31. view "internet" {  
  32.         match-clients { any; }; //当访问IP来自任意地址,则进入查询  
  33.         zone "mos.com" IN {  
  34.                 type master;  
  35.                 file "mos.com.internet";  
  36.         };  
  37. };  
  38. # /var/named/mos.localhost.zone和/var/named/127.0.0.zone以及/var/named/172.16.zone这三个文件,保留原来的即可  
  39. vim /var/named/mos.com.intranet  
  40. $TTL 86400   
  41. $ORIGIN mos.com.  
  42. @       IN SOA  ns.mos.com. root.mos.com. (  
  43.                     23  ; serial  
  44.                     1H  ; refresh  
  45.                     5M  ; retry  
  46.                     7D  ; expire  
  47.                     1D )    ; minimum  
  48.         IN  NS  ns  
  49.         IN  NS  ns2  
  50.         IN  MX 10   mail  
  51. ns      IN  A   172.16.35.1  
  52. ns2     IN  A   172.16.35.2  
  53. ns3     IN  A   172.16.35.1  
  54. mail        IN  A   172.16.35.1  
  55. www     IN  A   172.16.35.2  
  56. ftp     IN  CNAME   ns  
  57. vim /var/named/mos.com.internet  
  58. $TTL 86400   
  59. $ORIGIN mos.com.  
  60. @       IN SOA  ns.mos.com. root.mos.com. (  
  61.                     23  ; serial  
  62.                     1H  ; refresh  
  63.                     5M  ; retry  
  64.                     7D  ; expire  
  65.                     1D )    ; minimum  
  66.         IN  NS  ns  
  67.         IN  NS  ns2  
  68.         IN  MX 10   mail  
  69. ns      IN  A   192.168.0.160  
  70. ns2     IN  A   192.168.0.33  
  71. mail        IN  A   192.168.0.105  
  72. www     IN  A   192.168.0.160  
  73. ldap        IN  A   192.168.0.1  
  74. nmap        IN  A   192.168.0.105  

保存退出,重启服务器OK。


六、 日志功能的实现:

 
  
  1. vim /etc/named.conf  
  2. //在options下增加如下段落  
  3. logging {           //日志关键字  
  4.         channel query_log { //配置日志保存通道  
  5.                 file "/var/log/bind.queries.log" versions 10 size 10M; //十个,每个10M大,超过删除  
  6.                 severity dynamic;       //动态记录日志  
  7.                 print-category yes;    //记录日志类别  
  8.                 print-severity yes; //记录消息级别  
  9.                 print-time yes;   //既然日志时间  
  10.         };  
  11.         category queries { query_log; };  //上面通道配置的,使其生效  
  12. };  
  13. touch /var/log/bind.queries.log  
  14. chown named.named /var/log/bind.queries.log  
  15. chown 640 /var/log/bind.queries.log  

一般情况下,named没有对/var/log的写权限,所有,需要手动创建,否则会报错..