Por que minha interface de rede é nomeada enp0s25 em vez de eth0?

109

Muitos dos meus scripts pararam de funcionar após a instalação do Ubuntu 15.10 e tenho problemas para lembrar esse novo nome, pois estava acostumado ao ethx e wlanx por anos. Existe uma razão para essa mudança? Preciso me acostumar com isso ou posso apenas renomeá-lo e voltar ao bom e velho eth0?

$ ifconfig

enp0s25   Link encap:Ethernet  HWaddr 77:5a:5e:a6:86:d5  
      inet addr:192.168.31.239  Bcast:192.168.31.255  Mask:255.255.255.0
      inet6 addr: fe80::725a:b6ff:fea6:86d7/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4833 errors:1332 dropped:0 overruns:0 frame:666
      TX packets:5589 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3266446 (3.2 MB)  TX bytes:1046654 (1.0 MB)
      Interrupt:20 Memory:d3500000-d3520000
Mike
fonte
2
veja isso, que também tem um link adicional para mais detalhes.
Doug Smythies
4
Ooooooooooooooor corrija seus scripts de uma vez por todas e remova a referência (e altere-a para um comando para determinar o nome do dispositivo) ;-) (aqui estão algumas dicas: askubuntu.com/questions/396837/… )
Rinzwind
@Rinzwind Essa é uma ótima idéia.
Mike
@ Mike meu chefe (= codificador de chumbo) sempre concorda comigo sobre isso também, mas, em seguida, ele sempre usa caminhos codificados rígidos e dispositivos ... e eu repreendê-lo uma e outra vez;)
Rinzwind

Respostas:

105

Isso é conhecido como nomeação de Interface de Rede Previsível e faz parte do systemd , para o qual o Ubuntu está fazendo a transição a partir da versão 15.04.

A idéia básica é que, diferentemente do esquema de nomenclatura * nix anterior, em que a pesquisa de hardware ocorre em nenhuma ordem específica e pode mudar entre as reinicializações, aqui o nome da interface depende da localização física do hardware e pode ser previsto / adivinhado pelalspcilshw visualização ou pela saída . Por outro lado, podemos adivinhar informações sobre sua posição física no sistema pci. No seu caso, que seria barramento PCI 0, slot 2. De acordo com o artigo freedesktop.org , realmente existem 3 maneiras como nome de interface é atribuído: com base em BIOS / Firmware para cartões de bordo, com base em informações PCI, e com base no MAC endereço da interface. Consulte aqui para outros exemplos .

De acordo com a página do freedesktop.org, uma das razões para mudar para a nomeação previsível é que a convenção de nomeação clássica pode levar a riscos de segurança de software em sistemas com várias interfaces quando os dispositivos são adicionados e removidos na inicialização. Além disso, de acordo com o comentário de Sam Hanes , "em um grande servidor com muitas portas Ethernet, é inestimável: você pode dizer imediatamente qual interface vai para qual porta e adicionar ou remover hardware não altera os nomes de outras portas".

Consulte Como renomear a interface de rede na 15.10 , caso decida voltar para a outra versão da nomenclatura.

Sergiy Kolodyazhnyy
fonte
40
Vejo pouca ironia na palavra "previsível" :), obrigado pelos ponteiros.
Mike
11
"previsível", sim, com certeza. Tenho desconexões Ethernet após a atualização para 15.10 (instalação limpa, antiga / doméstica). Por que quebrar APIs e convenções? Agora eu tenho que descobrir o que está falhando. Estou muito chateado com isso :(
gorlok 24/01
13
falha é previsível eu acho;)
Anwar
6
eh, diga isso aos systemddesenvolvedores, pessoal.
Sergiy Kolodyazhnyy
22
A nomeação previsível não é particularmente útil em sistemas de desktop com apenas uma interface e, nesse caso, é meio desagradável. Em um grande servidor com muitas portas Ethernet, é inestimável: você pode dizer imediatamente qual interface vai para qual porta e a adição ou remoção de hardware não altera os nomes de outras portas. Esse é o caso para o qual foi projetado.
Sam Hanes 12/11
1

FWIW, o arquivo PredictableNetworkInterfaceNames do freedesktop.org faz referência canônica aos comentários de um arquivo de origem, mas esse arquivo foi alterado para remover os comentários - consulte https://github.com/systemd/systemd/pull/12518 .

pbhj
fonte