21.5. 辅助从属名称服务器

一个的目的是从属名称服务器是与服务器,或者处理整个负载,如果服务器宕机。 一个从属名称服务器通过网络从另一个名称服务器加载其数据 通常是 master 主名称服务器,但它也可以从另一个 slave 从属名称服务器加载。 此过程称为 zone 区域传输。 设置辅助从属名称服务器的必要文件是

  1. named.conf

  2. db.127.0.0

  3. db.cache

  4. named 脚本

要配置/etc/named.conf文件用于从属名称服务器,请为网络中充当 slave 从属名称服务器的服务器使用此配置。 您必须修改named.confslave 从属名称服务器主机上的文件。 将除以下项外的所有 primary 更改为 secondary0.0.127.in-addr.arpa并添加一个 masters 行,其中包含 IP 地址服务器,如下所示。

创建 named.conf 文件 (touch /etc/named.conf) 并添加
   options {
   directory "/var/named";
   fetch-glue no;
   recursion no;
   allow-query { 208.164.186/24; 127.0.0/8; };
   allow-transfer { 208.164.186.1; };
   transfer-format many-answers;
   };

   // These files are not specific to any zone
   zone "." in {
   type hint;
   file "db.cache";
   };

   zone "0.0.127.in-addr.arpa" in {
   type master;
   file "db.127.0.0";
   };

   // These are our slave zone files
   zone "openna.com" in {
   type slave;
   file "db.openna";
   masters { 208.164.186.1; };
   };

   zone "186.164.208.in-addr.arpa" in {
   type slave;
   file "db.208.164.186";
   masters { 208.164.186.1; };
   };
   
这告诉名称服务器,它是 slave 从属服务器,用于区域openna.com并且应该跟踪此区域的版本,该版本保存在主机上208.164.186.1.

一个从属名称服务器不需要通过网络检索其所有数据库 (db) 文件,因为这些 db 文件db.127.0.0db.cache与...上的相同主服务器,因此您可以将这些文件的本地副本保存在从属名称服务器上。

  1. 复制db.127.0.0文件从名称服务器到从属名称服务器。

  2. 复制db.cache文件从名称服务器到从属名称服务器。

21.5.1. /etc/rc.d/init.d/named 脚本

配置您的/etc/rc.d/init.d/named脚本文件以启动和停止服务器上的 BIND/DNS 守护程序。 此配置文件可用于所有类型的名称服务器缓存, 从属.

创建 named 脚本文件 touch/etc/rc.d/init.d/named并添加
   #!/bin/sh
   #
   # named           This shell script takes care of starting and stopping
   #                 named (BIND DNS server).
   #
   # chkconfig: - 55 45
   # description: named (BIND) is a Domain Name Server (DNS) \
   # that is used to resolve host names to IP addresses.
   # probe: true

   # Source function library.
   . /etc/rc.d/init.d/functions

   # Source networking configuration.
   . /etc/sysconfig/network

   # Check that networking is up.
   [ ${NETWORKING} = "no" ] && exit 0

   [ -f /usr/sbin/named ] || exit 0

   [ -f /etc/named.conf ] || exit 0

   RETVAL=0

   # See how we were called.
   case "$1" in
   start)
   # Start daemons.
   echo -n "Starting named: "
   daemon named
   RETVAL=$?
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
   echo
   ;;
   stop)
   # Stop daemons.
   echo -n "Shutting down named: "
   killproc named
   RETVAL=$?
   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named
   echo
   ;;
   status)
   /usr/sbin/ndc status
   exit $?
   ;;
   restart)
   $0 stop
   $0 start
   ;;
   reload)
   /usr/sbin/ndc reload
   exit $?
   ;; 
   probe)
   # named knows how to reload intelligently; we don't want linuxconf
   # to offer to restart every time
   /usr/sbin/ndc reload >/dev/null 2>&1 || echo start
   exit 0
   ;;

   *)
   echo "Usage: named {start|stop|status|restart}"
   exit 1
   esac

   exit $RETVAL
   

现在,使此脚本可执行并更改其默认权限
   [root@deep]# chmod 700  /etc/rc.d/init.d/named
   
创建符号rc.dBIND/DNS 的链接,使用命令
   [root@deep]# chkconfig --add named
   

当您重新启动服务器时,BIND/DNS 脚本不会自动启动 named 守护程序。 您可以通过执行以下命令更改其默认设置
   [root@deep]# chkconfig --level 345 named on
   
使用以下命令手动启动您的 DNS 服务器
   [root@deep]# /etc/rc.d/init.d/named start
   

   Starting named:                                            [  OK  ]