分类: LINUX
2007-10-07 10:42:19
很多朋友学习在Linux上配置DNS服务器的时候,都是参考的在RHEL4或Fedora Core5之前平台上的资料。在Fedora 7上,很多东西发生了变化。本文简单介绍一下应对的方法。
软件列表
bind-libs-9.4.0-6.fc7
bind-chroot-9.4.0-6.fc7
bind-utils-9.4.0-6.fc7
bind-9.4.0-6.fc7
caching-nameserver-9.4.0-6.fc7
如果您升级过系统,则软件的版本会略有不同。其中的bind-chroot可以增加DNS服务器的安全,不安装也能工作。
Fedora 7上的bind软件和原来的结构有所不同,没有了以前的/etc/named.conf和 /var/named/chroot/etc/named.conf(前者是后者的符号链接),导致很多朋友一时不知道该如何配置DNS服务器了,经过简 单研究,笔者终结出了DNS服务器的配置方法。
在/var/named/chroot/etc下执行
cat named.caching-nameserver.conf named.rfc1912.zones > named.conf
rm named.caching-nameserver.conf named.rfc1912.zones > named.conf
[root@maluyao ~]ln -s /var/named/chroot/etc/named.conf /etc/named.conf
上面的步骤是合并named.caching-nameserver.conf
named.rfc1912.zones合并到一个文件(/var/named/chrrot/etc/named.conf)中,然后将其删除。实际操
作的时候,最好不要删除,而是将这俩个文件移动到其他位置备份。并且为了方便起见,在/etc下作了一个符号链接。
修改named.conf文件,将其中的
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
};
和
include "/etc/named.rfc1912.zones";
行注释或删除。
Fedora 7中,默认仅仅在回环地址127.0.0.1 和 ::1(IPV6的回环地址)上打开53端口,如果希望在所有地址上都打开53端口,则应该修改named.conf 中
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
为
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
Fedora 7 中的DNS服务器默认只允许127.0.0.1这个客户端(即本机)发起查询,一般我们需要允许所有人查询,这要修改name.conf中的:
allow-query { localhost; };
为
allow-query { any; };
重新启动BIND
/etc/named.conf文件的配置参数说明:
OA 指示该区的权威
NS 列出该区的一个名字服务器
A 名字到地址的映射
PTR 地址到名字的映射
CNAME 别名
先从 下载bind,我下载的是bind-
rpm包
bind-chroot-
bind-libs-
bind-
bind-devel-
bind-utils-
caching-nameserver-7.3-3
我下载的文件放在/root目录下
进入目录解压缩
[root@linux root]#tar xfz bind-
进如刚解压出来的目录
[root@linux root]# cd bind-9.3.1rc1
编译配置
[root@linux bind-9.3.1rc1]#./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力
[root@linux bind-9.3.1rc1]#make
[root@linux bind-9.3.1rc1]#make install
进入/usr/local/named 建立etc目录
[root@linux bind-9.3.1rc1]#cd /usr/local/named
[root@linux named]# mkdir etc
生成rndc控制命令的key文件
[root@linux named]# sbin/rndc-confgen > etc/rndc.conf
从rndc.conf文件中提取named.conf用的key
root@linux named]# cd etc
[root@linux etc]# tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf
自动在/usr/local/named/etc 生成named,conf文件
建立区文件目录
[root@linux etc]# mkdir /var/named
进入/var/named
[root@linux etc]# cd /var/named
建立localhost.zone文件
[root@linux named]#vi localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
建立named.local文件
[root@linux named]#vi named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
dig命令直接生成named.root文件
[root@linux named]#dig > named.root
建立seker.com域名正向解析文件
[root@linux named]#vi seker.zone
$ttl 1D
@ IN SOA seker.com. root.seker.com. (
1053891162
3H
1W
1D )
IN NS seker.com.
IN MX 5 seker.com.
www IN A 192.168.1.4
建立seker.com域名反向解析文件
[root@linux named]#vi seker.local
$TTL 86400
@ IN SOA seker.com. root.seker.com.(
20031001;
7200;
3600;
43200;
86400);
@ IN NS seker.com.
配置named.conf加如以下代码
[root@linux etc]# vi named.conf
options {
directory "/var/named"; #named区文件目录
pid-file "named.pid"; #进程id文件名
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "seker.com" IN {
type master;
file "seker.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "seker.local";
allow-update { none; };
};
现在配置完了可以启动BIND了
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf &
只要显示
runing表示运行成功
测试DNS
[root@linux etc]# host 192.168.1.4
4.1.168.192.in-addr.arpa domain name pointer dns.seker.com.
如上显示表示DNS反向解析正常
[root@linux etc]# ping
如上显示表示正向解析正常
DNS配置完成
FAQ:
错误:view.c:347: REQUIRE((&view->references)->refs > 0) failed
rpm –e –nodeps bind-libs-
yum install bind-libs
service named restart