建立 Slave DNS

相关文件

在建立 Master DNS 后,已经可以完整的管理一个网域的设定,当然为了分散流量与减少伺服器的负担,可以使用 Slave DNS 来做管理,而 Slave DNS 只要在固定时间内和 Master DNS 同步就可以了。

以下所讨论的设定档根目录位置均在 /var/named/chroot 目录之下,若您已开启 chroot 功能,则可直接套用;若您没有开启 chroot 功能,则目录是在 / 的相对路径之下。

设定 Master DNS

bind - DNS 设定 (new window)的例子,我们使用 abc.com.tw 这个网域做说明。

预设 Master DNS 是不允许任何主机跟他做同步的交换,若要启用此功能,需设定所性任的范围,其表示方式可以是 CIDR、class、IP 或是由 acl 所定议的群组,且不限定只有一笔。

设定的方式是在该 zone 下加入 allow-transfer 的指令,范例是允许 11.22.33.88/29 的 CIDR 区段可以做 DNS 更新(非修改 DNS 记录)。

修改 /etc/named.conf

0001
0002
0003
0004
0005
0006
0007
0008
zone "abc.com.tw" IN {
     type master;
     file "db.abc.com.tw";
     allow-update { none; };
     //让 Slave DNS 11.22.33.101 可以向 Master DNS 做资料更新动作。
     allow-transfer { 11.22.33.101; };
};

若您要加入一笔区段或 IP 的话,可以在分号(;)后面加入来源,并再以分号结束。

编辑 /var/named/db.abc.com.tw 档案

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
$TTL          86400
$ORIGIN abc.com.tw.
@          1D IN SOA                    @ steven.abc.com.tw. (
                                        2008011601          ; Zone 资料序号 (每次修改请累加数字,此为 Slave DNS 同步的关键。)
                                        3H                  ; refresh
                                        15M                 ; retry
                                        1W                  ; expiry
                                        1D )                ; minimum

@                   IN NS         dns.abc.com.tw.
@                   IN NS         ns2.abc.com.tw.
dns.abc.com.tw.     IN A          11.22.33.100
ns2.abc.com.tw.     IN A          211.23.29.101

重新启动 Master DNS

0001
root # service named restart

以上设定后,可以使用 host 指令查看是否设定正确,使用 host 指令查寻后应得到两笔资料。

0001
0002
0003
0004
0005
0006
0007
0008
root # host -t ns abc.com.tw
abc.com.tw name server ns2.abc.com.tw.
abc.com.tw name server dns.abc.com.tw.
root # host ns2.abc.com.tw; host dns.abc.com.tw
ns2.abc.com.tw has address 11.22.33.101
dns.abc.com.tw has address 11.22.33.100
root #
广 告

设定 Slave DNS

编辑好 Master DNS 的相关设定后,即可开始设定 Slave DNS。

编辑设定档

增加 abc.eic.com.tw 的区段

0001
0002
0003
0004
0005
0006
0007
zone "abc.com.tw" IN {
     //设定为 slave 型态
     type slave;
     file "db.eic.com.tw";
     //设定 master DNS
     masters { 211.23.29.92; };
};

设定资料夹权限

0001
0002
root # chgrp -Rf named /var/named/chroot/var/named
root # chmod -Rf g+w /var/named/chroot/var/named

启动 named

0001
root # service named start

开启 log 档案,查看 slave DNS 启动的情况。

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
root # less /var/log/messages
Jan 13 12:08:38 ns2 named[29423]: starting BIND 9.3.3rc2 -u named -t /var/named/chroot
Jan 13 12:08:38 ns2 named[29423]: found 1 CPU, using 1 worker thread
Jan 13 12:08:38 ns2 named[29423]: loading configuration from '/etc/named.conf'
Jan 13 12:08:38 ns2 named[29423]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 13 12:08:38 ns2 named[29423]: listening on IPv4 interface eth0, 11.22.33.101#53
Jan 13 12:08:38 ns2 named[29423]: command channel listening on 127.0.0.1#953
Jan 13 12:08:38 ns2 named[29423]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
Jan 13 12:08:38 ns2 named[29423]: zone localhost/IN: loaded serial 42
Jan 13 12:08:38 ns2 named[29423]: running
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: Transfer started.
Jan 13 12:08:38 ns2 named[29423]: transfer of 'abc.com.tw/IN' from 211.23.29.92#53: connected using 11.22.33.100#56348
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: transferred serial 2008011601 <- 指的是 Master DNS 对 abc.com.tw Zone 的序号。
Jan 13 12:08:38 ns2 named[29423]: transfer of 'abc.com.tw/IN' from 11.22.33.100#53: end of transfer
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: sending notifies (serial 2008011601)
Jan 13 12:08:38 ns2 named[29423]: client 11.22.33.101#33208: received notify for zone 'abc.com.tw'
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: refused notify from non-master: 11.22.33.101#33208

查看 db.abc.com.tw

设定完成后,会在 name.conf 所指定的 zone 档记录位置看到一笔 db.abc.com.tw,这个档案是自动产生,且在 Master DNS 更改过后,下次的同步就会生效。

0001
0002
0003
0004
root # ls -l db.abc.com.tw
-rw-r--r-- 1 named named 497 Jan  13 12:08 db.abc.com.tw
root #

上层 DNS 设定

若您新增了 Slave DNS,则请向您的上层 DNS 做新增 Slave DNS 的记录,此以 Hinet 网域代管服务说明。

在 DNS 型态选择 DNS,然后再新增一笔资料既可。

测试

最方便的测试方法,就是直接把 Master DNS 的服务关闭,然后再看看使用者可否查寻到资料即可。

Last modified: 02/04/2008


首页