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