分类: LINUX
2010-04-16 19:56:04
Linux下主、辅助DNS服务器以及子域的配置
一、主DNS的配置
1、首先安装DNS服务器所需的软件包
# mount /dev/cdrom /media/cdrom/
# cd /media/cdrom/Server
# rpm -ivh bind-libs-
# rpm -ivh bind-
# rpm -ivh bind-utils-
2、配置IP地址及DNS服务器
# vim /etc/sysconfig/network-scripts/ipcfg-eth0
……
BOOTPROTO=none
IPADDR=192.168.0.186 (可根据自己的实际情况配置)
NETMASK=255.255.255.0
……
# vim /etc/resolv.conf
nameserver 192.168.0.186
# service network restart
2、建立并配置named配置文件
# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.168.0.186; };
directory "/var/named";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "localhost.name";
};
zone "." IN {
type hint;
file "named.ca";
};
3、新建localhost.zone localhost.name named.ca
# cd /var/named
# vim localhost.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
2010022801
1H
7D
1D )
IN NS localhost.
localhost. IN A 127.0.0.1
# vim localhost.name
$TTL 86400
@ IN SOA localhost. root.localhost. (
2010022801
1H
7D
1D )
IN NS localhost.
# vim named.ca
; <<>> DiG
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7033
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 20
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
.
.
.
.
.
.
.
.
.
.
.
.
.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.
;; Query time: 110 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Tue Feb 26 15:05:57 2008
;; MSG SIZE rcvd: 615
以上记录是常规模式下,必须加上的。下面测试记录是否可用
4、启动服务,测试记录
在启动服务前,首先要保证以上所建立的文件的属组必须为named,否则named服务无法读取。
其实,不但是以上建立的那些文件,named服务所要用到的所有文件和目录的属组都应该为named。
# chown :named /etc/named.conf /var/named/{localhost.zone,localhost.name,name.ca}
# service named start
# nslookup
>localhost (正向测试)
>127.0.0.1 (反向测试)
>exit
如果出现意外的情况,请参照/var/log/messages日志,处理相关情况。
# tail /var/log/messages
5、新建自己的域tian.com,并添加该域的正向和反向记录
# vim /etc/named.conf
在后面增加以下记录:
zone "tian.com" IN {
type master;
file "tian.com.zone";
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "tian.com.name";
}; (请务必注意格式和“;”的位置)
6、新建tian.com所需文件
# vim /var/named/tian.com.zone
$TTL 86400
$ORIGIN tian.com.
@ IN SOA ns.tian.com. root.tian.com. (
2010022801 ;序列号
1H ;刷新时间
7D ;过期时间
1D ) ;否定记录生存时间
IN NS ns.tian.com.
ns IN A 192.168.0.186
www IN A 192.168.0.187
ftp IN CNAME
@ IN MX 10 mail.tian.com.
mail IN A 192.168.0.188
# vim /var/named/tian.com.name
$TTL 86400
@ IN SOA ns.tian.com. root.tian.com. (
2010022801
1H
7D
1D )
IN NS ns.tian.com.
# chown /var/named/{tian.com.zone,tian.com.name}
7、重新启动服务,并测试新记录
# service named restart
# nslookup
>
>ftp.tian.com.
>192.168.0.186
>192.168.0.187
二、辅助DNS的配置
1、配置IP地址及DNS服务器
# vim /etc/sysconfig/network-scripts/ipcfg-eth0
……
BOOTPROTO=none
IPADDR=192.168.0.187 (可根据自己的实际情况配置)
NETMASK=255.255.255.0
……
# vim /etc/resolv.conf
nameserver 192.168.0.187
# service network restart
2、编写辅助DNS服务器的配置文件,把主DNS的配置文件named.conf中的master改为slave,本地和根域的解析的例外,然后加上forwarders选项。例如:
zone “tian.com” IN {
type slave;
file “slaves/tian.com.zone”;
forwarders { 192.168.0.186; };
};
zone “1.168.192.in-addr.arpa” IN {
type slave;
file “slaves/192.168.0.zone”;
forwarders { 192.168.0.186; };
};
3、启动DNS服务
# service named start
三、子域DNS服务器的配置
1、配置子域服务器的基础网络环境
# vim /etc/sysconfig/network-scripts/ipcfg-eth0
……
BOOTPROTO=none
IPADDR=192.168.0.188 (可根据自己的实际情况配置)
NETMASK=255.255.255.0
……
# vim /etc/resolv.conf
nameserver 192.168.0.188
# service network restart
2、按照主DNS的配置方式配置子域
# vim /etc/named.conf
options {
directory “/var/named”;
listen-on port 53 { 127.0.0.1; 192.168.0.188; };
};
zone “sub.tian.com” IN {
type master;
file “sub.tian.com.zone”;
}; (反向解析就不在写了)
3、建立区域数据文件
# vim /var/named/sub.tian.com.zone
$TTL 86400
$ORIGIN sub.tian.com.
@ IN SOA ns.tian.com. root.tian.com. (
2010022801 ;序列号
1H ;刷新时间
7D ;过期时间
1D ) ;否定记录生存时间
IN NS ns.sub.tian.com.
ns IN A ns.sub.tian.com.
www IN A
4、测试子域服务器的运行状态
# nslookup
>
5、修改主DNS的区域文件
# vim /etc/named.conf
增加以下记录:
sub IN NS ns.sub.tian.com
ns.sub IN NS 192.168.0.188
# service named restart
6、在主DNS上测试子域的解析
# nslookup
>
注:默认情况下在父域上可以解析子域的名称,但在子域上无法直接解析父域的名称,若要实现在子域上解析父域的名称,需在子域的配置文件中添加以下记录:
zone “tian.com” IN {
type forward;
forwarders { 192.168.0.186; };
};
总结:
1、配置的时候一定要细心,尤其是各个配置文件,一个空格或者一个标点符号错误,就会导致无法启动。
2、再次强调,named所需的所有文件或者目录的属组必须为named。
3、有种简单的配置方法,安装caching-nameserver-
以上内容如有问题请发邮件到:linuxjason@w.cn,我会在第一时间回复。如需转载,请注明出处。