DNS 搭建
第一部分:理论知识
一. DNS 的定义
1. DNS :domain name server 。域名解析服务器,顾名思意,主要作用是做域名解析工作的。
 它包括两种解析,一种是正向解析【域名——》ip地址】,一种是反向解析【ip地址————》域名】
2. dns 所用的端口号是:53 (udp 和tcp)
3. 常用国家和地区的域名后缀:   cn 代表中国
    jp代表日本
    gov代表政府机构
    edu代表教育机构,高校
    net代表互联网机构
    org代表非商业组织
4. dns的查询方式:递归,迭代。(一次递归,多次迭代。)
二. dns服务器的分类
1. 缓存域名服务器:或叫“惟高速缓存服务器” 主要功能是提供域名解析的缓存
2. 主域名服务器:是特定域所有信息的权威性信息源,对于某个指定域,主域名服务器是唯一存在的,
  
   主域名服务器中保存了指定域的区域文件。
3. 从域名服务器:不进行特定信息(区域文件)的权威设置,而是从该域的主域名服务器中获得相应的的文件进行保存。

第二部分:试验
一. dns 服务器的安装
1. 相关软件包: bind-libs-9.2.4.2     bind-utils-9.2.4-2    bind-9.2.4.2  caching-nameserver
        (rhel5中默认前两个已经安装,只需要安装后两个)
二. dns的主配置文件: /etc/named.conf 【在rhel4中的配置文件和rhel5有所不一样】
1. 工作目录:/var/named/  该目录用于存放BIND服务器的区域文件
2. 服务名称:named
3. 重启服务:# service named restart
三. 修改dns的主配置文件:/etc/named.conf

1.  options { (全局设置)
    directory  "/var/named/";   (区域文件的存放目录)
    dump-file  "/var/named/data/cache_dump.db"; (数据库文件)
    statistics-file "/var/named/data/named_stats.txt"; (状态文件)
  zone  "."  IN { (定义根区域)
    type  hint;根
    file  "named.ca";  (根文件名称)
   };
    
 【localhost (正向解析) localhost 区域的作用是对主机名称“localhost” 和回环地址“127.0.0.1”进行解析】
 zone  "localhost" IN {
    type  master;
    file "localhost.zone";
         };
 【localhost 反向解析】
 zone  "0.0.127.in-addr.arpa" IN {
     type  master;
     file "named.local";  

2. 下面是一个例子:
【正向】   zone  "rd.com" IN  {
          type  master; 
          file "rd.com.zone";
          allow-update  { none; };
                };

【反向】         zone "0.0.10.in-addr.arpa" IN {
 
                    type master;
                    file "0.0.10.local";
 
                    allow-update { none; };
                          };
3. 建立正向区域文件: # cp /var/named/named.local   /var/named/rd.com.zone
 
   修改文件为:  $TTL  86400
  @   IN     SOA  ns1.rd.com. root.rd.com.(
         1997022700; Serial 【版本号,一般用时间表示】
         28800   ; Refresh 【刷新时间】
      
         14400    ; Retry  【重试时间】
   
         3600000    ; Exprie  【超时时间】
         864000)    ; Minimum
 【域名服务器记录又称NS 记录,在区域文件中用于设置当前域的DNS服务器名称。正反向区域文件NS记录是相同的】
 @  IN  NS  ns1.rd.com. 
 @  IN  MX  5   mail.rd.com.  【数字越小,级别越高】【MX是邮件交换记录】
              【每个MX记录,要有一个A记录】
 ns1  IN  A  10.0.0.1   【A记录】
         
 mail  IN  A  10.0.0.2
 web   IN  A  10.0.0.3
 【别名记录又称CNAME记录,用于在区域文件中对主机名称设置别名。CNAME记录在反向区域文件中不要设置】
 www  IN  CNAME  web.rd.com.
 
4. 建立反向区域文件:cp /var/named/named.local  /var/named/0.0.10.local
   修改文件如下:
 $TTL   86400
 @  IN  SOA  ns1.rd.com. root.rd.com. (
 
         1997022700; Serial 【版本号,一般用时间表示】
         28800   ; Refresh 【刷新时间】
      
         14400    ; Retry  【重试时间】
   
         3600000    ; Exprie  【超时时间】
         864000)    ; Minimum
  
  @  IN  NS  ns1.rd.com.
 1  IN  PTR  ns1.rd.com.
 2  IN  PTR  mail.rd.com.
 3  IN  PTR  web.rd.com.

   【@代表当前域,即:rd.com域,】
5. 测试上述文件的语法是否正确
A. # named-checkconf  命令测试主配置文件的语法结构是否正确
B. # named-checkzone  命令测试正反向文件语法结构
   # named-checkzone   rd.com  /var/named/rd.com.zone(正向区域文件)
   # named-checkzone  rd.com   /var/named/0.0.10.local(反向区域文件)
C. nslookup 命令和dig命令:
   # nslookup 域名  如:# nslookup www.rd.com
   # dig   @服务器域名或ip  域名  如  # dig   @10.0.0.1  mail.rd.com

四.构建缓存服务器
1. # rpm -ivh caching-nameserver-7.3-3.noarch.rpm
2. named.conf中的全局设置:

  options  {
   directory  "/var/named";
   dump-file  "/var/named/data/cache_dump.db";
   statistics-file  "/var/named/data/named_stats.txt";
   };

五. 构建从域名服务器
1. 从域名服务器的设置:在named.conf文件中设置域
【正向】 zone  "rd.com" {
   
           type slave;
  
           file "slaves/rd.com.zone";
          masters {10.0.0.1;};
          };

【反向】    zone  "0.0.10.in.addr.arpa" {
     type  slave;
     file "slaves/0.0.10.local";
  
     masters {10.0.0.1;};
     };
2. 用named-checkconf命令来检查配置文件的语法格式是否正确,然后重启named服务。
   然后查看/var/named/slaves/目录下面是否已有正向和反向文件。有就正确了。
 
六. dns转发
1. 如果域名服务器无法解析是,就交给202.106.0.20和202.106.0.30来解析
2. 在配置文件中添加如下内容:[可以在options区域中添加]
  forwarders  {202.106.0.20;202.106.0.30};
3. 如果本地域名服务器只做转发,不解析。侧如下配置:

  forwarders  {202.106.0.20;202.106.0.30;};
  forward only;
 
4.
           zone   “rd.com” {
                               type  forward;
                              forwarders {211.99.25.1;202.106.0.20};
                               };
 
 
 
七.在rhel5中配置dns时要注意:1. 主配置文件的名称不是叫named.conf,而是/etc/named.rf...      /etc/named.ca...。
   
        2. 要多安装bind-chroot 软件包。
   
        3. 工作目录是/var/name/chroot/var/named/ 
        3. 修改正反向区域配置文件所属主named用户和组root组

八.利用dns实现服务器的负载均衡
1.其原理很简单,就是在配置文件中多添加一条记录
  比如两台web服务器ip分别是202.106.1.11   202.106.1.12,那么要实现两台web服务器的负载均衡就可以添加:  

正向: www 202.106.1.11
 www 202.106.1.12
反向:  11  www.web.com 
 12  www.web.com     这样就可以实现服务器的负载均衡了,简单吧!
 
九.泛域名解析
1.泛域名解析是指一个域名下的所有主机都被解析到一个ip 
  比如:   正向:  dns     IN A 202.106.1.1 
     rehl    IN A 202.106.1.2
     www    IN A 202.106.1.11
     *.qq.com  IN A 202.106.1.111   
   这样除上面三条记录外,所有以qq.com结尾的域名都会被解析到202.106.1.111