安装DNS缓存服务器-djbdns
Tuesday, 13. March 2007, 04:16:03

公司服务器集群想搞个DNS缓存服务器,以提高DNS解析速度。本来rhel4自带的BIND9默认配置就是缓存服务器了,老大说搞个其他的,用BIND好像有点小题大作````提供给我了一些资料,里面有个djbdns。
我了解了一下,原来djbdns是qmail作者写的一个简单、高效和安全的DNS cache Server,下面是一些网上介绍:
djbdns 是一個由 Qmail 的作者所設計的新一代 DNS server ,這套djbdns採用了跟BIND不同的思考方向,在程式的架構上也和BIND一手撐天的做法完全不同。它採用模組化的方式,將DNS運作上的各個角色都適當地分配到不同程式上面。採用UNIX的設計哲學,堅持讓一個程式做好一件事的方式,將DNS中最主要的Cache Server、Content Server的角色分離開來,由不同的程式來負責不同的事。
本人本来就非常喜欢qmail,这样爱屋及乌,马上着手研究安装djbdns!
下面给大家介绍一下安装方法:
安装环境:
redhat enterprise linux 4
daemontools 0.76
ucspi-tcp 0.88
djbdns 1.05 (http://cr.yp.to/djbdns.html)
1. 安装djbdns前,需要安装两个工具,即daemontools和ucspi-tcp。
1)daemontools是一个收集管理UNIX进程的工具.用它来监听djbdns进程
mkdir -p /package
chmod 1755 /package
cd /package
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm daemontools-0.76.tar
cd admin/daemontools-0.76
package/install
很简单吧,这样就安装完了;下面来安装ucspi-tcp:
2)ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。TcpServer是一个比inetd安全性更好的选择。它内建有基于规则的连接控制,能完善地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。
gunzip ucspi-tcp-0.88.tar
tar -xf ucspi-tcp-0.88.tar
cd ucspi-tcp-0.88
make
make setup check
2. 真是简单,现在我们来安装我们的主角-djbdns
1) 如果你想把参考文档安装在本机,以便方便使用elinks来查看,则:
gunzip < doc.tar.gz | (cd /; tar -xf -)
然后运行slashdoc-merge脚本来生成 /doc/commands.html index文件就可以啦````
2) 安装djbdns-1.05
gunzip djbdns-1.05.tar
tar -xf djbdns-1.05.tar
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup check
哈,真是简单````
3. 配置djbdns让它成为你的网络的DNS Cache Server
1) 首先以root用户创建两个系统账户,名字为Gdnscache and Gdnslog;
2) 以root用户来建立/etc/dnscache 服务目录(命令的最后接你机器的IP)
dnscache-conf Gdnscache Gdnslog /etc/dnscache 10.53.0.1
这个目录包含一些日志文件和一些配置文件。
3) 以root用户,告诉svscan这个新服务,并使用svstat命令检查运行状态
ln -s /etc/dnscache /service
sleep 5
svstat /service/dnscache
4) 以root用户,在/etc/dnscache/root/ip目录建立文件,限制只有你希望的客户端IP才能使用这个DNS CACHE,如:
touch /etc/dnscache/root/ip/10.53.0
这样10.53.0.*的IP客户端才能使用你的DNS CACHE。
5) 在/etc/resolv.conf中设置DNS为本机,加nameserver 10.53.0.1 为第一行。测试一下:
dnsip www.cnn.com
dnsip www.fsf.org
看能不能返回IP地址?哈哈```恭喜你,成功了!
6) 默认djbdns使用1MB的内存作为它的cache,你可以调整为100MB:
echo 100000000 > /service/dnscache/env/CACHESIZE
echo 104857600 > /service/dnscache/env/DATALIMIT
svc -t /service/dnscache #重启dnscache










How to use Quote function: