Inicialização lenta do BIND9 com grande zona de política de resposta no Raspberry Pi

1

Eu configurei uma cópia local do BIND9 como um encaminhador de DNS em cache na minha rede local. Eu também o configurei com uma grande response-policy zone como um adblock de toda a rede. Com a introdução do RPZ, o tempo de inicialização passou de sub-segundo para minutos.

O RPZ tem cerca de 200 mil entradas e está em torno de 7,5 MiB no disco. Durante a inicialização, named coloca o processador em 100%, mas depois de terminar, o uso do procedimento de inicialização cai para quase zero. Eu suspeito que isso é devido a named sendo executado em um antigo Raspberry Pi (modelo B).

Existe um formato de armazenamento mais eficiente que eu poderia fornecer para named para reduzir o tempo de inicialização? A zona já analisada pode ser descarregada em um formato nativo após a primeira análise?

    
por Huckle 22.01.2018 / 01:29

1 resposta

0

Encontrou a resposta depois de cavar um pouco na documentação do Bind. O formato do arquivo de zona pode ser controlado pela opção masterfile-format ( no bloco da zona). A distribuição de ligação é fornecida com uma ferramenta chamada named-comilezone que será convertida entre os formatos de arquivo text (lento) e map (rápido).

# To convert a text zone file to a map file
$ sudo named-compilezone -f text -F map \
    -o /var/named/rpz.example.com.zone.map  \
    rpz.example.com \
    /var/named/rpz.y2k38.date.zone  

/var/named/rpz.example.com.zone:3: using RFC1035 TTL semantics
zone rpz.example.com/IN: loaded serial 2
dump zone to /var/named/rpz.example.com.zone.map...done
OK


# To convert it back to text in order to view the contents
# just run the command in reverse
$ sudo named-compilezone -f map -F text \
    -o /var/named/rpz.example.com.zone  \
    rpz.example.com \
    /var/named/rpz.y2k38.date.zone.map

Certifique-se de corrigir as permissões no arquivo de saída antes de iniciar a vinculação novamente

sudo chown named /var/named/rpz.example.com.zone{,.map} 
sudo chmod 640 /var/named/rpz.example.com.zone{,.map} 

Observe também que o formato do mapa ocupa mais espaço em disco do que o formato de texto.

-rw-r-----  1 named named  7638511 Jan 21 07:50 rpz.example.com.zone
-rw-r-----  1 named named 41967072 Jan 22 06:54 rpz.example.com.zone.map

NO ENTANTO

A partir do Bind 9.11.2.P1, por qualquer motivo, o formato map não é suportado para response-policy zones, em particular. Parece que tem sido assim desde que o formato foi adicionado (9.10). Eu ainda estou cavando o código e bugtracker para ver se esta é uma situação conhecida ou não. No Bind 9.11.2.P1, a zona é "carregada com sucesso" sem erros declarados, mas nenhum comportamento response-policy ocorre (como se o arquivo estivesse vazio).

    
por 22.01.2018 / 08:51