Falha ao iniciar o aumento das interfaces de rede após a atualização para 16.04

28

Acabei de atualizar uma máquina virtual 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 como não consigo conectar):

insira a descrição da imagem aqui

A configuração /etc/network/interfacesparece bem - apresentando o eth0 configurado manualmente (não usando dhcp aqui)

O que me faz pensar é que ifconfig -alistas

  • ens160
  • eis

Onde eu esperaria

  • eth0
  • eis

Tentando atualizar 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 linkmostra também loe ens160- onde ens160o endereço mac está configurado no vmware para o único dispositivo de rede virtual configurado.

ATUALIZAR

Eu sou capaz de resolver o problema se eu alterar todas as referências de eth0 /etc/network/interfacespara ens160.

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

  1. Eu gostaria de entender esse problema
  2. Gostaria de manter a eth0 em vez de ens160

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

dufte
fonte
1
Pode ser duplicado para: askubuntu.com/questions/704361/…
dufte 7/10/16
Uma descrição semelhante da correção está aqui: askubuntu.com/a/830163/543586
theINtoy

Respostas:

15

Razão

O problema foi causado por nomes de interface de rede previsíveis do systemd / udev.

Solução possível

De acordo com esta fonte, você pode:

  • Você desativa 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 nomeação 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 nomeação melhor para uma, algumas ou todas as suas interfaces. Veja systemd.link (5) para mais informações.
  • Você passa net.ifnames = 0 na linha de comando do kernel

Soluções aplicadas

Eu fiz criar um novo arquivo 10-rename-network.rulesno /etc/udev/rules.d/e acrescentou 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, usado em /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = endereço mac do hardware do dispositivo de rede

Eu recomendo reiniciar depois de concluir isso para garantir que a alteração seja persistente.

dufte
fonte
Eu descobri que eu tinha que correr update-initramfs -upara chegar em minhas alterações entrem em vigor
Aneel
No meu sistema Debian, o arquivo é '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah
6

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
τασος ματσιγκας
fonte
1

No meu caso, esse problema estava relacionado à tentativa de abrir minha ponte br0. Eu tinha esquecido de fazer isso:

sudo apt-get install bridge-utils

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

gigo
fonte
2
Isso é diferente do problema do OP. Não tenho certeza se esta resposta pertence a esta pergunta!
Zanna
0

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

Angel Genchev
fonte