我有一个问题已经困扰我三天了!我正在用新的权威 DNS 服务器替换我的权威 DNS 服务器,然后我再次重置所有 BIND9 配置,以便在替换后进行更多的“微调”。
我已经配置了一个MASTER服务器和两个SLAVE服务器,我已经配置了一个区域用于测试,该区域带有我通常用于测试的域(FQDN),问题是这样的:
- 当我更新区域并重新启动/重新加载绑定时,从日志中我看到通知已正确发送,但所有从属设备均未收到(也使用 tcpdump 端口 53 进行了验证:没有来自主设备的输出)
Feb 12 20:42:13 svr-3 named[12957]: zone test.com/IN: sending notifies (serial 20210 21201)
- 如果我添加指令“also-notify {slave_ip_1; slave_ip_2;}; 通知被正确发送和接收(使用 tcpdump 端口 53 和绑定日志进行验证),显然传输过程可以正确开始和结束
此时,我相信这是 MASTER 某些配置的问题,我已经忽略或设置不正确,因为从属设备接收正确;看起来好像它没有读取权威的 NS 记录。
我正在附加配置文件,也许在您的帮助下,我可以找到错误(该文件即将完成,我一遇到这个问题就停止了)
命名的.conf.选项
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 {
// 0.0.0.0;
// };
//========================================================================
// 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;
listen-on { xxx; };
listen-on-v6 { any; };
//IP da utilizzare per le richieste in uscita di aggiornamento zone e il forward dei dynamic updates
transfer-source xxx;
//Abilito le notifiche
notify yes;
//Quale IP utilizzare per le notifiche in uscita
notify-source xxx;
//IP da notificare in aggiunta degli NS RR
// also-notify { yyy; zzz; };
auth-nxdomain no;
// hide version number from clients for security reasons.
version "Not Available";
// disable recursion on authoritative DNS server.
recursion no;
// enable the query log
querylog yes;
// disallow zone transfer
allow-transfer { none; };
};
区域文件
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400 ;TTL (1 Giorno)
$ORIGIN test.com. ;Base Dominio
; Record Start of Authority (SOA)
@ IN SOA ns1.test.net. hostmaster.test.net. (
2021021201 ; Serial
21600 ; Refresh (6H)
10800 ; Retry (3H)
604800 ; Expire (1 Settimana)
604800 ) ; Negative Cache TTL (1 Settimana)
; Record A
@ 10800 IN A 123.345.678.123
www 10800 IN A 123.345.678.123
; Record AAAA
; Record CNAME
; Record TXT
; Record SRV
; Record MX
@ 3600 IN MX 1 mail.test.net.
@ 3600 IN MX 10 mail2.test.net.
; Record NS
@ IN NS ns1.test.net.
@ IN NS ns2.test.net.
@ IN NS dns.otherdomain.it.
命名的.conf.本地
//
// 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 "test.com" {
type master;
file "/etc/bind/zones/db.test.com";
allow-query { any; };
allow-transfer { key keytest; };
};
答案1
我开始将新机器投入生产以管理权威 DNS 服务器,此时我能够进行更精确的诊断。
问题已经解决,我认为这是由于在转移阶段我向注册商注册了新的 GLUE 记录,然后我将所有区域转移到新的主服务器,此时我向您报告了该问题。
但是我还没有向注册商报告新的 DNS 地址,因为显然机器的配置尚未完成;昨天我继续运行 DNS 更新,然后使新服务正常运行,惊喜!
现在,通过禁用“also-notify”功能,主服务器能够向从属机器发送通知。
说实话,我并不认为 bind 会检查当前在注册商处设置的权威服务器是哪些,我认为只有区域文件中设置的 NS 记录就足够了。
感谢大家尝试帮助我解决这个问题,我希望这次经验能够有所帮助。