O Debian nunca usa o endereço do gateway do roteador no resolv.conf

O Debian nunca usa o endereço do gateway do roteador no resolv.conf

O Debian nunca usa o endereço do gateway do roteador no resolv.conf

Como eu poderia configurar o Debian para (nunca usar o roteador como resolvedor de nomes de domínio) não exibir o endereço do gateway do roteador (servidor de nomes 192.168.1.1) em /etc/resolv.conf quando eu reinicio o computador ou executo /sbin/dhclient?

Eu uso apenas uma linha em /etc/dhcp/dhclient.conf

prepend domain-name-servers x.x.x.x,y.y.y.y,z.z.z.z;

Este é meu arquivo /etc/network/interfaces:

 auto eth0 
 iface eth0 inet static

 address 192.168.1.170
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 getaway 192.168.1.1
 up route add -net default gw 192.168.1.1 netmask 0.0.0.0 eth0

 dns-nameservers x.x.x.x y.y.y.y z.z.z.z

Se eu executar /sbin/dhclient /etc/init.d/networking restart

meu /etc/resolv.conf contém:

nameserver x.x.x.x
nameserver y.y.y.y
nameserver z.z.z.z
nameserver 192.168.1.1

Responder1

Primeiro de tudo, limpe sua configuração. Sua eth0interface deveria estar configurada com um endereço IP estático ou com DHCP? Se estático, por que você está executando dhclient? Se for DHCP, por que /etc/network/interfaceslista parâmetros IP estáticos e iface eth0 inet staticem vez de iface eth0 inet dhcp? Além disso, não há motivo para você precisar adicionar uma rota padrão por meio de seu up routecomando, pois você já especificou a rota padrão como gatewayparâmetro.

Agora lembre-se que conforme o nome, prepend domain-name-serversadiciona servidores DNS à lista fornecida pelo servidor DHCP. Isso não os substitui.

Eu recomendo que, em vez de pedir dhclientpara personalizar os servidores de nomes que deseja usar, use o resolvconfframework. resolvconfcoordena todas as diferentes fontes possíveis de informações de servidores de nomes DNS (incluindo clientes DHCP separados executados em uma ou mais interfaces de rede, servidores DNS locais que você deseja usar como resolvedores e configuração estática) e centraliza a construção de um único /etc/resolv.confarquivo coerente. É muito melhor do que deixar várias coisas diferentes acontecerem /etc/resolv.confe fazer com que elas se atropelem tentando fazer isso.

Instale o resolvconfpacote se ainda não estiver instalado. Isso desativará automaticamente dhclinenta interferência direta do /etc/resolv.confarquivo.

Agora, seu requisito é que você não queira usar os servidores de nomes fornecidos pelo servidor DHCP, então comente a linha que eth*diz /etc/resolvconf/interface-order. Certifique-se de comentar também a última linha do arquivo que diz *, caso contrário eth0ainda será considerado.

Em seguida, você deseja usar um conjunto de servidores de nomes provisionados estaticamente. Como eles são globais do sistema (não relacionados ao estado de qualquer interface), você pode adicioná-los como servidores de nomes na interface lo em /etc/network/interfaces:

iface lo inet loopback
    dns-nameservers x.x.x.x y.y.y.y z.z.z.z

E então ifdown lo; ifup lopara ativar isso.

Responder2

Um outro ponto: getacaminho 192.168.1.1 deve ser gcomeucaminho 192.168.1.1 (provavelmente é por isso que você teve que adicionar a rota padrão para que algo funcionasse?)

Responder3

Se você puder evitá-lo, não use seu gateway como resolvedor.

Eles são notoriamente problemáticos ao fazer proxy de DNS - consulte RFC 5625.

Você tem uma caixa Linux perfeitamente funcional - basta colocar uma cópia do BIND ou, melhor ainda, "Unbound" nela.

ObDisclaimer - eu escrevi esse RFC.

informação relacionada