/ etc / network / interfaces não sobrescreve /etc/resolv.conf [duplicado]

0

Sou um novato em Linux que está experimentando a configuração de um servidor de cache DNS em um Pine64 em Ubuntu 16.04 . Estou tentando configurar um endereço IP estático com um servidor DNS Bind9 local. Eu segui este excelente tutorial , e olhou para vários outros.

No entanto, estou com problemas para colocar as alterações em /etc/resolv.conf . /: Quando eu reinicio, as configurações em /etc/network/interfaces não são gravadas em /etc/resolv.conf .

Este é o meu /etc/network/interfaces :

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# Disable wlan1 by default (8723bs has two intefaces)
iface wlan1 inet manual

# Loopback interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.18
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.18
        dns-search green.intra

Este é o meu /etc/default/bind9 :

# run resolvconf?
RESOLVCONF=yes

# startup options for the server
OPTIONS="-4 -u bind"

A partir desses dois arquivos, fiquei com a impressão de que /etc/resolv.conf deveria se tornar isso (automaticamente, após a inicialização):

# 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.0.18
search green.intra

... mas em vez disso, isso se torna:

# 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 83.255.255.1
nameserver 83.255.255.2
search home

Se eu adicionar minhas configurações desejadas a /etc/resolv.conf , tudo funcionará como esperado, até que eu reinicie.

O que estou fazendo de errado?

Editar: tenho RTFM tentando descobrir isso:

.html"> link
link
link

Editar: ifup e ifdown falharam: Como sugerido na resposta à pergunta duplicada proposta, usar service networking restart pode não ser confiável nessa situação. Em vez disso, tentei o seguinte:

ubuntu@pinex:~$ sudo ifdown -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
ifdown: interface eth0 not configured

e:

ubuntu@pinex:~$ sudo ifdown -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
ifdown: interface eth0 not configured
ubuntu@pinex:~$ sudo ifup -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant

/sbin/dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/36:c9:e3:f1:b8:05
Sending on   LPF/eth0/36:c9:e3:f1:b8:05
Sending on   Socket/fallback
DHCPREQUEST of 192.168.0.18 on eth0 to 255.255.255.255 port 67 (xid=0x79b015c0)
DHCPACK of 192.168.0.18 from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.18 -- renewal in 5280 seconds.
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/bind9
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
run-parts: executing /etc/network/if-up.d/wpasupplicant
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip addr add 192.168.0.18/255.255.255.0 broadcast 192.168.0.255       dev eth0 label eth0
RTNETLINK answers: File exists
Failed to bring up eth0.

... o que me levou à resposta (veja abaixo).

    
por Reyhn 19.12.2016 / 02:28

1 resposta

0

Como afirmado na minha pergunta, a configuração é precisa de acordo com a documentação do Ubuntu. No entanto, ifdown e ifup não funcionaram. Depois de meio dia pesquisando, reuni pistas suficientes para encontrar uma solução.

TL; DR;

Comente (ou remova) as linhas de /etc/network/interfaces.d/eth0 que originalmente eram:

auto eth0
iface eth0 inet dhcp

A resposta longa:

Desculpe, não posso explicar por que tive esse problema. Eu sei muito pouco do Linux. /: O problema parece ser que resolvconf , que é acionado quando a inicialização (acho), não conseguiu atualizar corretamente /etc/resolv.conf porque encontrou a mesma interface duas vezes: uma vez em /etc/network/interfaces.d/eth0 e uma vez na minha configuração personalizada /etc/network/interfaces .

Reiniciar o serviço de rede me deu isto:

ubuntu@pinex:~$ sudo service networking restart
Job for networking.service failed because the control process exited with error code. See "systemctl status networking.service" and "journalctl -xe" for details.
ubuntu@pinex:~$ systemctl status networking.service
● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Mon 2016-12-19 13:59:48 CET; 10s ago
     Docs: man:interfaces(5)
  Process: 2433 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 2428 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environm
 Main PID: 2433 (code=exited, status=1/FAILURE)

Dec 19 13:59:47 pinex ifup[2433]: DHCPACK of 192.168.0.18 from 192.168.0.1
Dec 19 13:59:47 pinex ifup[2433]: RTNETLINK answers: File exists
Dec 19 13:59:47 pinex dhclient[2446]: bound to 192.168.0.18 -- renewal in 4214 seconds.
Dec 19 13:59:47 pinex ifup[2433]: bound to 192.168.0.18 -- renewal in 4214 seconds.
Dec 19 13:59:48 pinex ifup[2433]: RTNETLINK answers: File exists
Dec 19 13:59:48 pinex ifup[2433]: Failed to bring up eth0.
Dec 19 13:59:48 pinex systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Dec 19 13:59:48 pinex systemd[1]: Failed to start Raise network interfaces.
Dec 19 13:59:48 pinex systemd[1]: networking.service: Unit entered failed state.
Dec 19 13:59:48 pinex systemd[1]: networking.service: Failed with result 'exit-code'.

Eu lembro de ter visto algo sobre o /etc/network/interfaces.d/eth0 ao pesquisar no Google. Ao comentar essas linhas, reiniciar o serviço de rede funcionou bem. No entanto, o /etc/resolv.conf ainda era o mesmo de antes ...

Eu tive que fazer o seguinte:

ubuntu@pinex:~$ sudo resolvconf -u
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
ubuntu@pinex:~$ sudo rm /etc/resolv.conf
ubuntu@pinex:~$ sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Isso atualizou o /etc/resolv.conf para meus valores esperados! Após a reinicialização do dispositivo, o arquivo foi automaticamente preenchido corretamente!

Espero que isso seja de ajuda para outra pessoa também! E, se alguém puder explicar o problema, isso seria apreciado. (:

    
por Reyhn 19.12.2016 / 14:39