Edgerouter DNSmasq envia atualizações para o BIND

3

TL; DR: Como configuro o Ubiquiti EdgeRouter, executando o DNSmasq ou DHCPd e o NSupdate, para enviar suas concessões DHCP para um servidor BIND central?

Eu tenho um sistema composto de alguns Ubiquiti EdgeRouter X's , todos atuando como servidores DHCP e DNS para uma sub-rede local. Roteamento entre sub-redes entre ERXs é tratado por um roteador central. O que eu gostaria de fazer é configurar os gateways ERX para atualizar um servidor DNS mestre, executando o BIND, sempre que eles atualizarem suas concessões DHCP.

Referenciando o diagrama abaixo: Com cada ERX servindo DHCP e DNS para sua sub-rede local, os clientes só podem resolver nomes DNS de outros clientes por trás de seu ERX local. No entanto, se cada ERX enviasse seus registros para dns-master quando ocorresse uma atualização de concessão do DHCP e cada cliente usasse dns-master como seu servidor DNS, qualquer cliente poderia resolver o nome de qualquer outro cliente. É isso que estou tentando alcançar.

        router-core 
       /      |     \
      /  dns-master  \
     /                \
 erx-1                erx-2
   |                    |
   |-- client-1a        |-- client-2a
   |-- client-1b        |-- client-2b

O que eu fiz até agora:

  • O BIND é configurado para aceitar atualizações via nsupdate e confirmei que funciona na minha estação de trabalho local
  • Eu instalei dnsutils no ERX usando o Apt depois de ativando o repo Debian
  • Eu explorei a opção dhcp-script do arquivo de configuração Dnsmasq (melhor descrição disso opção na página man ), mas não consigo pegar meu script para executar
    • O Dnsmasq no EdgeRouter parece usar tanto /etc/dnsmasq.conf quanto /etc/dnsmasq.d/dnsmasq-dhcp-config.conf , mas adicionar a opção dhcp-script ao primeiro não teve efeito e adicioná-lo ao segundo gerou um erro de sintaxe de configuração
    • Eu tentei modificar os arquivos de configuração do Dnsmasq diretamente e configurar as opções na configuração do ERX em set service dhcp-server global-parameters e nem pareciam funcionar (mas também não tenho certeza se fiz isso corretamente)

[EDIT]: O Edgerouter também suporta o uso do Dhcpd como um servidor DHCP, então eu aceito uma resposta descrevendo como configurar o DHCPd no ER para fazer isso também; Eu não sou casado com o DNSmasq

    
por enpaul 31.10.2018 / 23:51

1 resposta

1

Com uma sugestão do @Tom, descobri uma maneira de fazer isso sem usar um servidor BIND.

A solução é configurar cada ERX como o servidor DNS autoritativo para sua sub-rede local e criar delegações de servidor no roteador central para cada subdomínio e, em seguida, apontar todos os clientes no roteador central. As diretivas de configuração específicas do Edgerouter estão listadas abaixo, substituindo sub1.local pelo subdomínio DNS apropriado e 192.168.100.5 pelo endereço IP do ERX:

No core-router (LAN IP 192.168.100.1 ):

set service dns forwarding listen-on eth1
set service dns forwarding name-server 8.8.8.8
set service dns forwarding name-server 8.8.4.4
set service dns forwarding options "server=/.sub1.local/192.168.100.5"

Em cada ERX (exemplo, IP da WAN 192.168.100.5 ):

set service dns forwarding listen-on eth0
set service dhcp-server shared-network-name [server] subnet [subnet] domain-name sub1.local
set service dhcp-server shared-network-name [server] subnet [subnet] dns-server 192.168.100.1

Quando um cliente envia uma consulta DNS para o router-core , uma de três coisas acontece:

  • Se o router-core puder resolvê-lo, então ele
  • Se a solicitação corresponder a um subdomínio, a solicitação será encaminhada para o ERX especificado para o subdomínio
  • Se a solicitação não corresponder, ela será passada para os servidores DNS upstream
por 12.11.2018 / 20:52