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?

do utilizador
fonte

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"
Gilles 'SO- parar de ser mau'
fonte
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.

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

Mischa Arefiev
fonte
2
Deve-se notar que ifrenameentrará em conflito udevse ambos forem usados ​​para fornecer nomes persistentes às interfaces.
precisa saber é o seguinte