绑定 9.10 视图内指令不起作用

绑定 9.10 视图内指令不起作用

命名版本:BIND 9.10.3-P4(最新版本)、操作系统版本:CentOS 6.3CentOS 6.7

我需要在不同的视图中使用共享区域,因为 9.10 ISC Bind 不支持在不同视图中对同一区域使用同一文件。尝试这样做会导致错误:

/etc/named.conf:21: writeable file 'slaves/example.db': already in use: /etc/named.conf:8

文档建议使用视野内陈述。Brandon Xavier 在 serverfault 中建议相同。但是,我失败了。这是我尝试加载的简化配置文件:

view "internal" {

    zone example.com {
        type slave;
        file "slaves/example.db";
        masters { 192.168.1.1; };
    };

};

view "external" {

    zone example.com {
        in-view "internal";
    };

};

从外部视图中删除区域 example.com 允许 named 启动。将其配置到单独的文件也有效:

zone example.com {
    type slave;
    file "slaves/example2.db";
    masters { 192.168.1.1; };
};

但指向不同的文件不是一个选项- 在此我仅提供实际配置的示例。此外,当 Bind 尝试启动时,没有输出任何错误消息,日志中也没有任何内容:

# /etc/init.d/named restart
Stopping named:                                            [  OK  ]
Starting named: 
Error in named configuration:
                                                           [FAILED]

是不是很棒?Named-checkconf 没有显示任何错误(我故意删除了逗号或括号 - checkconf 可以正常工作)。我还从 9.10.3-P4 sources.tar.gz(bin/test/system/..)中获取了配置文件,结果是一样的。我应该报告错误吗?

答案1

让我们看看/usr/sbin/named-checkconf执行了什么并返回了什么。该人说:“如果检测到错误,named-checkconf 将返回退出状态 1,否则返回 0”。

好吧,让我们编写一个脚本来检查有效的命名配置:

#!/bin/bash
/usr/sbin/named-checkconf -z /etc/named.conf >/dev/null 2>&1
echo $?
/usr/sbin/named-checkconf /etc/named.conf >/dev/null 2>&1
echo $?

输出将是10。如果我们输入错误named.conf(例如缺少分号),结果将是11。这是什么意思?这意味着即使配置中没有错误,但使用 -z 键,返回代码也是 1 -任何输出都被视为错误。删除2>&1仅保留 stderr 没有任何效果,因此此问题最简单的临时修复方法是-z通过将以下指令放入/etc/sysconfig/named

DISABLE_ZONE_CHECKING="yes"

BIND 9.10.1-RedHat-9.10.1-0.el6PS 在结果上运行上述脚本00在有效命名配置上。结论是:这是named-checkconf返回值中的一个错误,当正常输出结果为 1 时返回代码。将向 ISC 提交带有解释、测试和配置的错误。

注意!此解决方案是临时的,直到修复实施为止。禁用区域检查将不会发现区域中的错误、缺少声明文件等。仅在使用in-view指令时才禁用它。

答案2

在 CentOS 6 上运行没有任何问题

# ./named -v
BIND 9.10.3-P4 <id:ebd72b3>

# ./named -V
BIND 9.10.3-P4 <id:ebd72b3>
built by make with '--prefix=/opt/bind-9.10.3-P4' '--with-libtool' '--with-dlz-stub' '--with-dlz-filesystem' '--with-dlopen' '--without-idn'
compiled by GCC 4.4.7 20120313 (Red Hat 4.4.7-16)
compiled with OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
linked to OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
compiled with libxml2 version: 2.7.6
linked to libxml2 version: 20706

# ./rndc status
version: BIND 9.10.3-P4 <id:ebd72b3>
boot time: Mon, 21 Mar 2016 11:44:26 GMT
last configured: Mon, 21 Mar 2016 11:44:26 GMT
CPUs found: 4
worker threads: 4
UDP listeners per interface: 2
number of zones: 3
debug level: 3
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

附言

# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.7 (Final)
Release:        6.7
Codename:       Final

相关内容