Una computadora de escritorio tiene acceso a Internet a través de una interfaz de red inalámbrica USB (popularmente conocidas como dongle). El problema con este tipo de dispositivos externos es que el nombre de interfaz puede cambiarse en cada reinicio, aunque no se cambie el puerto donde está conectada. En mi caso la interfaz se renombraba aleatoriamente de wlan0 a wlan1 y viceversa en cada reinicio. No es un problema grave, excepto que el gestor de redes wicd fija el nombre de adaptador en su configuración, con lo cual era necesario ajustar la configuración de wicd cada vez que se cambiaba el nombre de dispositivo de la interfaz de red WiFi.

Este artículo explica cómo configurar el gestor de dispositivos udev para fijar un nombre de dispositivo a una interfaz de red basándose en su dirección MAC.

Actualmente la interfaz tiene el nombre de dispositivo "wlan0":

root@devuan:~# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.6  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 2800:560:40:19cf:1e65:9dff:fe1e:86d5  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::1e65:9dff:fe1e:86d5  prefixlen 64  scopeid 0x20<link>
        ether 1c:65:9d:1e:86:d5  txqueuelen 1000  (Ethernet)
        RX packets 41  bytes 6433 (6.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 104  bytes 16376 (15.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

El primer paso consiste en determinar la dirección MAC de la interfaz:

root@devuan:~# ifconfig wlan0 | grep ether
        ether 1c:65:9d:1e:86:d5  txqueuelen 1000  (Ethernet)

Se observa en este ejemplo que la dirección MAC es "1c:65:9d:1e:86:d5".

Para fijar el nombre de dispositivo para la interfaz con esta MAC, se crea una regla de udev. Crear el archivo /etc/udev/rules.d/10-network-device.rules:

root@devuan:~# nano /etc/udev/rules.d/10-network-device.rules

Agregar la siguiente regla:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="1c:65:9d:1e:86:d5", NAME="wifi5"

En este caso decidí asignarle el nombre "wifi5". Reemplazar la variable ATTR{address} por la MAC correspondiente.

Guardar los cambios y reiniciar el sistema:

root@devuan:~# reboot

Al iniciar nuevamente se observa que udev le asigna un nombre "wlanX" al igual que antes. Sin embargo, resulta inmediatamente renombrado a "wifi5":

root@devuan:~# grep 'wifi5: renamed' /var/log/syslog
Mar 23 18:47:49 devuan kernel: [   13.414783] rt2800pci 0000:02:00.0 wifi5: renamed from wlan0

A partir de ahora esta interfaz de red WiFi tendrá siempre el nombre de dispositivo "wifi5" independientemente de en qué puerto USB sea conectada:

root@devuan:~# ifconfig wifi5
wifi5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.6  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 2800:560:40:19cf:1e65:9dff:fe1e:86d5  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::1e65:9dff:fe1e:86d5  prefixlen 64  scopeid 0x20<link>
        ether 1c:65:9d:1e:86:d5  txqueuelen 1000  (Ethernet)
        RX packets 41  bytes 6433 (6.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 104  bytes 16376 (15.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Referencias

Compartí este artículo