DNS正解:主机名查找IP。DNS反解:IP地址查询主机名。
所需软件包
bind-9.3.6-4.P1.el5.i386.rpm
bind-chroot-9.3.6-4.P1.el5.i386.rpm
bind-utils-9.3.6-4.P1.el5.i386.rpm
caching-nameserver-9.3.6-4.P1.el5.i386.rpm
linux架构:master、salve、cache-only三大服务器。Cache-only转发master/slave的DNS请求。
搭建master DNS服务器
# hostname master
#vi /etc/sysconfig/network
HOSTNAME=master
# cp /usr/share/doc/bind-9.3.6/sample/etc/named.conf /etc/named.conf
# cat /etc/named.conf
Options { directory "/var/named";
dump-file "data/cache_dump.db"; #设置dns缓存数据的指定文件
statistics-file "data/named_stats.txt"; #dns统计数据写入的文件
pid-file "/var/run/named/named.pid"; #记录named的pid文件可以在启动关闭named时提供正确的pid
allow-query{ any ;}; #是否允许客户端查询,可以设置any、none、ip网段
allow-transfer { 192.168.23.136;}; #是否允许DNS递归查询
zone "." IN { type hint;
file "named.ca"; };
zone "test.com" IN { type master;
file "test.com.zone"; };
zone "23.168.192.in-addr.arpa" { type master;
file "23.168.192.in-addr.local"; };
定义/var/named/chroot/etc/named.rfc1912.zones保持和/etc/named.conf域名定义部分一致即可
#dig -t NS .>/var/named/chroot/var/named/named.ca #查找根服务器的NS记录并重定向
#echo "nameserver 127.0.0.1">>/etc/resolv.conf #设置本机为DNS服务器
创建test.com.zone正向解析文件
$TTL 86400 #当外部DNS对此DNS进行查询,记录会放置在对方DNS服务器几秒。如果DNS稳定,此值应设置大一些,以免DNS忙碌,如果DNS不稳定,此值应设置小一些,以免变动无法被查询到。
@ IN SOA localhost root ( #@代表zone,
42 ; serial (d. adams) #序号
3H ; refresh #服务器更新时间;
15M ; retry #更新失败后,重复更新时间;
1W ; expiry #重复更新多久宣告失败,不在进行更新。
1D ) ; minimum #等同于TIL。
IN NS test.com.
IN MX 10 mail.test.com.
www IN A 192.168.23.134
mail IN A 192.168.23.135
创建test.com.zone反解文件
# cat 23.168.192.in-addr.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS test.com.
134 IN PTR www.test.com.
135 IN PTR mail.test.com.
100 IN PTR www.test.net.
101 IN PTR mail.test.net.
#named后查看日志信息。如看到下述报错信息:
couldn't open pid file '/var/run/named/named.pid': Permission denied
修改文件属主权限
# ls -ald /var/named/chroot/var/run/named
drwxrwx--- 2 named named 4096 Mar 14 2003 /var/named/chroot/var/run/named
/etc/named.conf:30: couldn't add command channel 127.0.0.1#953: address in use
表示该953端口正在占用而导致报错,因为named服务已经启动,killall named,在重启named即可。
配置rndc:# rndc-confgen >/etc/rndc.conf
# cat -n /etc/rndc.conf
# ll /etc/rndc.conf #修改rndc.conf为640 root.named
-rw-r----- 1 root named 475 Oct 12 14:45 /etc/rndc.conf
#tail +13 /etc/rndc.conf>>/etc/named.conf 去掉相关的注释#
# rndc status #使用rndc测试服务状态
使用rndc reload无需重启named服务重新加载配置文件。
# rndc reload #使用rndc重新加载该配置文件
server reload successful
使用ping、nslookup进行测试。
搭建slave DNS服务器
修改master中/etc/named.conf配置文件
# cat /etc/named.conf
…………………………………………
zone "test.com" IN {
type slave;
file "test.com.zone";
allow-update { none ;};
allow-transfer { 192.168.23.136 ;}; }; #添加slave 主机IP地址,允许该主机进行DNS传送
zone "23.168.192.in-addr.arpa" IN {
type slave;
file "23.168.192.in-addr.local";
allow-update { none ;};
allow-transfer { 192.168.23.136 ;}; };
………………………………………………………
Slave主机的/etc/named.conf与master的/etc/named.conf一致即可,将type master改成slave即可。
修改权限
# ls -ald /var/named/chroot/var/run/named
drwxrwx--- 2 named named 4096 Mar 14 2003 /var/named/chroot/var/run/named #至少是750
修改named.rfc1912.zones及正反解析文件,与master一致即可。
启动named,之后如果需要更新数据库,只需要修改解析文件,并重启named,slave便会自动更新dns配置文件。
客户端设置
修改/etc/resolv.conf中的nameserver ip指向该dns服务器。
# cat /etc/nsswitch.conf
hosts: dns files #即dns查询优先