Bind DNS - Usando visões External zones fail transfer to slave

3

Um breve resumo do meu problema é que iniciamos uma atualização do servidor DNS aqui em minhas instalações.

Atualmente, temos 2 servidores de DNS internos e 2 servidores de DNS externos. Estamos atualizando para novos equipamentos e mesclando nossos servidores para que tenhamos 1 mestre e 1 escravo que cuidarão do DNS interno e externo. Ambos os servidores têm duas placas de rede que foram IP com um endereço na rede externa pública e uma na rede interna. No meu mestre eu configurei uma visão interna que só é acessível a partir de nossos intervalos de rede interna e uma visão externa que é permitida a ser consultada por qualquer pessoa. Eu tenho tudo configurado e resolução de DNS funciona bem. O problema que estou tendo é que quando eu configurei o escravo e o configurei, o escravo só herdará atualizações para as zonas listadas na visão Interna. Todas as zonas de visualização externas apresentam um erro de

;<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> IN AXFR 43.96.32.in-addr.arpa @129.yy.yy.10 
;; global options: +cmd 
; Transfer failed.

Eu ando pesquisando como um louco e não consigo encontrar uma solução, espero que alguém aqui tenha uma idéia do porquê isso está ocorrendo.

Abaixo, darei as amostras dos meus arquivos master / slave named.conf. Meu sistema está executando o RHEL 6.6 e o Bind DNS 9.8.2.

Master - Named.conf

acl internal_hosts { 10.101.0.0/16; 172.21.0.0/16;
10.2.0.0/16; 169.254.0.0/16;
172.23.0.0/16; 32.0.0.0/8;
12.109.164.0/24; 12.109.165.0/24;
63.79.18.0/24; 63.88.0.0/16;
129.42.0.0/16; 4.30.26.0/24;
4.28.188.0/24; 172.21.131.248/29;};
acl internal_slave { 10.xx.xx.2; };
acl external_slave { 129.yy.yy.11; };
acl internal_master { 10.xx.xx.1; };
acl external_master { 129.yy.yy.10; };

options {
    directory "/etc";
    pid-file "/var/run/named/named.pid";
    dnssec-enable no;
    query-source port 53;
    forward only;
    notify yes;
    allow-query { any; };
    listen-on {
        10.xx.xx.1;
        127.0.0.1;
        129.yy.yy.10;
    };
    forwarders {
        129.34.20.80;
        198.4.83.35;
        4.2.2.2;
        8.8.8.8;
    };
    allow-transfer {127.0.0.1; };
};


server 10.xx.xx.2 {
    transfer-format many-answers;
    transfers 10000;
};
server 129.yy.yy.11 {
    transfer-format many-answers;
    transfers 10000;
};

view "Internal" {

    match-clients { internal_hosts; !external_slave; internal_slave; };
    also-notify { 10.xx.xx.2; };
    allow-transfer { internal_slave; };
    recursion yes;
    allow-recursion { internal_hosts; };
    transfer-source 10.xx.xx.1;


    zone "64.2.10.in-addr.arpa" {
        type master;
        also-notify { 10.xx.xx.2; };
        notify yes;
        allow-transfer { internal_slave; };
        file "/var/named/10.2.64.rev";
    };


view "External" {

    match-clients { !internal_slave; external_slave; any; };
    recursion no;
    allow-transfer { external_slave; };
    also-notify { 129.yy.yy.11; };
    transfer-source 129.yy.yy.10;

    zone "50.146.204.in-addr.arpa" {
        type master;
        notify yes;
        also-notify {129.yy.yy.11;};
        allow-transfer {external_slave;};
        file "/var/named/204.146.50.rev";
    };

Escravo - Named.conf

acl internal_hosts { 10.101.0.0/16; 172.21.0.0/16;
    10.2.0.0/16; 169.254.0.0/16;
    172.23.0.0/16; 32.0.0.0/8;
    12.109.164.0/24; 12.109.165.0/24;
    63.79.18.0/24; 63.88.0.0/16;
    129.42.0.0/16; 4.30.26.0/24;
    4.28.188.0/24; 172.21.131.248/29;
};
acl internal_slave { 10.xx.xx.2; };
acl external_slave { 129.yy.yy.11; };
acl internal_master { 10.xx.xx.1; };
acl external_master { 129.yy.yy.10; };

options {
    directory "/etc";
    pid-file "/var/run/named/named.pid";
    dnssec-enable no;
    query-source port 53;
    forward only;
    allow-query { any; };
    listen-on port 53 {
        127.0.0.1;
        10.xx.xx.2;
        129.yy.yy.11;
    };
    forwarders {
        129.34.20.80;
        198.4.83.35;
        4.2.2.2;
        8.8.8.8;
    };
    allow-transfer {127.0.0.1; };
};


server 10.xx.xx.1 {
    transfer-format many-answers;
    transfers 10000;
};

server 129.yy.yy.10 {
    transfer-format many-answers;
    transfers 10000;
};

view "Internal" {
    match-clients { internal_hosts; !external_master; internal_master; };
    recursion yes;
    allow-recursion {internal_hosts;};
    allow-transfer { internal_master; };
    transfer-source 10.xx.xx.2;
    allow-notify {10.xx.xx.1;};

    zone "64.2.10.in-addr.arpa" {
        type slave;
        masters {10.xx.xx.1;};
        allow-transfer {internal_master;};
        allow-update {internal_master;};
        file "/var/named/slaves/10.2.64.Internal.rev";
    };


view "External" {
    allow-transfer {external_master;};
    allow-notify {129.yy.yy.10;};
    transfer-source 129.yy.yy.11;
    match-clients {!internal_master; external_master; internal_hosts; any;};
    recursion no;

    zone "50.146.204.in-addr.arpa" {
        type slave;
        masters {129.yy.yy.10;};
        allow-transfer {external_master;};
        allow-update {external_master;};
        file "/var/named/slaves/204.146.50.External.rev";
    };

Aqui está uma saída de minhas / var / log / messages solicitadas sobre o DIG para o meu mestre. O DIG para brsbld.ihost.com é aquele na visualização Externa que falhou, enquanto o DIG para bldbcrs.net está na visualização Interna e passa bem.

Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR started
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR started
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR ended
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR ended
Apr 17 09:32:56 bbridns01 named[1717]: client 129.42.206.11#41783: view Internal: bad zone transfer request: 'brsbld.ihost.com/IN': non-authoritative zone (NOTAUTH)
Apr 17 09:32:56 bbridns01 named[1717]: client 129.42.206.11#41783: view Internal: bad zone transfer request: 'brsbld.ihost.com/IN': non-authoritative zone (NOTAUTH)
    
por Karl Keim 17.04.2015 / 15:21

2 respostas

2

Ele só queria atualizar isso para que você saiba o que eu descobri para a solução. Sob a minha visão interna, o argumento do match-client estava me atrapalhando.

match-clients { internal_hosts; !external_slave; internal_slave; };

A acl internal_hosts inclui o intervalo 129.42.0.0/16. Isso foi listado antes do! External_slave; argumento por isso foi pegando primeiro porque o servidor escravo é 129.42.206.11 e colocando-o na visão interna. Eu rearranjei-o de modo que ele excluísse primeiro o slave externo, então ele estava sendo corretamente captado pela visão externa.

match-clients { !external_slave; internal_hosts; internal_slave; };
    
por 18.04.2015 / 13:40
0

Meu palpite nessa linha nas suas opções de configuração mestre está impedindo os outros de obter as zonas:

allow-transfer {127.0.0.1; };

Eu tentaria remover essa linha ou atualizá-la para incluir seu external_master.

Talvez seja porque você tem várias visualizações na sua configuração, a visualização padrão está obtendo essa diretiva de permissão de transferência limitada das opções. link

    
por 18.04.2015 / 04:51