udev regras de rede persistentes: interfaces de nomes baseadas no driver / chipset

1

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

No momento eu configurei regras de nomeação persistentes para cada Pi, então quando eu configurei um novo Pi ou troquei as placas wireless entre o Pis, então eu tenho que ir e editá-lo para que o novo cartão rtl8187 ainda seja wlan0 e o novo cartão 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 conecte deve ser wlan0 e qualquer placa rt2800usb deve ser wlan1.

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

    
por Andrew 25.10.2016 / 02:27

2 respostas

2

A primeira coisa que eu tentarei é mudar o

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

para

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

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

Eu não testei, mas é assim que a correspondência usual funciona.

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

    
por 25.10.2016 / 08:46
0

Eu não acho que nomear o dispositivo ajudará, já que você percebeu o fator decisivo sobre se o dispositivo é wan0 ou se wan1 é desligado do endereço mac.

A única solução em que consegui pensar é super sujo ... ter duas cópias da configuração de rede & 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 isso, 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 (certifique-se de bloquear as permissões).

Apenas pergunta que eu tenho, eu não entendo qual seria o problema em ter um nic como wlan1.

Eu acredito que a resposta para o seu problema não está mudando de wlan1 para wlan0, mas sim porque você precisa ...

aqui está um exemplo da 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"

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

ATUALIZAÇÃO:

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 que você encontrará todas as informações relevantes para combinar lá

    
por 25.10.2016 / 03:35