Bind 9.10 in-view diretiva não funciona

1

Versão nomeada: BIND 9.10.3-P4 (a mais recente), versões do sistema operacional: CentOS 6.3 , CentOS 6.7

Eu preciso usar zonas compartilhadas em visões diferentes, já que o 9.10 ISC Bind não suporta o uso do mesmo arquivo para a mesma zona em visões diferentes. Tentar fazer isso resultará em um erro:

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

A documentação sugere o uso do em visualização declaração strong. Brandon Xavier no serverfault recomenda o mesmo. No entanto, eu falhei. Aqui está o arquivo de configuração simplificado que estou tentando carregar:

view "internal" {

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

};

view "external" {

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

};

A remoção da zona example.com da visualização externa permite que o named seja iniciado. Configurá-lo para o arquivo separado também funciona:

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

Mas apontar para um arquivo diferente não é uma opção - por isso forneço apenas um exemplo de configuração real. Além disso, quando o Bind está tentando iniciar, não há saída com uma mensagem de erro nem nada nos logs:

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

Não é legal? Named-checkconf não mostra nenhum erro (removi vírgulas ou colchetes de propósito - o checkconf funciona). Eu também peguei arquivos de configuração do 9.10.3-P4 sources.tar.gz (bin / test / system / ..) e o resultado foi o mesmo. Devo reportar um bug?

    
por Shader 18.03.2016 / 15:50

2 respostas

2

Vamos dar uma olhada no que o /usr/sbin/named-checkconf faz e retorna. O homem diz: "named-checkconf retorna um status de saída de 1 se erros foram detectados e 0 caso contrário".

Muito bem, vamos escrever um script para verificar os valores de retorno em uma configuração nomeada válido :

#!/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 $?

A saída será 1 e 0 . Se colocarmos um erro em named.conf (por exemplo, semicolon faltando), os resultados serão 1 e 1 . O que isso significa? Isso significa que o código de retorno é 1 mesmo se não houver erros na configuração, mas a tecla -z é usada - qualquer saída é considerada um erro . Remover 2>&1 para deixar apenas stderr não tem nenhum efeito, portanto, a correção temporária mais fácil para esse problema é remover a opção -z colocando a seguinte diretiva em /etc/sysconfig/named

DISABLE_ZONE_CHECKING="yes"

P.S. Executando o script mencionado acima em BIND 9.10.1-RedHat-9.10.1-0.el6 results 0 e 0 em uma configuração nomeada válida. E uma conclusão: é um erro em named-checkconf valores de retorno, quando a saída normal resulta em 1 código de retorno. Bug com explicação, testes e configuração serão submetidos ao ISC.

NB! Esta solução é temporária até que a correção seja implementada. A verificação da zona desativada não encontrará erros nas zonas, arquivos de declaração ausentes, etc. Desative-a apenas se você usar a diretiva in-view .

    
por 23.03.2016 / 07:48
0

No CentOS 6 funciona sem problemas

# ./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

P.S.

# 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
    
por 21.03.2016 / 12:53