bind 9 安装 配置 master slave .. 不是很难,但其中也遇到些问题。。耗费了点时间解决...

本文介绍在公司内部使用FreeBSD系统搭建DNS服务器的过程,包括master和slave的配置细节,并解决了配置过程中遇到的一些常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打算在公司内部 安装一个 dns 来使用。因为公司内部开发服务器也挺多的。现在都是用IP 。 但我想有个域名好记一点。

打算在网关和一台开发服务器上做 master 和 slave

ip分别为:

网关: 192.168.1.243

开发服务器: 192.168.1.241

我系统是 FreeBsd 的。 那当然是用 ports 安装啦。。哇咔咔

我们先做 master:

# cd /usr/ports/dns/bind94

# make install clean

装完了 记得 修改 /etc/rc.conf 文件 用来启动

# vi /etc/rc.conf

named_enable="YES"

先看下,我的BIND 的文件目录:

files# ls
dynamic master named.127.0.0 named.192.168.1 named.365.com named.conf named.localhost named.root rndc.key slave

好了 接下来 就要开始 配置 bind 正反解信息了。具体如何设置正反解这个不多说了

1 。 配置 named.conf 文件

options { // Relative to the chroot directory, if any directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; allow-query { any; }; }; zone "." { type hint; file "named.root"; }; zone "localhost" { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.127.0.0"; }; zone "365.com" { type master; file "named.365.com"; allow-transfer { 192.168.1.241; }; //notify yes; }; zone "1.168.192.in-addr.arpa" { type master; file "named.192.168.1"; allow-transfer { 192.168.1.241; }; //notify yes; }; # Use with the following in named.conf, adjusting the allow list as needed: key "rndc-key" { algorithm hmac-md5; secret "LdNFz6l1j4Oyhd2lwk1/aA=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; # End of named.conf

2 。 然后开始设置 我想要的域名 365.com 的 正反zone。 文件名: named.365.com

$TTL 600 @ IN SOA ns.365.com huithe ( 12 28800 14400 720000 86400 ) @ IN NS ns.365.com. @ IN NS ns2.365.com. ns IN A 192.168.1.243 ns2 IN A 192.168.1.241 www IN A 192.168.1.241 xxoo IN CNAME www jjyy IN CNAME www luosuo IN CNAME www test IN CNAME www bb IN A 192.168.1.244 cc IN A 192.168.1.244 jj IN A 192.168.1.244 yehuiming IN A 192.168.1.244 www2 IN CNAME www

反解的。 其实不要反解释的也一样是可以运行的:

$TTL 600 @ IN SOA ns.365.com huithe.ns.365.com. ( 2011030802 28800 14400 720000 86400 ) @ IN NS ns.365.com. @ IN NS ns2.365.com. 243 IN PTR ns.365.com. 241 IN PTR ns2.365.com.

就这样。就可以运行了。

# /etc/rc.d/named start

然后看成功与否 记得去看 /var/log/message 日志。

#tail -n 30 /var/log/message

Mar 8 17:56:31 files named[31213]: starting BIND 9.4.3-P2 -t /var/named -u bind
Mar 8 17:56:31 files named[31213]: command channel listening on 127.0.0.1#953
Mar 8 17:56:31 files named[31213]: running

看到这个。就是成功了。。。。

好了现在开始做 slave:

首先也得安装 bind 啦。。装完以后,我直接就拷贝 master 的配置文件过去修改就行了。不过有两个文件是不要弄过去的。一个是 named.365.com 一个是 named.192.168.1 因为这两个文件是 master 同步 给 slave 的 而不需要 slave 有这两个文件存在。

所以配置 slave 最主要的就只是 named.conf 这个总配置文件

options { // Relative to the chroot directory, if any directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; allow-query { any; }; }; zone "." { type hint; file "named.root"; }; zone "localhost" { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.127.0.0"; }; zone "365.com" { type slave; file "named.365.com"; masters { 192.168.1.243; }; }; zone "1.168.192.in-addr.arpa" { type slave; file "named.192.168.1"; masters { 192.168.1.243; }; };

够简单吧。呵呵 好了 然后就可以启动了。

启动后 如果成功你可以看到 named.365.com 文件和 named.192.168.1 反解文件 自动就从 master 同步过来了。

然后我们根据自己设的域名 测试下 看是否能解释:

# dig @127.0.0.1 www.365.com

beihai365test# dig @127.0.0.1 www.365.com ; <<>> DiG 9.4.2 <<>> @127.0.0.1 www.365.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28909 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.365.com. IN A ;; ANSWER SECTION: www.365.com. 600 IN A 192.168.1.241 ;; AUTHORITY SECTION: 365.com. 600 IN NS ns2.365.com. 365.com. 600 IN NS ns.365.com. ;; ADDITIONAL SECTION: ns.365.com. 600 IN A 192.168.1.243 ns2.365.com. 600 IN A 192.168.1.241 ;; Query time: 14 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Mar 9 10:10:37 2011 ;; MSG SIZE rcvd: 112

能解释那就OK了。。

然后在 master 中添加了新 zone 或者是 二级域名。 只要修改下 serial 号 变大就行了。 然后 我使用 重启bind 或者是

#rndc reload 那么 从就自动更新了... 是不是很方便

在这次的部署中遇到两个问题:

1 。 chroot 导致的文件目录权限问题。查看 /var/log/message 显示:

Mar 8 17:36:58 files named[30498]: the working directory is not writable

解决办法: vi /etc/mtree/BIND.chroot.dist

/set type=dir uname=root gname=wheel mode=0755

修改成

/set type=dir uname=bind gname=wheel mode=0755

重启就行了。

2 。 遇到了 master 无法更新 slave 和 slave 重启也无法更新 master 。 用tcpdump 抓包发现。 当 master 重启的时候 根本没有向 slave 发送更新的 包。 百思不得其解。 后来突然醒悟。原来是自己忘记了

master 只会 更新 zone 中 设置的 dns 服务器,也就是 NS 记录的IP 。 而我竟然忘记添加 slave 的 NS 记录了。导致 master 以为只有自己一台 dns 。。所以根本没有发送更新包 给 slave ..最后加上就一切正常了:

@ IN NS ns.365.com.
@ IN NS ns2.365.com.

ns IN A 192.168.1.243
ns2 IN A 192.168.1.241

。。。。。。。。。。。。。

3. 在配置 rndc 的时候 出现:

rndc: connection to remote host closed

这个问题是因为 rndc.conf 里面的 密匙和 rndc.key中的secret不一致引起 。 修改之后 就OK了

完了~~ 给自己记录下。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值