我刚刚设置了家庭服务器(Ubuntu Server 14)并配置了DNS和DHCP。除DDNS外,一切正常。 / var / logs / syslog在发出新的DHCPREQUEST时报告以下内容:
Jul 25 23:20:14 ns.lan dhcpd: DHCPREQUEST for 192.168.1.73 from <mac> (<hostname>) via eth0
Jul 25 23:20:14 ns.lan dhcpd: DHCPACK on 192.168.1.73 to <mac> (<hostname>) via eth0
Jul 25 23:20:14 ns.lan dhcpd: Unable to add forward map from <hostname>.lan to 192.168.1.73: SERVFAIL
区域文件设置为root:bind和664。
-rw-r--r-- 1 root root 2389 Jun 29 20:54 bind.keys
-rw-r--r-- 1 root root 237 Jun 29 20:54 db.0
-rw-r--r-- 1 root root 271 Jun 29 20:54 db.127
-rw-r--r-- 1 root bind 313 Jul 25 21:02 db.192
-rw-r--r-- 1 root root 237 Jun 29 20:54 db.255
-rw-r--r-- 1 root root 353 Jun 29 20:54 db.empty
-rw-rw-r-- 1 root bind 387 Jul 25 17:57 db.lan
-rw-r--r-- 1 bind bind 0 Jul 25 20:04 db.lan.jnl
-rw-r--r-- 1 root root 270 Jun 29 20:54 db.local
-rw-r--r-- 1 root root 3048 Jun 29 20:54 db.root
-rw-r--r-- 1 root bind 463 Jun 29 20:54 named.conf
-rw-r--r-- 1 root bind 490 Jun 29 20:54 named.conf.default-zones
-rw-r--r-- 1 root bind 398 Jul 25 17:14 named.conf.local
-rw-r--r-- 1 root bind 998 Jul 25 02:10 named.conf.options
-rw-r----- 1 bind bind 77 Jul 18 01:39 rndc.key
-rw-r--r-- 1 root root 1317 Jun 29 20:54 zones.rfc1918
我已将dhcpd用户添加到绑定组:
$ groups dhcpd
dhcpd : dhcpd bind
我还配置了AppArmor(/etc/apparmor.d/usr.sbin.dhcpd)以允许访问:
# Allow access to bind zone file so that it
# can be updated as new hosts are allocated
/etc/bind/db.lan rw,
区域文件如下所示:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.lan. hostmaster.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns
@ IN A 127.0.0.1
@ IN AAAA ::1
ns IN A 192.168.1.1
server IN A 192.168.1.2
media IN A 192.168.1.3
web IN A 192.168.1.4
dsldevice IN A 192.168.1.254
关于&#34;无法添加转发地图的任何想法&#34; SERVFAIL错误甚至我如何诊断问题?
答案 0 :(得分:1)
正如@Richard Payne所说,这是apparmor的问题。
运行tail -f /var/log/messages
时应显示以下消息:
kernel: [ss.sss]: audit: type=1400: apparmor="DENIED" operation="mknod" profile="/usr/sbin/named" name="/etc/bind/db.<zone>.jnl" ....
因此,要解决此问题,请将以下内容添加到/etc/apparmord.d/local/usr.sbin.named
:
# Allow dynDNS entries to be written, along with journal ant temporary files
/etc/bind/db.* rw,
/etc/bind/tmp-* rw,
此外,请确保文件/etc/apparmord.d/usr.sbin.named
包含我们所做更改的文件的#include
指令。通常在结尾,看起来像这样:
# Site-specific additions and overrides
#include <local/usr.sbin.named>
然后,重新启动apparmor并绑定
sudo systemctl restart apparmor
sudo systemctl restart bind9
答案 1 :(得分:0)
我最后重新调整了文件结构,我已经完成了一些工作。我想这是一个权限问题,可能是apparmor相关的猜测。