Ubuntu: Como configurar servidores DNS em / etc / network / interfaces corretamente para o resolvconf?

9

Todos os exemplos que vi de configurações ( /etc/network/interfaces ) mostraram que você configurou uma interface e, em seguida, abaixo dela, as linhas dns-* , como:

auto eth0
iface eth0 inet static
        ...
        dns-nameservers 127.0.0.2
        dns-search example.com my.example.com

Agora estou ciente de que o protocolo DNS é independente do mecanismo de transporte. Portanto, não deve ser errado adicionar um endereço IPv6 na linha dns-nameservers .

No entanto, como também estou configurando a interface para o IPv6, fazia sentido adicionar a linha dns-nameservers lá:

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... ou fez isso? Porque quando resolvconf cria /etc/resolv.conf simplesmente ignora todos os servidores DNS IPv6. Também parece ignorar dns-search e dns-domain . A única linha que parece honrar é a linha dns-nameservers da configuração IPv4 para eth0 .

Qual é o método correto de configurar servidores DNS?

Outras evidências circunstanciais sobre por que deve fazer parte de cada estrofe iface respectiva. Citação de man 8 resolvconf :

The ifup(8) program can be used to configure network interfaces according to settings in /etc/network/interfaces(5). To make ifup push nameserver information to resolvconf when it configures an interface, add dns- lines to the relevant iface stanza in /etc/network/interfaces. To add nameserver addresses add a line beginning with dns-nameservers.

    
por 0xC0000022L 03.04.2013 / 21:39

5 respostas

8

É correto colocar opções de dns- * na sub-rotina iface eth0 inet static ou na sub-rotina iface eth0 inet6 static . As opções tornam-se ativas quando a definição da interface lógica à qual elas pertencem se torna ativa.

Eu apenas testei isso em minha própria máquina Ubuntu 15.04, que eu normalmente configuro com DHCP. Desativei o NetworkManager e editei / etc / network / interfaces para que fique assim:

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

Eu então fiz

$ sudo ifup eth0

Os resultados:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo

Observe que as opções address, dns-nameservers e dns-search de ambas as sub-rotinas agora estão ativas.

[Atualizado em 30 de maio de 2015]

    
por 27.06.2013 / 10:18
1

No meu RPi rodando o Ubuntu 16.04.2 LTS, minhas descobertas foram as seguintes:

Nota: Eu desinstalei o NetworkManager e deixei o resolvconf para fazer suas coisas. (Este é um servidor fixo, então as coisas não mudam muito na rede.)

IF Eu tinha as linhas dns-search e dns-nameserver em apenas UMA interface (a principal, com fio) mas não a outra (wlan0) e depois na reinicialização, cerca de 95% do tempo meu arquivo /etc/resolv.conf estaria vazio.

por exemplo. Quando meu arquivo de interfaces ficou assim:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

ENTÃO após a reinicialização, meu resolv.conf ficaria assim:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

No entanto, em uma ou duas reinicializações, percebi que ele tinha o que eu queria, por exemplo

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Solução Quando eu dei AMBAS interfaces (wired e wlan0) as linhas dns-search e dns-nameserver, tudo funcionou bem a cada reinicialização (até agora)

i.e. o seguinte arquivo de interfaces funciona para mim:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

e me dá o seguinte resolv.conf correto após cada reinicialização (até agora)

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Eu assumo que esta configuração duplicada é normal, se algo redundante.

Conclusão: Se uma interface (diferente de lo0) não possui informações de dns-search e dns-nameserver, então o resolvconf não coloca nada em seu arquivo resolv.conf. (É como se o ifup fizesse a interface wlan0 em segundo lugar e o ifup limpasse o resolv.conf ou algo semelhante.)

Não tenho certeza se isso é um bug ou não, parece errado para mim.

    
por 24.05.2017 / 17:24
-1

Editar as interfaces de rede para adicionar o uso de seu DNS personalizado é uma maneira ... mas para permanentemente modificar o arquivo system.wide resolv.conf com seu dnsnameserver personalizado você precisa instalar o pacote resolvconf (se já não estiver instalado por padrão) e preencha seu arquivo de configuração base com seus valores de servidores de nomes DNS personalizados. Espero que este pequeno guia o ajude a obter mais configurações sobre as entradas DNS do resolv.conf link

    
por 02.02.2015 / 10:56
-1

Você deseja usar servidores DNS IPv6 em /etc/network/interfaces...coloquem suas entradas de nomes de DNS IPv6 na interface de rede específica como esta:

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

Para adição permanente de nomes de DNS IPv6 ao resolv.conf, use o mesmo link que eu adicionei abaixo e edite o arquivo base do resolvconf preenchendo com seus próprios nomes de DNS IPv6:

nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888 

Para configurar o / etc / network / interfaces com o IPv6, use este guia link e substitua o IPv4 pelo IPv6 da seguinte forma: auto eth0

iface eth0 inet6 static
        address 2800:210:0:1::3
        netmask 64
        gateway 2800:210:0:1::1
        dns-nameservers 2001:4860:4860::8844 
    
por 02.02.2015 / 11:51
-1

Por que você não implementa esses servidores de nomes DNS IPv6 diretamente no arquivo do sistema /etc/resolv.conf editando o arquivo base do resolvconf como sugerido na minha resposta anterior com o link e ainda continua usando o arquivo de interfaces de rede? Você pode adicionar um conjunto de servidores de nomes DNS IPv6 em /etc/resolv.conf e, se quiser usar outros servidores de nomes IPv6 para uma NIC específica, use-os apenas em / etc / network / interfaces.

    
por 11.02.2015 / 10:54