我一直在关注本指南在 Ubuntu 12.04 上设置 DNS 服务器bind9
,但完成所有配置后,当我运行时host -l home.lan
出现以下错误:
; Transfer failed.
Host home.lan.home.lan not found: 4(NOTIMP)
; Transfer failed.
我的 Ubuntu 服务器的名称是dnsserver
且有 IP 地址192.168.0.254
,网络上还有另外 3 台主机(webserver
有 IP 地址192.168.0.12
、owncloud
有 IP 地址192.168.0.14
和路由器192.168.0.1
)。
以下是我的所有配置文件。
配置文件
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
8.8.8.8;
4.4.4.4;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
gateway 192.168.0.1
network 192.168.0.0
broadcast 192.168.0.255
dns-nameservers 127.0.0.1
dns-search home.lan
dns-domain home.lan
/etc/bind/named.conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "home.lan" IN {
type master;
file "/etc/bind/zones/home.lan.db";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
};
/etc/bind/zones/home.lan.db
; Use semicolons to add comments.
; Host-to-IP Address DNS Pointers for home.lan
; Note: The extra “.” at the end of the domain names are important.
; The following parameters set when DNS records will expire, etc.
; Importantly, the serial number must always be iterated upward to prevent
; undesirable consequences. A good format to use is YYYYMMDDII where
; the II index is in case you make more that one change in the same day.
$ORIGIN .
$TTL 86400 ; 1 day
home.lan. IN SOA dnsserver.home.lan. hostmaster.home.lan. (
2008080901 ; serial
8H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
; NS indicates that dnsserver is the name server on home.lan
; MX indicates that dnsserver is (also) the mail server on home.lan
home.lan. IN NS dnsserver.home.lan.
home.lan. IN MX 10 dnsserver.home.lan.
$ORIGIN home.lan.
; Set the address for localhost.home.lan
localhost IN A 127.0.0.1
; Set the hostnames in alphabetical order
dnsserver IN A 192.168.0.254
owncloud IN A 192.168.0.14
router IN A 192.168.0.1
webserver IN A 192.168.0.12
/etc/bind/zones/rev.0.168.192.in-addr.arpa
; IP Address-to-Host DNS Pointers for the 192.168.0 subnet
@ IN SOA dnsserver.home.lan. hostmaster.home.lan. (
2008080901 ; serial
8H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
; define the authoritative name server
IN NS dnsserver.home.lan.
; our hosts, in numeric order
1 IN PTR router.home.lan.
12 IN PTR webserver.home.lan.
14 IN PTR owncloud.home.lan.
254 IN PTR dnsserver.home.lan.
你能发现我的错误吗?
更新
反向 DNS 似乎也不起作用。的输出named-checkzone home.lan /etc/bind/zones/rev.0.168.192.in-addr.arpa
如下:
/etc/bind/zones/rev.0.168.192.in-addr.arpa:2: SOA record not at top of zone (0.168.192.in-addr.arpa.home.lan)
/etc/bind/zones/rev.0.168.192.in-addr.arpa:10: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:12: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:13: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:14: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:15: no TTL specified; zone rejected
zone home.lan/IN: loading from master file /etc/bind/zones/rev.0.168.192.in-addr.arpa failed: not at top of zone
zone home.lan/IN: not loaded due to errors.`
答案1
我会在文件中的 DNS 搜索域末尾添加点/etc/network/interfaces
。
dns-search home.lan.
dns-domain home.lan.
从表面上看,它们被应用了两次。
反向查找的问题
这是来自我的 DNS 绑定服务器的一个示例。
$ more db.192.168.1
$ORIGIN .
$TTL 604800 ; 1 week
1.168.192.in-addr.arpa IN SOA ns.bubba.net. hostmaster.bubba.net. (
2000075009 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns.bubba.net.
$ORIGIN 1.168.192.in-addr.arpa.
1 PTR server1.bubba.net.
101 PTR server2.bubba.net.
102 PTR server3.bubba.net.
...