建立 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