alterando os nomes das interfaces de rede, debian wheezy

14

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

Eu encontrei alguns artigos sobre o assunto, mas todos eles têm alguns anos: link link

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

    
por user 11.01.2012 / 18:47

3 respostas

17

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

No Debian e nos derivados (incluindo o Ubuntu), procure um arquivo chamado /etc/udev/rules.d/70-persistent-net.rules . Este arquivo é criado por /lib/udev/rules.d/75-persistent-net-generator.rules com a ajuda do script /lib/udev/write_net_rules . Cada vez que o udev vê um novo dispositivo de rede, ele atribuirá um novo número e adicionará 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 uma reinstalação se você restaurar /etc .

(Se a sua distribuição não envia estes arquivos, procure-os no pacote Debian .)

Se você quiser dar um nome significativo a uma interface e tiver /etc/udev/rules.d/70-persistent-net.rules , tudo o que você precisa fazer é editar esse arquivo e alterar "eth0" para "ethLan" . Execute udevadm trigger --sysname eth0 para renomear o dispositivo existente depois de editar o arquivo (acho que isso exige desligar a interface). Se você não tem esse arquivo, você pode escrever a mesma linha (os scripts complicados que o Debian adiciona são apenas para fazer isso automaticamente):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"
    
por 11.01.2012 / 19:29
4

Para as pessoas que passam por este post por meio de um mecanismo de pesquisa, como eu:

No Debian stretch e mais recente, você pode usar arquivos systemd .link para que o udev renomeie os dispositivos. Consulte o link para a página do 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 -u posteriormente para incorporar esses arquivos de configuração atualizados ao seu initramfs, onde eles serão aplicados.

    
por 24.10.2017 / 19:52
1

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

Ele está em conflito com wireless-tools , no entanto.

    
por 12.01.2012 / 10:28