很多企业都通过Linux来搭建自己的DNS服务器来提高网路效率,在此我们来学习如何搭建Master DNS服务器。
   首先,确定是否搭建yum仓库,并有软件包可用,如DVD光盘是否挂载。

一、安装DNS服务所需要的软件包
    DNS所需要的软件包有:
    Bind-9.3.3-7.el5
    Bind-utils-9.3.3-7.el5
    Bind-chroot-9.3.3-7.el5
    Caching-nameserver-9.3.3-7.el5
    1.查询软件包是否安装
                        rpm -aq bind
                        rpm -aq bind-utils
                        rpm -aq bind-chroot
                        rpm -aq caching-nameserver
    2.使用yum安装所需要的软件(确定yum仓库已经搭建好)
                        mount /dev/cdrom /media/     挂载DVD光盘
      挂载成功显示:mount:block device /dev/cdrom is write-protected, mounting read-only
                  yum install bind bind-utils bind-chroot caching-nameserver    使用yum安装软件包
二、搭建Master DNS
    在搭建之前必须关掉防火墙和SELINUX服务才会成功搭建好,方法:
                        setup   进入服务列表进行关闭
    1.设置确定DNS服务器的IP地址
                         system-config-network   进入Devernet Configuration
     界面:
                         Devernet Configuration
     Name                eth0
     Device         eth0
     Use DHCP         [ ]
     Static IP         192.168.200.1
     Netmask         255.255.255.0
     Default gateway IP  
     确定启动网卡并确认网卡配置(任选一种方法即可)
     重启网络服务的几种方法:
                         1) service network restart
                         2) /etc/rc.d/init.d/network restart
                         3) ifdown eth0
                            ifup eth0
     确认网卡配置
                         ifconfig eth0
    2.设置确定DNS服务器的主机名
                         hostname   检查主机名
                         hostname server.example.com 重新设置主机名
                         hostname   再次确认
      如上修改在DNS服务器重启后又会恢复原来的主机名,要想下次启动也生效,需要做如下修改:
                         vi /etc/sysconfig/network     编辑相应文件
      内容编辑
                         NETWORKING=yes
                         NETWORKING IPV6=no
                         HOSTNAME=server.example.com   在HOSTNAME后修改为正确的主机名
    3.调整DNS服务器的解析顺序
                         vi /etc/nsswitch.conf         编辑相应文件
      内容编辑
                         17#    dns            Use DNS (Domain in Name Service)
                         18#    files            Use the local files
                         19#     db            Use the local database (.db) files
                         20#    compat            Use NIS on compat mode
                         21#    hesiod            Use Hesiod for user lookups
                         22#    [NOTFOUND-return]    Stop searching if not found so far
                         23#
                         24
                         25# To use db, put the "db" in front of "files" for enteries you want to be
                         26# looked up first in the databases
                         27#
                         28# Example:
                         29# passwd:    db files nisplus nis
                         30# shadow:    db files nisplus nis
                         31# group:    db files nisplus nis
                         32
                         33  passwd:    files
                         34  shadow:    files
             35  group:    files
             36
             37# hosts:    db files nisplus nis dns
             38  hosts:    dns files      将原来files dns的顺序改为dns files; 当执行解析时先从DNS服务器解析,在解析host文件
             39
             40# Example - obey only what nisplus tells us...
    4.创建并修改主配置控制文件
                         cd /var/named/chroot/etc/   切换文件目录
                         ls               查看所在目录之下的文件并寻找目标文件
                         cp -p named.caching-nameserver.conf named.conf 复制目标文件并重命名为named.conf
                         vi named.conf 编辑named.conf文件
      内容编辑
                         //
                         options {
                                  listen-on port 53 {172.0.0.1;localhost;}  DNS为哪个网络接口提供服务
                                  listen-on-v6 port 53 {::1;};
                                  directory            "/var/named";
                                  dump-file            "/var/named/data/cache_dump.db";
                                  statistics-file        "/var/named/data/named_stats.txt";
                  memstatistics-file        "/var/named/data/named_mem_stats.txt";
                                  query-source             port 53;
                  query-source-v6        port 53;
                  allow-query            {localhost;localnets;}; 本服务器为谁提供查询请求服务
                          };
                          logging {
                                   channel default_debug {
                                           file "data/named.run";
                                           serverity dynamic;
                                  };
                          };
                          view localhost_resolver {
                                     match-clients {localhost;localnets;};
                                     match-destinations {localhost;};
                                     recursion yes;
                                     include "/etc/named.rfc1912.zones";
                          };
        备注:
             查询控制
                     * 代表所有; any 代表所有; localhost 代表本机; localnets 代表本机所连的网段;  none 空
       5.创建查询区域
                          cd /var/named/chroot/etc/ 切换目录   
         必须保证当前的路径在/var/named/chroot/etc/下,若不在,使用cd /var/named/chroot/etc/改变路径再编辑区域文件
 
                          vi named.rfc1912.zones  编辑文件
         内容编辑(增加一个正向区域和一个反向区域并作若干修改)
                          zone "example.com" IN {
                                   type master;
                                   file "example.zone";
                                   allow-update {none;};
                          };

                          zone "200.168.192.in-addr.arpa" IN {
                                   type master;
                                   file "example.local";
                                   allow-update {none;};
                          };
       6.复制创建正、反向解析文件
                          cd /var/named/chroot/var/named/   切换目标文件目录
                          ls       查看并寻找目标文件
                          cp -p localhost.zone example.zone  复制并重命名目标文件
                          cp -p named.local example.local 复制并冲重命名目标文件

       7.编辑正向解析文件
                          vi example.zone
         内容编辑
                          $TTL    86400
                  @        IN SOA server.example.com.    root.example.com. (
                                42    ; serial (d. adams)
                                3H    ; refresh
                                15M    ; retry
                                1W    ; expiry
                                1D )    ; minimum

                    IN NS         server.example.com.
                    IN MX 10    mail.example.com.
                    IN A        192.168.200.1
                          mail        IN A        192.168.200.2
              server    IN A        192.168.200.1
              www        IN A        192.168.200.3
              ftp        IN A        192.168.200.4

              rhel        IN CNAME    www
      8.编辑反向解析文件
                          vi example.local
        内容编辑
                          $TTL    86400
              @        IN SOA server.example.com.    root.example.com. (
                                                        1997022700    ; Serial
                            28800        ; Refresh
                            14400        ; Retry
                            3600000        ; Expire
                            86400 )        ; Minimum
                                       
                                        IN NS        server.example.com.
              1        IN PTR      server.example.com.
                  2        IN PTR        mail.example.com.
                          3        IN PTR        www.example.com.
                          4        IN PTR      ftp.example.com.
      9.指定本机DNS服务为自己
                          vi /etc/resolv.conf
        内容编辑
                          search example.com
                          nameserver 192.168.200.1
      10.重新启动DNS服务(任选一种方法)
                          1) /etc/rc.d/init.d/named restart
                          2) service named restart
         备注:
              start 开启服务; stop 停止服务; restart 重新启动服务; status 查看服务状态
      11.测试
                          1) nslookup测试
                           nslookup
                           > 192.168.200.1
                           > mail.example.com
                           > 192.168.200.3
                           > rhel
                          2)使用host测试
                          host rhel.example.com
                          host 192.168.200.1
                          host mail.example.com
                          3)使用dig命令测试
                          dig example.com
                          4)使用ping命令测试
                          ping rhel.example.com
                          ping mail.example.com