FreeBSD DJBDNS:创建辅助TinyDNS服务器

时间:2020-01-09 10:38:31  来源:igfitidea点击:

如果主服务器出现故障,如何创建辅助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