FreeBSD DJBDNS:创建辅助TinyDNS服务器
如果主服务器出现故障,如何创建辅助djbdns dns名称服务器来解析名称?
您可以使用djbdns轻松创建辅助dns服务器。
执行以下命令以在FreeBSD服务器本身上安装辅助DNS服务器(在ns2.theitroad.com上执行以下所有命令):
ns2.theitroad.com辅助NameServer的安装和配置
安装djbdns:
# portsnap fetch update # cd /usr/ports/dns/djbdns # make install clean && rehash
创建用户和所需目录:
# pw groupadd dnsusers # pw useradd tinydns -s /bin/nologin -G dnsusers # pw useradd dnslog -s /bin/nologin -G dnsusers # pw useradd axfrdns -s /bin/nologin -G dnsusers # mkdir /var/service/ # echo 'svscan_enable="YES"' >> /etc/rc.conf # /usr/local/etc/rc.d/svscan.sh start
为您的区域文件创建目录
您需要创建/var/ns2.theitroad.com/,如下所示:
# mkdir /var/ns2.theitroad.com # tinydns-conf tinydns dnslog /var/ns2.theitroad.com 203.51.2.1 # ln -s /var/ns2.theitroad.com /var/service/ # sockstat -4 -p 53
现在,您的辅助tinydns服务器正在运行。
如何从ns1.theitroad.com(第一台tinydns服务器)复制DNS数据?
您在这里有两个选择,如下所示:
使用axfrDNS程序复制DNS数据
axfrdns绑定到TCP端口53。
它从标准输入中读取DNS-over-TCP格式的区域传输请求,并以本地配置的信息作为响应。
与外部DNS服务器(例如BIND)进行通讯时,此程序很有用。
使用tcp客户端,可以请求辅助tinydns的区域传输请求。
在TCP端口53上回答查询也很有用。
通常,大多数客户端将使用UDP端口。
了解如何在主要名称服务器上设置axfrdns以接受区域转移请求。
使用rsync或scp复制DNS数据(ns1.theitroad.com)
您可以使用rsync或scp将生成的data.cdb复制到第二个tinydns名称服务器。
当您只想在自己的两个tindydns服务器之间进行交谈时,这是首选方法。
只需使用以下scp命令从主名称服务器ns1.theitroad.com复制data.cdb:
# scp [email protected]:/var/ns1.theitroad.com/root/data.cdb /var/ns2.theitroad.com/root/
您可以从ns1.theitroad.com本身自动执行此过程。
登录到您的主要名称服务器,并CD到/var/ns1.theitroad.com/root
# cd /var/ns1.theitroad.com/root
打开Makefile文件,执行:
# vi Makefile
如下更新文件(以避免在ns1.theitroad.com和ns2.theitroad.com之间基于密码提示设置ssh-key登录):
remote: data.cdb /usr/local/bin/rsync -az -e ssh data.cdb [email protected]:/var/ns1.theitroad.com/root/data.cdb data.cdb: data /usr/local/bin/tinydns-data
保存并关闭文件。
最后,如下更新ns2.theitroad.com上的Makefile:
# cd /var/ns2.theitroad.com/root # vi Makefile
追加以下行通过停止make保护data.cdb:
# echo "foo" > Makefile