BIND v9.9.7, Views e inclui

2

Eu comecei recentemente a atualização para ligar 9.9.7 e encontrei um obstáculo desafortunado com bind.

Eu configurei views no meu ambiente para permitir que eu diferencie 4 das minhas zonas com endereços IP diferentes com base em onde o host está executando uma consulta. As outras 36 zonas que eu sirvo não diferenciam os endereços IP, mas devem sempre servir o mesmo endereço para cada host. Para fazer isso, criei uma lista separada de hosts que, em seguida, usei uma diretiva include no named.conf para incluir essas entradas nas duas zonas. Aqui está um pequeno exemplo da configuração que tenho executado em um dos meus servidores escravos:

Primeiro, um trecho do meu named.conf

view "sitea" {
   match-clients {192.168.1.0/24;};
   zone "mydomain.com." IN {
      type slave;
      masters { 192.168.1.100;};
      file "sitea_mydomain.com.db";
   };
   include "/etc/common_zones.conf";
};

view "siteb" {
   match-clients {any; };
   zone "mydomain.com." IN {
      type slave;
      masters {192.168.1.100; };
      file "mydomain.com.db";
   };
   include "/etc/common_zones.conf";
};

E um snippet do arquivo common_zones.conf :

zone "1.168.192.in-addr.arpa." IN {
   type slave;
   masters {192.168.1.100;};
   file "192.168.1.db";
};

No tempo anterior, o bind era perfeitamente legal com o uso do mesmo arquivo duas vezes na construção da visão, mas agora não é. Ter um arquivo de zona listado duas vezes em duas visualizações diferentes causa um erro que diz especificamente que a ligação não permitirá essa configuração. Neste caso, ele me diz que não será iniciado porque usei um arquivo duplicado 192.168.1.db . Especificamente, a mensagem de erro é:

writeable file '192.168.1.db': already in use: /etc/common_zones.conf

O problema que tenho com isso é no meu mundo real, eu tenho mais de 40 zonas (zonas inversas) que, apesar da visão de onde elas vêm, elas sempre serão a mesma resposta, não importa o quê. A possibilidade de usar uma inclusão geral, conforme mostrado acima, foi uma ótima maneira de diferenciar alguns hosts do domínio " mydomain.com ". Agora, sou confrontado com a possibilidade de ter que entrar em 40 zonas em cada exibição, cada uma apontando para um arquivo diferente, apesar do fato de que os dados são idênticos.

Alguém tem uma solução inteligente para isso?

    
por Eirik Toft 02.09.2015 / 20:03

2 respostas

3

Se a atualização para o Bind 9.10 for uma possibilidade, a instrução "em vista" resolveria isso perfeitamente ( link ).

No entanto, se isso não for possível, notei algo bastante interessante que eu não conhecia enquanto pesquisava "na vista". Para as zonas escravas, o parâmetro "file" (que acontece imediatamente antes de "in-view" no link acima) é opcional . Isso pode ser apenas a solução que você está procurando. Estou assumindo que a zona existirá apenas na RAM e será retransferida toda vez que o escravo reiniciar ou recarregar a zona. Vale a pena arriscar. (Edit: Você ainda precisaria de 2 versões do seu arquivo comum, uma para mestres com nomes de arquivos e outra sem - então esta não é uma solução perfeita)

    
por 03.09.2015 / 01:43
1

Talvez com uma configuração named.conf de:

view "sitea" {
  include "/etc/common_zones.conf";
  match-clients {localhost; ...; };
};
view "siteb" {
  include "/etc/UNcommon_zones.conf";
  match-clients {any;};
};

E, em seguida, common_zones.conf é o que é atualmente, enquanto% em UNcommon_zones.conf você coloca em encaminhadores:

zone "..." IN {
  type forward;
  forward only;
  forwarders { 127.0.0.1; };
};

que pelo menos não elimina erros em testes bastante limitados com um teste virt puxando uma zona mestre e outro teste virt que emite consultas ao dito escravo de teste NS.

    
por 03.09.2015 / 01:42