Como habilitar “Nomes previsíveis de interface de rede”?

12

Eu decidi verificar com que nome meu dispositivo ethernet terminaria, mas contrário de outras distros , Debian não parece ter ativado essa mudança (ou está atrasando?),

  • Keep the old persistent network interface naming scheme for now and make the new one opt-in via net.ifnames=1 on the kernel command line.

O problema é que eu tenho que editar as linhas de kernel do grub, e isso parece um exagero para algo que pode ser desativado por modificando um arquivo . Existe outro jeito?

    
por Braiam 07.07.2014 / 23:09

4 respostas

8

A versão 220-7 no Debian deixou cair o patch que fez este opt-in:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

Isso surgiu de uma proposta na lista debian-devel . Os sistemas que estavam usando a nomenclatura antiga não serão renomeados até que o usuário migre. Leia o README.Debian para o guia de migração.

O novo nome pode ser previsto usando:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

em que eth0 é o nome atual do dispositivo.

    
por 05.07.2015 / 21:17
5

Eu presumo que você esteja falando de sid ou jessie. Para wheezy você pode querer experimentar o backport da v204 .

Pode haver alguns equívocos em jogo aqui: como pode ser visto nas regras do udev aqui (para v208 atualmente no sid), os desenvolvedores do udev explicitamente escolheram o cmdline do kernel como o modo padrão de habilitar essa funcionalidade.
Eu não vejo nada intrinsecamente "exagerado" em usar a interface escolhida para isso e simplesmente colocando GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1" em /etc/default/grub . Existe algum efeito colateral específico com o qual você está preocupado?

O fato de que a resposta que você mencionou sugere remover um arquivo para desativá-lo é um hack (pelo menos no caso do Debian) que não funcionaria a longo prazo porque no debian essas regras são armazenadas em /lib/udev/rules.d , ie : eles seriam sobrescritos em uma atualização (além disso, desabilitar a funcionalidade removendo efetivamente o arquivo que descreve isso faz sentido, mas ativando é fundamentalmente diferente, então acho que essa é uma comparação injusta).

OTOH, se você tiver uma razão concreta para não usar o cmdline do kernel, você pode relatar um bug contra o pacote debian e fazer com que o mantenedor mova essas regras para /etc/udev/ . Então, você poderia, teoricamente, alternar entre as atuais regras "persistentes" e as novas "previsíveis".

Mas só para FYI: olhando as fontes da versão 209, parece que se livrou da verificação net.if_names , então sua pergunta pode precisar de um novo endereço no futuro próximo.

    
por 10.08.2014 / 17:03
0

No Debian / Ubuntu, começando com o udev 220, você pode habilitar os novos nomes renomeando este arquivo:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

Como sugerido por /usr/share/doc/udev/README.Debian.gz , seguido por

sudo update-initramfs -u

Em seguida, reinicialize (ou rmmod + insmod do módulo que está dirigindo sua placa de rede).

    
por 17.09.2015 / 00:31
-1

O Ubuntu 15.10 usa biosdevname , que não fornece nomes de interface de rede previsíveis. Mesmo se você removê-lo (apt-get remove biosdevname) e  editar o grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1" ) e as regras persistentes, você ainda não obtém interações de rede predizíveis.

O principal motivo parece ser compatibilidade com versões anteriores. Eu testei agora com 2 dispositivos USB de banda larga móvel e o nome da interface de rede é nomeado inconsistentemente em cada inicialização (por exemplo, a primeira interface usb0, segunda usb1 e vice-versa). A principal razão parece ser compatibilidade com versões anteriores. >

Existem alguns bugs abertos no launchpad (por exemplo, this ), mas a resposta curta é que, se você está procurando por nomes de interface de rede previsíveis, deve procurar uma distribuição diferente.

    
por 05.07.2015 / 18:44