Falha ao iniciar Levantar interfaces de rede após atualizar para 16.04

19

Acabei de atualizar uma máquina virtual do servidor 14.04 para 16.04. Depois de reiniciar a VM, vejo o seguinte erro:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

Após o login, posso executar o comando mencionado e obter a seguinte saída (imagem que não consigo conectar):

A configuração em /etc/network/interfaces parece boa - apresentando a eth0 configurada manualmente (não usando o dhcp aqui)

O que me faz pensar é que ifconfig -a listas

  • ens160
  • lo

Onde eu esperaria

  • eth0
  • lo

Tentando acessar o dispositivo eth0 via

sudo ifup -v eth0 

saídas:

...
Cannot find device "eth0"
Failed to bring up eth0.

O próprio dispositivo de rede com fio virtual ainda está configurado na própria VM como era antes.

ip link também mostra lo e ens160 - onde ens160 tem o endereço MAC configurado no vmware para o dispositivo de rede virtual configurado individualmente.

UPDATE

Eu posso resolver o problema se eu alterar todas as referências de eth0 em /etc/network/interfaces para ens160.

MAS - isso parece errado para mim por vários motivos:

  1. Eu gostaria de entender esse problema
  2. Eu gostaria de ficar com eth0 em vez de ens160

Então, alguém pode explicar essa mudança, o que não aconteceu com várias outras 14.04 máquinas no mesmo servidor que eu também atualizei para 16.04.

    
por dufte 13.09.2016 / 13:54

4 respostas

13

Razão

O problema foi causado por Predictable-Network-Interface-Names do systemd / udev.

Solução possível

De acordo com esta fonte , você pode:

  • Você desabilita a atribuição de nomes fixos, para que os nomes imprevisíveis do kernel sejam usados novamente. Para isso, basta mascarar o arquivo de regras do udev para a política padrão: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • Você cria seu próprio esquema de nomenclatura manual, por exemplo, nomeando suas interfaces "internet0", "dmz0" ou "lan0". Para isso, crie seus próprios arquivos .link em / etc / systemd / network /, que escolham um nome explícito ou um esquema de nomenclatura melhor para uma, algumas ou todas as suas interfaces. Veja systemd.link (5) para mais informações.
  • Você passa o net.ifnames = 0 na linha de comando do kernel

Soluções aplicadas

Eu criei um novo arquivo 10-rename-network.rules em /etc/udev/rules.d/ e adicionei o seguinte conteúdo a ele:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

onde

  • eth0 = nome da interface de rede desejada, usada em /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = endereço MAC de hardware do dispositivo de rede

Eu recomendaria a reinicialização após concluir isso para garantir que a alteração seja persistente.

    
por dufte 07.10.2016 / 14:26
2

abaixo votar aceitaram Resolvido alterando o arquivo /etc/network/interfaces.d/setup de:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

para:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
    
por τασος ματσιγκας 21.04.2018 / 12:31
0

Você pode querer excluir / modificar o cache do udev para nomes de interface de rede persistentes / consistentes, localizados aqui:   /etc/udev/rules.d/70-persistent-net.rules

    
por Angel Genchev 25.10.2016 / 11:07
0

No meu caso, este problema estava relacionado a tentar trazer minha bridge br0 . Eu tinha esquecido de fazer isso:

sudo apt-get install bridge-utils

antes e, portanto, meu adaptador não pôde ser iniciado.

    
por gigo 06.08.2017 / 18:01