regras de rede persistentes do udev: nomeando interfaces baseadas em driver/chipset

regras de rede persistentes do udev: nomeando interfaces baseadas em driver/chipset

Estou trabalhando em um projeto usando uma série de Raspberry Pis, cada um com duas placas wireless diferentes (com chipsets diferentes/usando módulos diferentes, um é rtl8187 e o outro é rt2800usb).

No momento, configurei regras de nomenclatura persistentes para cada Pi, então, quando configuro um novo Pi ou troco as placas wireless entre Pis, tenho que editá-lo para que a nova placa rtl8187 ainda seja wlan0 e o a nova placa rt2800usb ainda é wlan1.

Existe alguma maneira de modificar as regras persistentes para nomear as interfaces com base no módulo que elas usam ou algo assim? Idealmente, eu gostaria de saber que qualquer placa rtl8187 que eu conectar deve ser wlan0 e qualquer placa rt2800usb deve ser wlan1.

Ou, como solução alternativa, existe uma maneira de usar um curinga parcial para a correspondência do endereço MAC? Cada placa que tenho do mesmo chipset tem o mesmo prefixo MAC do fornecedor.

Responder1

A primeira coisa que eu tentaria é apenas mudar o

ATTR{address}=="12:34:56:78:9A:AB"

para

ATTR{address}=="12:34:56:*"

in /etc/udev/rules.d/70-persistent-net.rules(assumindo que esteja no mesmo lugar no seu RaspPi).

Não testei, mas é assim que funciona a correspondência normal.

Se funcionar, basta copiar este arquivo para cada novo RaspPi.

Responder2

Não acho que nomear o dispositivo ajude, pois você notou que o fator decisivo sobre se o dispositivo é wan0 ou wan1 é baseado no endereço MAC.

A única solução que consegui pensar é super suja... tenha duas cópias da configuração de rede e use uma regra do udev para copiar a configuração de rede desejada no lugar. (Isso funcionaria, mas é super sujo...)

Talvez alguém possa pensar em uma solução melhor, mas se você escolher esta, o método é combinar o dispositivo em uma regra do udev e no final da regra do udev ter +RUN=/usr/local/bin/bashscript.sh (make certifique-se de bloquear as permissões).

Única dúvida que tenho, não entendo qual seria o problema em ter uma nic como wlan1.

Acredito que a resposta para o seu problema não seja mudar de wlan1 para wlan0, mas descobrir por que você precisa ...

aqui está um exemplo de regra do udev que tenho com um script bash:

ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh"

(bloquear a tela do meu laptop quando eu desconectar uma chave de segurança)


ATUALIZAR:

para depurar os atributos do cartão disponíveis:

SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh"

em addnic.sh;

#!/bin/bash

env > /home/user/udev_$RANDOM.txt

Tenho certeza de que você encontrará todas as informações relevantes para combinar lá

informação relacionada