BIND 区域还通知语法

BIND 区域还通知语法

鉴于以下情况,我的 BIND 9 无法启动。

acl ns2 { 192.168.10.50; };
zone "10.168.192.in-addr.arpa" IN {
        also-notify { ns2 port 53; };
        type master;
        file "192.168.10.db";
};

它将以下内容写入 /var/log/messages 文件。

[root@dev bind]# tail /var/log/messages
Jan 25 18:41:05 dev named[22863]: found 4 CPUs, using 4 worker threads
Jan 25 18:41:05 dev named[22863]: using 4 UDP listeners per interface
Jan 25 18:41:05 dev named[22863]: using up to 4096 sockets
Jan 25 18:41:05 dev named[22863]: loading configuration from '/etc/named.conf'
Jan 25 18:41:05 dev named[22863]: /etc/named.conf:18: missing ';' before 'port'
Jan 25 18:41:05 dev named[22863]: /etc/named.conf:18: missing ';' before '53'
Jan 25 18:41:05 dev named[22863]: /etc/named.conf:23: missing ';' before 'port'
Jan 25 18:41:05 dev named[22863]: /etc/named.conf:23: missing ';' before '53'
Jan 25 18:41:05 dev named[22863]: loading configuration: failure
Jan 25 18:41:05 dev named[22863]: exiting (due to fatal error)

这很奇怪,因为根据他们的指南这里,正确的语句语法是

[ also-notify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]

答案1

我已通过执行以下操作修复了此问题...如果有人知道为什么我们现在同时拥有 masters 和 acl,而不仅仅是 acl,请告知我。

acl ns2 { 192.168.10.50; };
masters ns2 { 192.168.10.50 port 53; };

options {
        allow-query { any; };
        allow-recursion { localnets; };
        allow-transfer { ns2; };
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        pid-file "/var/run/named.pid";
};

zone "10.168.192.in-addr.arpa" IN {
        also-notify { ns2; };
        type master;
        file "192.168.10.db";
};

答案2

您可以按照如下方式轻松更改您的区域:

zone "10.168.192.in-addr.arpa" IN {
        also-notify { 192.168.10.50; };
        type master;
        file "192.168.10.db";
};

如果从属服务器在 53 以外的其他端口上运行,则可以指定是否更改允许通知,如下所示:

also-notify { 192.168.10.50 port xxx; };

除非指定端口,否则绑定将通知发送到端口 53。

答案3

你只需要输入:

主人“acl名称”{ip1; ip2; ip3; 等;}

然后在带有 also-notify { acl-name;}; 语句之后调用它。

相关内容