Ordem dos servidores DNS no cliente fornecida pelo DHCP

0

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 é o Ubuntu 17.10 com o isc-dhcp-client

EDITAR: Conteúdo do /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 servidores de nomes na ordem correta do servidor DHCP?
A ordem desejada é ter o servidor de nomes local usado primeiro.
Ergo:

IP4.DNS[1]:                             192.168.10.1   
IP4.DNS[2]:                             8.8.8.8  
IP4.DNS[3]:                             8.8.4.4
    
por Petr 15.01.2018 / 15:27

2 respostas

3

Em vez de tentar controlar a ordem dos servidores DNS no cliente, seria mais limpo 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 do BIND9 (em% IP192.168.2.1) contém

options {
    ...
    forwarders {
        208.67.220.220;
        208.67.222.222;
        8.8.8.8;
        8.8.4.4;
    }
    ...
}

Como alternativa (obrigado @RuiFRibeiro), você pode usar um bloco de zona para se comunicar com os servidores de nomes raiz:

zone "." IN {
    type hint;
    file "root.hint"
}

(onde sua distribuição pode usar db.root em vez de root.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, seja com os servidores definidos em forwarders ou com os servidores de nomes raiz, para localizar o IP apropriado. Em outras palavras, o servidor local é sempre tentado primeiro e, se falhar, um servidor diferente é usado como substituto.

A opção dhcpd.conf é simplesmente

option domain-name-servers 192.168.2.1;

Se você configurar vários servidores DNS locais redundantes, cada um poderá ser especificado na configuração dhcpd sem se preocupar com o pedido deles, pois todos eles agirão da mesma forma.

    
por 15.01.2018 / 19:10
3

Eu não ficaria surpreso com alguma otimização de servidor DHCP cliente que forneça servidores DNS com endereços IP públicos primeiro.

No entanto, dada a sua insistência na ordem:

Não recomendo usar a ordem de resposta do DNS para fornecer exibições ou respostas de DNS diferentes.

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, inclusive levando em conta o armazenamento em cache negativo do DNS. Isso também levará a um maior tráfego de DNS. Você também acaba carregando servidores DNS na hierarquia com perguntas sobre seus domínios internos.

Eu recomendaria a criação de uma infra-estrutura de DNS bem concebida, seja com servidores dedicados internos e da Internet, ou usando exibições e com pelo menos dois servidores DNS internos.

TLDR Entregar via DHCP Vários servidores DNS com diferentes visões do "mundo" não traz mais estabilidade ao serviço, muito pelo contrário.

    
por 15.01.2018 / 15:37