Interface Ethernet do Ubuntu 16.04. Nenhum endereço IP após o cabo ser reconectado

2

Eu tenho uma imagem do sistema Ubuntu (Ubuntu 16.04.3 LTS) exibindo esse comportamento em hardware diferente.

A interface enp2s0 aparece durante a inicialização, mas se o cabo de rede for desconectado e reconectado, a interface não conseguirá obter um endereço IP. Ambos systemctl restart networking e dhclient enp2s0 trazem manualmente de volta à vida.

Isso parece estar relacionado (de alguma forma) ao arquivo de interfaces. Se /etc/network/interfaces estiver em branco ou comentado, a interface voltará se o cabo for reconectado.

Assim que algo é colocado em /etc/network/interfaces (static ou dhcp), então enp2s0 exibirá esse comportamento.

O sistema que estou testando agora tem duas interfaces de rede. enp2s0 e enp1s0 . Isso não acontece com enp1s0 . Em outro sistema aqui (criado a partir da mesma imagem), existe apenas uma interface enp2s0 . Isso sempre acontece lá.

Eu criei um script de teste e coloquei em /etc/network/if-up.d/ para enviar as informações de data e interface para um arquivo de log. Na inicialização, vejo isto:

lo Mon Jan 22 15:31:01 AEDT 2018
enp2s0 Mon Jan 22 15:31:15 AEDT 2018
--all Mon Jan 22 15:31:16 AEDT 2018

Se o cabo for reconectado em enp2s0 , ele nunca será executado. Se eu reconectar o cabo em enp1s0 , ele funciona e eu o vejo no log.

Eu tentei todos os tipos de combinações diferentes em /etc/network/interfaces . Eu mesmo recriou o arquivo completamente, verifiquei as permissões de uma máquina de baunilha etc. Assim que eu coloco as informações lá, as coisas ficam em forma de pêra.

Meu arquivo de interfaces atual:

auto lo
iface lo inet loopback

auto enp2s0
iface enp2s0 inet dhcp

iface enp1s0 inet manual

Também faz o mesmo com uma configuração estática.

Acho que uma grande pista aqui é que meu script if-up.d/test não está em execução quando o cabo é reconectado, mas apenas para essa interface.

Alguém pode me dizer o que determina se esse script é executado ou não para uma interface específica?

Obrigado antecipadamente!

    
por thatguy 22.01.2018 / 06:00

1 resposta

1

Você tem NetworkManager ou ifplugd instalado? (O nmcli device show produz nada além de uma mensagem de erro? O /etc/default/ifplugd existe e, se existir, o que ele diz?)

Quais drivers são usados para suas NICs? (Execute sudo ethtool -i enp2s0; sudo ethtool -i enp1s0 e poste a saída. Se ocorrer um erro, execute sudo apt-get install ethtool e tente novamente.)

Se você não tiver entradas para uma interface em /etc/network/interfaces , então essa interface geralmente está no controle de NetworkManager , que pode detectar o estado do link e fará o DHCP por padrão.

Mas se você configurar essa interface em /etc/network/interfaces , então NetworkManager não a tocará: então essa interface é normalmente controlada somente pelos scripts ifupdown , que em sua forma básica não incluirá a detecção de links. Pacotes como ifupdown-extra podem adicionar alguma detecção de link básico (ou seja, pular trazendo uma interface se não parece ter um link) mas em geral, ifupdown configura as coisas uma vez na inicialização e depois é feito.

ifplugd pode ser o causador de seu comportamento inconsistente: acho que algumas versões dele costumavam funcionar com algumas, mas não com todas as interfaces de rede. Algumas NICs modernas entram em um estado desligado quando não estão configuradas: em tal estado, elas não poderão detectar a presença de um link. Outras NICs têm pelo menos a parte de detecção de link sempre ativada (ou energizada sempre que um driver é carregado). O segundo grupo de NICs funciona bem com todas as versões de ifplugd , mas acho que as NICs do primeiro grupo (usado?) Têm problemas com isso. Se seus enp2s0 e enp1s0 pertencerem a grupos diferentes nesse aspecto, isso poderá explicar a inconsistência.

    
por 22.01.2018 / 07:27