假设我是搭建在内部局域网中的一个DNS(仅用测试嘛~)。
1. 第一步肯定是要规划一下自己域内的DNS该怎么配!
希望配置到my.net的主域名服务器为10.1.1.198。而marco.my.net是公司的web和ftp服务器,它的ip是10.1.1.201。yuyu.my.net是mail server指向10.1.1.202
2. 根据上面的想法配置/etc/named.conf
options {
version "4.0.0";
directory "/var/named";
pid-file "/var/named/named.pid";
};
zone "my.net" {
type master;
file "db.my.net";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "db.127.0.0";
};
zone "1.1.10.in-addr.arpa" {
type master;
file "db.10.1.1";
};
3. 根据配置文件写具体的DNS数据文件
(1) db.my.net
$TTL 86400
@ 1D IN SOA ns.my.net. root.my.net. (
20040701 ;serial
3H ;refresh
15M ;retry
1w ;expiry
1D ) ;minimum
@ IN NS ns.my.net.
ns IN A 10.1.1.198
marco IN A 10.1.1.201
yuyu IN A 10.1.1.202
yuyu IN MX 10 yuyu
www IN CNAME marco
ftp IN CNAME marco
mail IN CNAME yuyu
说明:这些都是根据我前2天看书而配置的。因此配起来比较简单。首先先定义一个$TTL,因为我是用的9的版本。然后根据顺序分别记录SOA记录,NS记录,后面几个记录的顺序没有关系。
(2) db.127.0.0
$TTL 86400
@ 1D IN SOA ns.my.net. root.my.net. (
20040701 ;serial
3H ;refresh
15M ;retry
1w ;expiry
1D ) ;minimum
@ IN NS ns.my.net
1 IN PTR localhost
说明: 本来一开始我这里没有写NS记录.不过后来看log发现有这个的信息,虽然不影响正常使用,不过总看的不舒服,就加上了:)
错误信息:(/var/adm/messages)
Jul 2 11:36:01 marco named[597]: [ID 295310 daemon.warning] Zone "0.0.127.in-addr.arpa" (file db.127.0.0): no NS RRs found at zone top
Jul 2 11:36:01 marco named[597]: [ID 295310 daemon.warning] master zone "0.0.127.in-addr.arpa" (IN) rejected due to errors (serial 20040701)
(3) db.10.1.1
$TTL 86400
@ 1D IN SOA ns.my.net. root.my.net. (
20040701 ;serial
3H ;refresh
15M ;retry
1w ;expiry
1D ) ;minimum
@ IN NS ns.my.net.
198 IN PTR ns.my.net.
201 IN PTR marco.my.net.
202 IN PTR yuyu.my.net.
说明:这里和上面的db.127.0.0一样,最好也写上NS记录。还有这里记录的PTR记录最后别忘了“.”
(4) 万事ok,只待启动咯~~~
bash-2.03# ndc start
new pid is 676
最好tail /var/adm/messages一下,如果是出现下面的语句那说明至少配置文件的语法是正确的,named已经启动了:
Jul 2 12:54:43 marco named[675]: [ID 295310 daemon.notice] starting. in.named BIND 8.2.2-P5 Thu Jan 29 07:06:27 PST 2004
Jul 2 12:54:43 marco Generic Patch-5.8-January 2004
Jul 2 12:54:43 marco named[676]: [ID 295310 daemon.notice] Ready to answer queries.
(5) 设置/etc/resolv.conf,将nameserver设成10.1.1.198(就是ns.my.net)
(6) 用nslookup和dig进行测试。
最后说明:因为我这边是局域网内做测试,因此不需要hint类型。如果是正式DNS SERVER,则必须加上(在/etc/named.conf中添加一段)
zone "." {
type hint;
file "named.root";
};
然后执行命令:
bash-2.03# cd /var/named/
bash-2.03# dig @a.root-servers.net . ns > named.root
问题:我用的明明就是
bash-2.03# named -v
BIND 9.3.0rc1
但是为什么日志里显示出in.named BIND 8.2.2-P5?
难道in.named这个文件是bind 8.2.2-P5?
另外附上到目前为止的DNS与BIND学习笔记