Como ativar "Nomes previsíveis da interface de rede"?

12

Decidi verificar com que nome meu dispositivo Ethernet terminará, mas, ao contrário de outras distros , o Debian não parece ter ativado essa alteração (ou a está impedindo?),

  • Mantenha o antigo esquema de nomenclatura da interface de rede persistente por enquanto e faça o novo opt-in via net.ifnames = 1 na linha de comando do kernel.

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

Braiam
fonte
Talvez você queira consultar este link: science.uva.nl/research/air/wiki/LogicalInterfaceNames Você pode encontrar um trabalho em torno, como nameif e arquivo de inicialização atualizar ... @Braiam
user1527227
@ user1527227 é exatamente isso que eu não quero fazer.
Braiam
No jesse, você só precisa modificar uma linha em / etc / default / grub. No wheezy, não há realmente nenhuma maneira de ativar esse AFAIK. Eu realmente gosto do novo esquema de nomenclatura, por isso configurei minhas próprias regras de udev em meus servidores de chiado.
GnP

Respostas:

11

A versão 220-7 no Debian descartou o patch que fazia essa opção:

* 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 nomeação antiga não serão renomeados até que o usuário migre. Leia README.Debian para obter 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_

onde eth0é o nome atual do dispositivo.

Braiam
fonte
5

Suponho que você esteja falando de sid ou jessie. Para o chiado, experimente o backport da v204 .

Pode haver alguns conceitos errados em jogo aqui: como pode ser visto nas regras do udev aqui (para a v208 atualmente no sid), os desenvolvedores do udev escolheram explicitamente o cmdline do kernel como a maneira padrão de ativar essa funcionalidade.
Não vejo nada inerentemente "exagero" ao usar a interface escolhida e simplesmente inseri GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"-la /etc/default/grub. Existe algum efeito colateral específico com o qual você está preocupado?

O fato de a resposta que você mencionar sugerir a remoção de 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 /lib/udev/rules.d, ou seja: elas seriam substituídas em uma atualização (além disso, desabilitar a funcionalidade, removendo efetivamente o arquivo que o descreve, faz algum sentido, mas habilitá- lo é fundamentalmente diferente, então acho que essa é uma comparação injusta).

OTOH, se você tiver um motivo concreto para não usar o cmdline do kernel, poderá relatar um bug no pacote debian e fazer com que o mantenedor mova essas regras /etc/udev/. Em seguida, você poderia alternar teoricamente entre as atuais regras "persistentes" e as novas "previsíveis".

Mas apenas para sua informação: olhando as fontes da versão 209, ela parece se livrar net.if_namescompletamente da verificação, portanto, sua pergunta pode precisar de algum reajuste no futuro próximo.

Leo Antunes
fonte
1
"escolheu explicitamente o cmdline do kernel como a maneira padrão de ativar esta funcionalidade." na verdade, é um patch do Debian que faz isso , não o udev devs. Eles incluíram apenas um método para torná-lo desativado na inicialização, o Debian mudou isso para ativá-lo, e permitir que seja fácil, pois é ativado por padrão.
Braiam
@ Braiam: Boa captura! Mas acho que o principal argumento é que foi uma opção do udev de usar o cmdline do kernel como uma interface, seja para habilitá-lo ou desabilitá-lo.
Leo Antunes
Editei a linha de comando do kernel para incluir o net.ifname=1parâmetro, mas esse recurso não foi ativado no Linux Mint. Quais distribuições Linux são conhecidas por terem suporte para esse recurso?
precisa saber é o seguinte
0

No Debian / Ubuntu, iniciando no udev 220, você pode ativar os novos nomes renomeando este arquivo:

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

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

sudo update-initramfs -u

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

Tobu
fonte
-1

O Ubuntu 15.10 usa biosdevnameque não fornece nomes de interface de rede previsíveis. Mesmo que você o remova (apt-get remove biosdevname) e edite o grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") e as regras persistentes, você ainda não terá interações de rede previsíveis.

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

Existem alguns bugs abertos na barra de ativação (por exemplo, isso ), mas a resposta curta é que, se você estiver procurando por nomes previsíveis de interface de rede, deverá procurar uma distribuição diferente.

Anthony Hunt
fonte
Entendi! Na verdade, atualizarei a resposta como acho que a recebi.
Anthony Hunt
@roalma Atualizei a resposta! Desculpe pela postagem "semelhante a comentário" anteriormente.
Anthony Hunt
O Debian suporta essa funcionalidade por padrão desde a versão 220-7, quando eles lançaram o patch que trazia o comportamento. Agora, novos sistemas instalados usariam os nomes previsíveis por padrão.
Braiam 06/07/2015