Named服务配置 dns server配置

搜索Linux DNS,映入眼帘的是鸟哥的文章: http://linux.vbird.org/linux_server/0350dns.php 
这篇长达11节的文章,看到Zone文件时就开始晕菜了。 
继续寻找下一篇文章,来自于安全中国的: http://www.anqn.com/os/linux/2010-03-30/a09125458.shtml 
在战胜了瞌睡虫的同时,DNS服务器终于跑上来了。 

以前教授给我的理念就是将域名作为一棵倒挂的树,从根节点开始解析,直至叶子节点。通过下图更明确一下: 
 
从图的描述可以得知,  根域是以“ 点(.)”表示。明了这一点非常重要,因为它的意义会在Zone文件中得到体现。 

再加上客户端的请求解析流程图,会让整个流程更加清晰明了: 
 
详细的请求的顺序为: 
  1. 客户端Host文件标识
  2. 客户缓存
  3. 服务器区域设定
  4. 服务器缓存
  5. 其它服务器


理念明白后,就开始服务器的配置历程了。 
首先,看看已经安装好的bind程序。 
Sh代码   收藏代码
  1. $ rpm -q bind  
  2. bind-9.7.1-2.P2.fc13.i686  
  3. $ rpm -q bind-chroot  
  4. bind-chroot-9.7.1-2.P2.fc13.i686  


熟悉默认配置 /etc/named.conf: 
Conf代码   收藏代码
  1. //  
  2. // named.conf  
  3. //  
  4. // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS  
  5. // server as a caching only nameserver (as a localhost DNS resolver only).  
  6. //  
  7. // See /usr/share/doc/bind*/sample/ for example named configuration files.  
  8. //  
  9.   
  10. options {  // 定义全局变量  
  11.         listen-on port 53 { 127.0.0.1; }; // ipv4 监听端口  
  12.         listen-on-v6 port 53 { ::1; };    // ipv6 监听端口  
  13.         directory       "/var/named";     // 制定装载zone区域文件的目录  
  14.         dump-file       "/var/named/data/cache_dump.db";    // cache  
  15.         statistics-file "/var/named/data/named_stats.txt";  // statistics  
  16.         memstatistics-file "/var/named/data/named_mem_stats.txt";  
  17.         allow-query     { localhost; };   // 允许访问列表  
  18.         recursion yes;  
  19.   
  20.         dnssec-enable yes;  
  21.         dnssec-validation yes;  
  22.         dnssec-lookaside auto;  
  23.   
  24.         /* Path to ISC DLV key */  
  25.         bindkeys-file "/etc/named.iscdlv.key";  
  26. }; // "}"后也得分号结束  
  27.   
  28. logging {  
  29.         channel default_debug {  
  30.                 file "data/named.run";  
  31.                 severity dynamic;  
  32.         };  
  33. };  
  34.   
  35. zone "." IN {            // "."代表根区域  
  36.         type hint;       // 根区域的类型就为hint  
  37.         file "named.ca"; // 指定zone文件,默认已经生成  
  38. };  
  39.   
  40. include "/etc/named.rfc1912.zones";  

注意,在最后一行还include一个conf文件,将本地地址都进行了映射。 

我们需要修改option的内容,并且添加新的zone: 
Zone代码   收藏代码
  1. option {  
  2.         listen-on port 53 {   
  3.                127.0.0.1;  
  4.                192.168.60.14; // 为局域网其它机器提供Named服务,必须监听向本机IP发出的请求  
  5.         };  
  6.         ...  
  7.         forwarders {          // 添加forwarders,指向其它DNS服务器  
  8.                202.106.196.115;  
  9.         };  
  10.         allow-query{ any; };  // 开放访问权限  
  11.         ...  
  12. };  
  13.   
  14. zone "groupon.cn" IN {               // 解析groupon.cn  
  15.         type master;  
  16.         file "named.groupon.cn";     // 自定义的域名到IP的正向解析配置  
  17. };  
  18.   
  19. zone "60.168.192.in-addr.arpa" IN {  // 本地内网为192.168.60.x  
  20.         type master;  
  21.         file "named.192.168.60";     // 自定义的IP到域名的反向解析配置  
  22. };  


至此看来,named.conf的配置并不复杂,不过接下来的zone文件的配置就会改变你的看法。 
熟悉默认配置 /var/named/named.localhost 
Zone代码   收藏代码
  1. ; 注意,zone文件的注释是以分号";"开始的。  
  2.   
  3. $TTL 1D     ; 生存期, 默认单位为秒,另可设定为[W|D|H|M]  
  4.   
  5. ; [zone] IN SOA [主机名] [管理员email] ([五组更新时间参数])  
  6. ; @=>zone IN SOA @=>主机名 rname.invalid.=>email  
  7. ; @代表根域  
  8. ; rname.invalid.解析为rname@invalid,第一个".""@"的替代,尾部的"."为根域,表明其为绝对URL。  
  9. @       IN SOA  @ rname.invalid. (  
  10.                                         0       ; serial  
  11.                                         1D      ; refresh  
  12.                                         1H      ; retry  
  13.                                         1W      ; expire  
  14.                                         3H )    ; minimum  
  15.         NS      @          ; 直接输入域名,访问@  
  16.         A       127.0.0.1  ; 直接输入域名,解析到的IPV4的IP  
  17.         AAAA    ::1        ; 直接输入域名,解析到的IPV6的IP  


现在开始建立正向解析文件:  /var/named/named.groupon.cn 
Zone代码   收藏代码
  1. $TTL 1D  
  2. @ IN SOA @ root.groupon.cn. (  
  3.         2010110901  
  4.         28800  
  5.         14400  
  6.         3600000  
  7.         86400  
  8. )  
  9.   
  10.         IN NS @               ; 直接输入域名,访问@  
  11.         IN A 221.123.177.226  ; 直接输入域名(www),解析到的外网IP  
  12. store   IN A 192.168.60.42    ; 输入子域名,解析到的内网IP  
  13. img     IN A 192.168.60.43  


建立反向解析文件: /var/named/named.192.168.60 
Zone代码   收藏代码
  1. $TTL 1D  
  2. @ IN SOA 60.168.192.in-addr.arpa. root.groupon.cn. (  
  3.         2010110901  
  4.         28800  
  5.         14400  
  6.         3600000  
  7.         86400  
  8. )  
  9.   
  10. @ IN NS www.groupon.cn.  
  11. 42 IN PTR store.groupon.cn.  ; 192.168.60.42 -> store  
  12. 43 IN PTR img.groupon.cn.    ; 192.168.60.43 -> img  


配置完毕,检查配置文件的正确性: 
Sh代码   收藏代码
  1. # /usr/sbin/named-checkconf -z  
  2. zone localhost/IN: loaded serial 0  
  3. zone 60.168.192.in-addr.arpa/IN: loaded serial 2010110901  
  4. zone groupon.cn/IN: loaded serial 2010110901  

看来一切正常, 这时就可以启动named服务器了。 
Sh代码   收藏代码
  1. # /sbin/service named start  
  2. Starting named:                                            [  OK  ]  


还要做的就是开通端口,并在客户端设定DNS地址为该服务器地址,强制刷新dns和测试: 
Cmd代码   收藏代码
  1. > ipconfig /flushdns  
  2.   
  3. Windows IP Configuration  
  4.   
  5. Successfully flushed the DNS Resolver Cache.  
  6.   
  7. > nslookup  
  8. *** Can't find server name for address 192.168.60.36: Non-existent domain  
  9. *** Default servers are not available  
  10. Default Server:  UnKnown  
  11. Address:  192.168.60.36  
  12.   
  13. > groupon.cn  
  14. Server:  UnKnown  
  15. Address:  192.168.60.36  
  16.   
  17. Name:    groupon.cn  
  18. Address:  221.123.177.226  
  19.   
  20. > store.groupon.cn  
  21. Server:  UnKnown  
  22. Address:  192.168.60.36  
  23.   
  24. Name:    store.groupon.cn  
  25. Address:  192.168.60.42  
  26.   
  27. 192.168.60.42  
  28. Server:  UnKnown  
  29. Address:  192.168.60.36  
  30.   
  31. Name:    store.groupon.cn  
  32. Address:  192.168.60.42  


大功告成! 

参考: 
文件: /etc/named.rfc1912.zones 
Conf代码   收藏代码
  1. // named.rfc1912.zones:  
  2. //  
  3. // Provided by Red Hat caching-nameserver package   
  4. //  
  5. // ISC BIND named zone configuration for zones recommended by  
  6. // RFC 1912 section 4.1 : localhost TLDs and address zones  
  7. // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt  
  8. // (c)2007 R W Franks  
  9. //   
  10. // See /usr/share/doc/bind*/sample/ for example named configuration files.  
  11. //  
  12.   
  13. zone "localhost.localdomain" IN {  
  14.     type master;  
  15.     file "named.localhost";  
  16.     allow-update { none; };  
  17. };  
  18.   
  19. zone "localhost" IN {  
  20.     type master;  
  21.     file "named.localhost";  
  22.     allow-update { none; };  
  23. };  
  24.   
  25. zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {  
  26.     type master;  
  27.     file "named.loopback";  
  28.     allow-update { none; };  
  29. };  
  30.   
  31. zone "1.0.0.127.in-addr.arpa" IN {  
  32.     type master;  
  33.     file "named.loopback";  
  34.     allow-update { none; };  
  35. };  
  36.   
  37. zone "0.in-addr.arpa" IN {  
  38.     type master;  
  39.     file "named.empty";  
  40.     allow-update { none; };  
  41. };  

文件: /var/named/named.loopback 
Zone代码   收藏代码
  1. $TTL 1D  
  2. @   IN SOA  @ rname.invalid. (  
  3.                     0   ; serial  
  4.                     1D  ; refresh  
  5.                     1H  ; retry  
  6.                     1W  ; expire  
  7.                     3H )    ; minimum  
  8.     NS  @  
  9.     A   127.0.0.1  
  10.     AAAA    ::1  
  11.     PTR localhost.  

文件: /var/named/named.empty 
Zone代码   收藏代码
  1. $TTL 3H  
  2. @   IN SOA  @ rname.invalid. (  
  3.                     0   ; serial  
  4.                     1D  ; refresh  
  5.                     1H  ; retry  
  6.                     1W  ; expire  
  7.                     3H )    ; minimum  
  8.     NS  @  
  9.     A   127.0.0.1  
  10.     AAAA    ::1  
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值