我在 Ubuntu 14.04/trusty(内核 4.4.0-59)上为本地网络设置了 bind9(9.9.5)的 DNS。它正常工作,但有时无法找到主机的 IP(例如 ping 显示:)ping: unknown host aypi1.bxlab
。
我的设置如下。
/etc/bind/named.conf.选项:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { none; };
allow-query {
127.0.0.1;
192.168.0.0/24;
};
};
/etc/bind/named.conf.local:
zone "bxlab" IN {
type master;
file "/etc/bind/db.intra";
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/db.0.168.192";
};
/etc/bind/db.intra:
$TTL 1D ;
@ IN SOA bxlab. root.bxlab (
2011102401 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire
1D ) ; Minimum
IN NS aypi1.bxlab. ;
aypi0 IN A 192.168.0.10 ;
aypi1 IN A 192.168.0.11 ;
aypi2 IN A 192.168.0.12 ;
ns IN CNAME aypi1 ;
/etc/bind/db.0.168.192:
$TTL 1D ;
@ IN SOA ns.bxlab. root.ns.bxlab (
2011102301 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire
1D ) ; Minimum
IN NS ns.bxlab.
IN PTR bxlab.
IN A 255.255.255.0
10 IN PTR aypi0 ;
11 IN PTR aypi1 ;
12 IN PTR aypi2 ;
我还更改了路由器配置,如下所示:
Primary DNS: 192.168.0.11
Secondary: xxx.xxx.xxx.xxx (DNS IP Provided by ISP)
问题是:
- 重新启动 bind9 后,nslookup 可以与 aypi1.bxlab 一起工作。
- 30分钟后(?),
ping aypi1.bxlab
返回ping: unknown host aypi1.bxlab
。 - 但等待几秒钟(也许 6 秒?),ping 开始工作。
- 2和3重复。
有人知道如何解决这个问题吗?
非常感谢!
答案1
正如@pete 在上面的评论中指出的那样,问题出在路由器配置上。
我修改了路由器的 DNS 设置如下:
Primary DNS: 192.168.0.11
Secondary: 0.0.0.0
然后我修改了 /etc/bind/named.conf.options 为:
options {
[...]
forwarders {xx.xx.xx.xx; xx.xx.xx.yy; xx.xx.xx.zz;};
forward first;
};
转发器中的 IP 是来自 ISP 的 DNS。