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
.