djbdns是用来代替bind的很好的一个高速DNS缓存服务器。
我今天在FreeBSD上安装了一下,觉得它的确是很好用,我只能这么说。我只用来解析了一下别的域名。
以下是我安装djbdns的一个过程:
资料上说过安装一个标准的djbdns就必须安装daemontools,因为daemontools是一个companiaon package, 是djbdns必需的。它提供了一些支持djbdns开始和管理的程序给djbdns.
一:.安装daemontools(in FreeBSD):
%whereis daemontools
%cd /usr/ports/sysutils/daemontools
#make install clean
这时会弹出个对话框让你选择。在这里你不要选择MAN,因为如果选上了会在下载MAN的时候找不着,会一直停住。我就这样,最后我只能通过源码安装。安装如下:
#mkdir -p /package
#chmod 755 /package
#cd /package //以上三部是新建一个目录来放daemontool
#wget //下载daemontool源码
#tar xzvf daemontools-0.76.tar.gz //解压
#cd admin/daemontools-0.76
#package/install //安装
安装完后它会自动创建一个/service目录
二:2.1安装djbdns
%cd djbdns
%cd /usr/ports/dns/djbdns
#make install clean
2.2. 设置dnscache:
2.2.1 新建两个帐号,一个给dnscache使用, 而另一个记录日志信息
#adduser -s /bin/false dnscache
#adduser -s /bin/false dnslog
2.2.2 决定将dnscache放到哪个接口上。如果只想服务你主机本身的话就选127.0.0.1(这是dnscache默认使用的地址),若要服务内部网络的话则选择与内部网络相连的IP地址(如192.168.1.100)
2.2.3 选择一个存放dnscache服务文件的目录,如/etc/dnscache(这不用你创建,有稍后的执行命令中会自动创建)。
2.2.4 执行指令:
#dnscache-conf dnscache dnslog /etc/dnscache 127.0.0.1 //只供个人使用的IP
or
#dnacache-conf dnscache dnslog /etc/dnscache 192.168.1.100 //供内部网络使用的IP
前两个参数是先前创建的系统帐号,第三个参数是服务目录,最后一个参数是dnscache所要绑定接口的IP,该地址的UDP port 53会被dnscache占用。
2.2.5 修改ICANN服务器(*.root-servers.net)的地址列表。列表文件位于/etc/dnscache/root/servers/@里面(这是你选择的服务目录是/etc/dnscache)该文件的每行代表一个根服务器地址。你可直接到取得最新地址列表。然后动手修改/etc /dnscache/root/servers/@文件。还有一个更好的办法就是用djbdns的工具:
#dnsip `dnsqr ns . | awk '/answer:/ {print $5 ;}'`| \
sort > /etc/dnscache/root/servers/@
这样就会有好几个ip 在你的/etc/dnscache/root/servers/@里面了
2.2.6 让daemontools 开始管理新的server
#ln -s /etc/dnscache /service
2.2.7 如果服务内部网络,那还得让内网能访问高速缓存数据库:
#touch /etc/dnscache/root/ip/192.168.1.100
如果你只用来服务本身主机的话就不用这一步了。
2.2.8 编辑/etc/resolv.conf,将第一个nameserver 指向dnscache所在的地址,使resolver使用新的dnscacheserver,当你的服务范围是你本身主机的话,那就:
nameserver 127.0.0.1
如果是内部网络的话:
nameserver 192.168.1.100
2.2.9 到这里就算是完成了,你可利用djbdns 的 dnsqr, dnsip, dnsname等工具查询,不过避免使用nslookup测试以,因为在这种情况下会产生一些无法预料的事情会发生
以下是一些安装好djbdns的一些command:
dnsqr - 是要求输出域名的类型。
格式是: dnsqr t domain
t 就是类型,而t有以下几种: any, a, ns, mx, ptr, txt, cname, soa, inifo, rp, sig, key, aaaa, axtr.
dnsip - 解析域名的IP地址!
格式是: dnsip domain
dnsname - 用IP来解析域名!
格式是: dnsname IP
三: 接下来就是架设区域授权服务器,那就得设定tinydns。安装的步骤如下:
3.1. 创建一个新的用户: tinydns
#adduser -s /bin/false tinydns
3.2. 为tinydns选取服务目录和公有IP,注意,dnscache和tinydns必须分不同IP,否则它们会抢占同一个UDP port 53.
#tinydns-conf tinydns dnslog /etc/tinydns 公有IP
这个指令跟上面设置dnscache的目的其实是一样的。
3.3. 创建符号链接,使svscan自动启动tinydns服务
#ln -s /etc/tinydns /service
四:. 在这里算是完成啦。不过还得借助tinydns的辅助工具来进行设定:
4.1. 成为root并切换到/etc/finydns目录下:
#cd /service/tinydns/root
4.2. 指定区域的主授权服务器(NS记录)
#./add-ns M-gtuiw.com 192.168.1.1
4.3. 指定区域次授权服务器(NS记录)
#./add-childns M-gtuiw.com 192.168.2.1
4.4. 设定主机名称与IP addr 的对应关系(A记录)
#./add-host OS.M-gtuiw.com 192.168.1.1
4.5. 设定地址别名(CNAME记录)
#./add-alias 192.168.1.1
4.6. 指定邮件交换站(MX记录)
#./add-mx mail.M-gtuiw.com 192.168.1.1
4.7. 公开先前增加的记录:
#./add-data
说一下吧,从第二步到第六步的add-* script将你给定的参数回到data文件中。./add-data 会将该 文件换成data.cdb数据库文件。 tinydns会关注data.cdb 的变化,并自动加载新版区域数据
到这里算完成了一部分啦。
说真的,我并没试过,我只用来解析过域名而已。
阅读(3074) | 评论(0) | 转发(0) |