Estou executando o servidor DNS e DHCP no servidor debian 8 na rede local.
O problema é que os clientes obtêm servidores de nomes pelo servidor DHCP na ordem errada/não desejada.
Configuração do servidor DHCP:
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.1, 8.8.8.8, 8.8.4.4;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
}
Onde 192.168.10.1 é o servidor DNS e DHCP.
Nameservers listados para interface local no cliente:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
IP4.DNS[3]: 192.168.10.1
O cliente é Ubuntu 17.10 com isc-dhcp-client
EDIT: Conteúdo de /etc/dhcp/dhclient.conf
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
Como obter os servidores de nomes na ordem correta do servidor DHCP?
A ordem desejada é ter o servidor de nomes local usado primeiro.
Logo:
IP4.DNS[1]: 192.168.10.1
IP4.DNS[2]: 8.8.8.8
IP4.DNS[3]: 8.8.4.4
Eu não ficaria surpreso se alguma otimização de daemon DHCP do cliente entregasse servidores DNS com endereços IP públicos primeiro.
No entanto, dada a sua insistência no pedido:
Não recomendo confiar na ordem de resposta do DNS para fornecer diferentes visualizações ou respostas de DNS.
Deixar esse tipo de decisão para seus clientes em sua infra-estrutura local pode levar a alguns comportamentos imprevisíveis no mínimo quando você precisar desses problemas, levando em consideração o cache de DNS negativo. Isso também levará a um maior tráfego de DNS. Você também acaba carregando os servidores DNS na hierarquia com perguntas sobre seus domínios internos.
Eu recomendaria projetar uma infra-estrutura DNS bem pensada, seja com Internet e servidores dedicados internos, ou usando visualizações, e com pelo menos dois servidores DNS internos.
TLDR Entregar via DHCP vários servidores DNS com visões diferentes do "mundo" não traz mais estabilidade ao serviço, muito pelo contrário.
Em vez de tentar controlar a ordem dos servidores DNS no cliente, seria mais fácil anunciar apenas o(s) servidor(es) DNS interno(s). Isso é possível se os servidores internos estiverem configurados para encaminhar solicitações que não podem atender a um determinado conjunto de servidores DNS públicos.
Por exemplo, minha configuração BIND9 (no IP
192.168.2.1
) contémAlternativamente (obrigado @RuiFRibeiro), você pode usar um bloco de zona para se comunicar com os servidores de nomes raiz:
(onde sua distribuição pode usar
db.root
em vez deroot.hint
).Em qualquer configuração, se o servidor não puder determinar um IP para um nome solicitado, ele tentará entrar em contato com outro servidor, sejam os servidores definidos em
forwarders
ou os servidores de nomes raiz, para encontrar o IP apropriado. Em outras palavras, o servidor local sempre é testado primeiro e, se falhar, um servidor diferente é usado como substituto.A
dhcpd.conf
opção é então simplesmenteSe você configurar vários servidores DNS locais redundantes, cada um pode ser especificado na
dhcpd
configuração sem se preocupar com sua ordem, pois todos agirão da mesma forma.