alterando os nomes das interfaces de rede, debian wheezy


14

Estou tentando definir um nome para uma interface, "ethLan" em vez de eth0. Fazer isso também garante que o nome do if permaneça consistente a cada reinicialização e kernel.

Eu encontrei alguns artigos no assunto, mas eles têm alguns anos:
http://www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

Fiz o que eles disseram e adicionei o ethLan mac ao / etc / mactabs / . Neste ponto, tenho dois problemas:
1) O if [...] && /sbin/nameifscript que coloquei em /etc/network/if-pre-up.d/ não é executado. Eu resolvi isso adicionando isso ao /etc/init.d/networking , mas por que o if-pre-up.d não funciona?
2) A interface não será carregada, a menos que eu faça manualmente ifconfig ethLan up , apesar de adicioná-lo ao / etc / network / interfaces . O que estou fazendo de errado?

Respostas:


17

Os artigos que você encontrou estão um pouco desatualizados. Agora existe um método fácil de atribuir nomes a interfaces de rede, por meio do Udev .

No Debian e derivados (incluindo o Ubuntu), procure um arquivo chamado /etc/udev/rules.d/70-persistent-net.rules. Este arquivo é criado /lib/udev/rules.d/75-persistent-net-generator.rulescom a ajuda do script /lib/udev/write_net_rules. Cada vez que o udev vê um novo dispositivo de rede, atribui a ele um novo número e anexa esse número a /etc/udev/rules.d/70-persistent-net.rules. Dessa forma, os números de interface são persistentes nas reinicializações e persistirão após a reinstalação, se você restaurar /etc.

(Se sua distribuição não enviar esses arquivos, procure-os no pacote Debian .)

Se você deseja atribuir um nome significativo a uma interface e possuir /etc/udev/rules.d/70-persistent-net.rules, tudo o que você precisa fazer é editar esse arquivo e mudar "eth0"para "ethLan". Corra udevadm trigger --sysname eth0para renomear o dispositivo existente depois de editar o arquivo (acho que isso requer o desligamento da interface). Se você não possui esse arquivo, você pode escrever uma linha correspondente (os scripts complicados adicionados pelo Debian são para fazer isso automaticamente):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
Se você quiser uma lista útil de atributos utilizáveis ​​nas regras do udev, tente algo como udevadm info -a /sys/class/net/eth0. (veja udevadm(8)para detalhes) #
— 9788 Austin Adams

1
A pergunta afirma claramente que é para o Wheezy, mas pode ser interessante notar que esta resposta não é mais válida para os novos Debian e Ubuntu. Começando com a nomeação da interface systemd 220-7 , é necessário fazer outros meios.
— Sampi 27/05

@sampi Minha resposta ainda se aplica ao Debian jessie (a versão estável atual). Ele falha no alongamento ou apenas recomenda um método obsoleto? Você sabe qual versão do Ubuntu é o limite?
— Gilles 'SO- stop be evil'

@Gilles Eu não procurei nos detalhes o suficiente para saber se ele realmente falha ou se é apenas uma depreciação recomendada. Parece que o Ubuntu Wily e os mais recentes usam systemd superior a 220-7 .
— Sampi

6

Para pessoas que se deparam com esta postagem por meio de um mecanismo de pesquisa, como eu:

No Debian stretch e mais recente, você pode usar os arquivos .link do systemd para que o udev renomeie os dispositivos. Consulte https://manpages.debian.org/stretch/udev/systemd.link.5.en.html para a página de manual.

Um exemplo:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

Não se esqueça de executar update-initramfs -uposteriormente para incorporar esses arquivos de configuração atualizados no initramfs, onde eles serão aplicados.


Se os arquivos de link estiverem presentes em um sistema com udev.rules.d, qual deles terá precedência?
— usar o seguinte comando

1

Existe uma maneira um pouco mais simples de fazer isso com um pacote chamado ifrename. Ele possui um udevarquivo de configuração (de ) separado e você pode usar endereços MAC para identificar interfaces.

No wireless-toolsentanto, entra em conflito com .


2
Deve-se notar que ifrenameentrará em conflito udevse ambos forem usados ​​para fornecer nomes persistentes às interfaces.
— precisa saber é o seguinte
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.