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?


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.


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.


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).


-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.


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
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.