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.



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.


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

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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.