1.准备必备知识:

DNS Domain Name System 域名系统的缩写,因特网的一项核心服务,作为可以将它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

2.准备一个软件BIND

BIND上的客户端工具

  1. dig 
  2. host 
  3. nslookup 
  1. dig -t A www.baidu.com @196.168.0.254 
  2. #通过196.168.0.254这个服务器解析www.baidu.com的IP地址,注意此命令输出的格式 

3.认识服务器端的主配置文件:

注意观察下面文件的格式和内容及其他定义

  1. /etc/named.conf.origin 文件内容 
  2. ############################################################## 
  3. // 
  4. // named.conf 
  5. // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 
  6. // server as a caching only nameserver (as a localhost DNS resolver only). 
  7. // See /usr/share/doc/bind*/sample/ for example named configuration files. 
  8. #全局选项段 
  9. options {  
  10.         listen-on port 53 { 127.0.0.1; }; 
  11.         listen-on-v6 port 53 { ::1; }; 
  12.         directory       "/var/named"; 
  13.         dump-file       "/var/named/data/cache_dump.db"; 
  14.         statistics-file "/var/named/data/named_stats.txt"; 
  15.         memstatistics-file "/var/named/data/named_mem_stats.txt"; 
  16.         allow-query     { localhost; }; 
  17.         recursion yes; 
  18.         dnssec-enable yes; 
  19.         dnssec-validation yes; 
  20.         dnssec-lookaside auto; 
  21.         /* Path to ISC DLV key */ 
  22.         bindkeys-file "/etc/named.iscdlv.key"; 
  23. }; 
  24. logging { 
  25.         channel default_debug { 
  26.                 file "data/named.run"; 
  27.                 severity dynamic; 
  28.         }; 
  29. }; 
  30.  
  31. zone "." IN { 
  32.         type hint; 
  33.         file "named.ca"; 
  34. }; 
  35. include "/etc/named.rfc1912.zones";[5[ 
  36. ############################################################## 

DNS服务器角色:

       DNS

       辅助DNS

       缓存DNS  #需要知道根服务器在什么地方,这个需要标明

4.添加/修改相应的配置文件

这是其中最关键的步骤,

安装BIND的时候红帽给我们添加了一些命令文件和配置文件,主要的配置文件有:

1)./etc/named.conf

2).上面的配置文件中的一些自己定义的区域文件,

       /var/named目录下

       包含正向区域和反向区域

如果不想用这些配置文件,那么就自己创建的时候就要修改上述的文件,修改文件的注意事项

       注意文件的权限(640)和属主(root)、属组(named)

  1. options { 
  2.        directory "/var/named"; 
  3. }; 
  4. zone "." IN { 
  5.        type hint; 
  6.        file "named.ca"; 
  7. }; 
  8. zone "localhost" IN { 
  9.        type master; 
  10.        file "localhost.zone";     #此文件记录的都是资源记录和宏定义 
  11. }; 
  12.  
  13. zone "ZONE1" IN { 
  14.        type master; 
  15.        file "FILENAME.ZONE1"; 
  16. }; 
  17. zone "ZONE2" IN { 
  18.        type master; 
  19.        file "FILENAME.ZONE2"; 
  20. }; 
  21. ....

localhost.zone文件内容:

  1. $TTL 86400 
  2. @    IN   SOA              localhost.        admin.localhost.( #当前区域文件可用@引用,此行必须是SOA记录 
  3.                             2012101801 #版本号,注意不可超过10位 
  4.                             1H         #刷新时间 
  5.                             5M         #重试时间 
  6.                             7D         #过期时间 
  7.                             1D )       #否定回答的TTL值 
  8.        IN   NS          localhost. 
  9. #此处当前区域名称因为与紧前面一条记录相同,被略去了,表当前域等待域名服务器是谁 
  10. localhost. IN          A    127.0.0.1  
  11. #任何一个NS记录都应该给一个主机名称和A记录 
  12. vim 127.0.0.zone   #反向区域记录 
  13. $TTL 86400 
  14. @    IN   SOA              localhost.        admin.localhost. ( 
  15.                            2012101801 
  16.                             1H 
  17.                             5M 
  18.                             7D 
  19.                             1D ) 
  20.        IN   NS          localhost.                 
  21. 1     IN   PTR       localhost. 

#修改文件属组和权限,到此,缓存服务器可以工作了,主要目的是解析某个区域

  1. servic named configtest  #检查配置文件语法 
  2. named-checkconf   #主配置文件语法 
  3. nmaed-checkzone ZONENAME(区域名) ZONEFILE(区域文件名)  #检查各区域文件语法 
  4. service named start #如果一切没有错误,启动服务 
  5. netstat -tunlp | grep 53 #查看53端口是否启动 
  6. rndc status 查看服务器状态 
  7. rndc reload #重新载入配置文件,用于配置文件更改时 
  8. rndc reload zone 重新载入某区域文件,如果区域文件较多,用此节省时间 
  9. rndc reconfig  重新载入主配置文件和发生过更新的区域文件 
  1. dig +trace -t A www.baidu.com @127.0.0.1 

查找的时候列出查找记录

  1. tail /var/log/messages 查看日志记录 

实战:

比如有个网站叫:magedu.com,这个时候就要去设置。方法如下:

  1. #在主配置文件中添加一段 
  2. zone "magedu.com" IN { 
  3.        type master; 
  4.        file "magedu.com.zone"; 
  5. }; 
  6. 创建相应的区域文件 
  7. vim magedu.com.zone 
  8. $TTL 86400 
  9. $ORIGIN magedu.com 
  10. @                         IN          SOA              ns.magedu.com             admin.magedu.com { 
  11.                                           2012101801 
  12.                                           2H 
  13.                                           10M 
  14.                                           15D 
  15.                                           1D ) 
  16.                             IN          NS          ns    
  17.    #注意,此处ns实际应为ns.magedu.com,ns后有点儿就必须把名字写完整,不写全就不弄完整 
  18.                         IN          MX  10    mail 
  19.    #如果需要MX就添加上去 
  20. ns                      IN          A            172.16.100.1 
  21. mail                    IN          A            172.16.100.2 
  22. www                     IN          A            172.16.100.1   
  23.   #一个主机可以有多个名字 
  24. ftp                        IN          CNAME  www 
  25.   #ftp是www的别名 

还要设置反向区域,在主配置文件/etc/named.conf中添加此段:

  1. zone "16.172.in-addr.arpa" IN { 
  2.        type master; 
  3.        file "172.16.zone"; 
  4. }; 

#注意检查语法

#named.conf

创建相应的区域文件

  1. vim 172.16.zone 
  2. $TTL 86400 
  3. // $ORIGIN    10.16.172.in-addr.arpa   #此处不能用ORIGIN,而是in-addr.arpa 
  4. @                         IN          SOA              ns.magedu.com             admin.magedu.com { 
  5.                                           2012101801 
  6.                                           2H 
  7.                                           10M 
  8.                                           15D 
  9.                                           1D ) 
  10.                           IN          NS         ns.magedu.com  
  11. 1.10                      IN          PTR        ns.magedu.com 
  12. 2.10                      IN          PTR        ns.magedu.com 
  13. 1.10                      In          PTR        ns.magedu.com 
  14. //                        IN          MX  10     mail                      #反向区域文件不需要MX记录和A记录