Dns

找不到主機 home.lan.home.lan:bind9 (DNS) 中的 4(NOTIMP) 錯誤

  • November 11, 2018

我一直在按照本指南bind9在 Ubuntu 12.04 上設置 DNS 伺服器,但是在完成所有配置後,當我執行時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.12owncloud有 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.`

我會在/etc/network/interfaces文件中的 DNS 搜尋域末尾添加點。

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.
...

引用自:https://unix.stackexchange.com/questions/125601