named-checkconf 在先前运行的前向区域文件上抛出错误

named-checkconf 在先前运行的前向区域文件上抛出错误

我想在我的 bind9 配置 (BIND 9.16.1) 中添加一个区域。我有大约 20 个域由该名称服务器提供服务,其中大多数已经运行了 10 年以上。

named-checkconf 不仅在新的 conf 文件上抛出错误,而且在所有旧的 conf 文件上也抛出错误,尽管它们仍然有效。我不敢重新加载 bind9,以防我遗漏了什么。

我收到以下错误:

root@ns:/var/cache/bind# named-checkconf test
test:1: unknown option '$ORIGIN'
test:18: unexpected token near end of file
root@ns:/var/cache/bind# cat test
$ORIGIN test.au.
$TTL 3h
@   IN  SOA ns1.example.com.au. david.example.com.au. (
            23042601    # serial
            3h      # refresh
            15m     # retry
            14d     # expire
            12h     # default_ttl
            )
@   IN  NS  ns1.example.com.au.
@   IN  NS  ns2.example.com.au.
@   IN  MX  50  mail.test.au.
@   IN  MX  100 ns.example.com.au.
@   IN  A   123.456.789.1
mail    IN  A   123.456.789.9
www IN  A   123.456.789.1
 
root@ns:/var/cache/bind#

如果我在开头添加注释,我会收到不同的错误,如下所示:

root@ns:/var/cache/bind# named-checkconf test
test:1: syntax error near ';'
root@ns:/var/cache/bind# cat test
; 230426 original
;
$ORIGIN test.au.
$TTL 3h
@   IN  SOA ns.example.com.au.  david.example.com.au. (
etc......

我感觉我忽略了一些明显的东西。

答案1

named-checkconf您正在区域文件上运行,但named-checkconf被要求验证配置文件,就像这样named.conf,只需使用named-checkzone即可。

你应该这样运行它named-checkzone test.au test

相关内容