我对系统管理这方面还很陌生。
我在 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
答案1
根据您提到的名称服务器在您的 中设置为 127.0.0.53 的事实/etc/resolv.conf
,这意味着 systemd 正在为您处理名称解析。快速解释一下这行的含义,name server 127.0.0.53
意味着使用正在侦听该 IP 地址的名称服务器,在本例中是 systemd-resolved。意味着options edns0
支持扩展 DNS 选项以允许更大的 UDP 数据包大小,您无需担心这里的问题。
有两种可能的解决方法。第一种方法是修复 systemd-resolved,使其指向服务器上运行的 Bind9 实例。您可以通过以下任一方法执行此操作:a) 编辑 /etc/systemd/resolved.conf,使其显示类似以下内容:
[Resolve]
DNS=127.0.0.1
它可能在那里。或者 b) 配置一个带有扩展名的8.8.8.8
systemd 解析配置文件。创建一个名为的文件,并在其中输入:/etc/systemd/network/
.network
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 行更新为nameserver 127.0.0.1
。完成后,您可以使用以下命令重新启动 resolvconf:
sudo systemctl restart resolvconf
执行上述任一选项后,您应看到/etc/resolv.conf
现在您的名称服务器已按照配置中定义,并且您的 DNS 查找应使用本地绑定。您在评论中未提及该dig
命令是否有效,但我认为它们有效。