Bind9 中的區域已成功載入。如何調試?Ubuntu
我是這個 SysAdmin-things 的新手。
我在 Ubuntu Server 18 上安裝了 Bind9 (
apt-get install bind9
)。我配置了轉發,設置了區域。但它不起作用。日誌顯示新區域已啟動。
當我 ping 或主機
ns.ubuntu.local
時,它說:ping: ns.ubuntu.local: Temporary failure in name resolution
我怎樣才能知道,我錯過了什麼?
日誌:
Mär 11 08:18:42 server named[4201]: managed-keys-zone: loaded serial 21 Mär 11 08:18:42 server named[4201]: zone 0.in-addr.arpa/IN: loaded serial 1 Mär 11 08:18:42 server named[4201]: zone 127.in-addr.arpa/IN: loaded serial 1 Mär 11 08:18:42 server named[4201]: zone 255.in-addr.arpa/IN: loaded serial 1 Mär 11 08:18:42 server named[4201]: zone ubuntu.local/IN: loaded serial 1 Mär 11 08:18:42 server named[4201]: zone localhost/IN: loaded serial 2 Mär 11 08:18:42 server named[4201]: all zones loaded
我的
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; 8.8.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 //======================================================================== listen-on { any; }; allow-query { any; }; recursion yes; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };
我的
named-conf.local
// // Do any local configuration here // zone "ubuntu.local" { type master; file "/etc/bind/zones/db.ubuntu.local"; }; // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918";
我的
zones/db.ubuntu.local
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.ubuntu.local. root.ubuntu.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.ubuntu.local. ns IN A 192.168.2.10 www IN A 102.168.2.10
基於您提到名稱伺服器在您的 127.0.0.53 中設置的事實
/etc/resolv.conf
,這意味著 systemd 正在為您處理名稱解析。為了快速分解該行的含義,name server 127.0.0.53
意味著使用正在偵聽該 IP 地址的名稱伺服器,在這種情況下,它是 systemd-resolved。支持擴展 DNS 選項的options edns0
意思是允許更大的 UDP 數據包大小,您無需擔心這裡。有兩種可能的解決方法。第一個是修復 systemd-resolved,使其指向在您的伺服器上執行的 Bind9 實例。您可以通過 a) 編輯 /etc/systemd/resolved.conf 來做到這一點,因此它會說類似於以下內容:
[Resolve] DNS=127.0.0.1
它可能
8.8.8.8
在裡面。/etc/systemd/network/
或者 b)使用.network
副檔名配置 systemd 解析的配置文件。創建一個類似的文件50-mydns.network
,並在其中放入:[Match] Name=eth0 # Your interface name [Network] DNS=127.0.0.1
如果您不確定界面,您可以隨時進行
systemd-resolve --status
,並且應該在此處列出。一旦完成了這些選項中的任何一個,請使用以下命令重新啟動 systemd-resolved:sudo systemctl restart systemd-resolved`.
第二個選項是禁用 systemd-resolved 並安裝 resolvconf 執行以下操作:
sudo systemctl disable systemd-resolved sudo systemctl stop systemd-resolved sudo apt install resolvconf
然後查看
/etc/resolvconf/resolv.conf.d/base
並將名稱伺服器行更新為nameserver 127.0.0.1
. 完成後,您可以使用以下命令重新啟動 resolvconf:sudo systemctl restart resolvconf
在這些選項中的任何一個之後,您應該看到您
/etc/resolv.conf
現在擁有配置中定義的名稱伺服器,並且您的 DNS 查找應該使用您的本地綁定。如果命令有效,您沒有在評論中提及dig
,但我會假設他們確實有效。