Llega el caós con las nuevas interfaces wifi wlxXXXXXXXXXXX

[h]Debido a una nueva política con system.d las interfaces wifi no se llaman wlan0, wlan1
… pero wlxXXXXXXXXXX (los X son la dirección mac) [/h]

Erase una vez una época en la cuál tu interfaz wifi interna se llamaba wlan0.
Si enchufabas un USB se llamaba wlan1
Y si enchufabas otro USB se llamaba wlan2.
etc…

Un día, un desarrollador de red hat ha tenido una idea genial y ha dicho a sus colegas:
- “¿No sería mas simple llamar wlan0 con su dirección mac y hacer algo así : wlx00c0ca849eac?
Y sus colegas han respondido:

  • “¡Mola mucho tío!¡Eres un crack!.. ¿Quien quiere otro trozo más de tortilla al LSD?.. Es que se me han acabado los hongos hawaianos”

Y es así que se tomó una gran decisión para la versión 197 de systemd.
(Systemd es lo que sustituye init en los sistemas GNU-Linu)
A partir de ahora las interfaces se llamarán wlnxXXXXXXXXXXXX

¡Genial! :smiley:
Ahora para bajar tu interfaz USB es super simple con tu mac… es algo como

sudo ifconfig wlx00c0ca849eac down

¡Que mejora en comparación con

sudo ifconfig wlan1 down

El argumento es que “evitamos así la confusión entre interfaces ya que la mac es única
¡Gran argumento!
Esta claro que me se de memoria cuál es la mac de cada una de mis dispositivos wifi… sobre todo que tengo pocos :smiley:
Además es super simple escribir 12 caracteres hexadecimales en lugar de un 1 o un 2…
¡Que complicado era antes!
wlan0 la interna, wlan1 el USB.
Es como la historia del hilo rojo y del hilo azul de la bomba, nunca podía recordarme cúal es cúal. :rolleyes:

Se sabía que iba a pasar, no esperaba que las distribuciones “normnales” hagan algo pero tenía la esperanza que los de kali iban a pensar en implementar algo para que el nombre sea el de antes.
No es el caso, wlxXXXXXXXXXXX para tod@s…
Por supuesto podemos renombrar las interfaces, hacer un script para que las renombre y apañarnos.
Pero la idea de deber lanzar un script o añadir uno al inicio para renombrar las interfaces seduce tanto como ir a una cita para comer un helado en bikini en el polo norte. .

Lo más del asunto es que los únicos a quienes podía molestar el antiguo sistema son los locos como nostr@s.
Los linuxeros wifi-aficionados, los amantes de reaver y de aircrack-ng que trastean con varios adaptadores y chipset, los que son capaces de leer una revista sobre una comparación entre Alfa network y ubiquiti bajo la ducha…
¿Hemos pedido algo a estos señores?
Nooooooooooo. por favor… dejarnos en paz…
Me buscaba perfectamente la vida con mis interfaces wlanX
Si tenia una duda porque usaba varias interfaces a la vez me hacía un pequeño airmon-ng para ver el chipset.
El tiempo de entrar airmon-ng para informarme era menos largo y pide menos esfuerzo que el necesitado para entrar una dirección mac
Para subir la potencia ahora sera

sudo ifconfig wlx00c0ca849eac down && sudo iwconfig wlx00c0ca849eac txpower 30 && sudo ifconfig wlx00c0ca849eac up

Suerte que existe el copiado-pegado… :stuck_out_tongue:

Sobre los problemas de compatibilidad con los scripts…
…Si la peña se ha puesto como loca con el paso de monX a wlanXmon… ¡La que se avecina con el paso de wlanX a wlxXXXXXXXXXX! :lol:

El que no pierde su sentido del humor es MisterX…
¡ Mirar lo que pasa cuando habilitamos el mode monitor en una interfaz wlxXXXXXXXXXXXX!

Interface 15mon is too long for linux so it will be renamed to the old style (wlan#) name.

Si el ingles no es para nada el tuyo, dice que el nombre este es demasiado largo para linux (y paras nosotr@s) y que se va a usar la nomenclatura antigua (wlanX)
Tu interfaz en mode monitor no será wlx00c0ca849eacmon o algo por el estilo pero sigue siendo wlan1mon
¡Bravo! :biere:
¡Resistencia con misterX de aircrack-ng contra los nombres de interfaces estúpidos! :smiley:

no hemos pasado bastante con networkmanager,…que ahora que ya no da por culo , llega esto …jajaja.

por suerte a mi no me va a afectar , slack y gentoo , son dos de los pocos que aguantan a no incorporar systemd …y siguenn con init + eudev.

pero como todo , llegara el dia en que systemd , sea inexorable … y por fuerza habra que incorporarlo , … lo mismo sucede con pam.

pulseaudio ,era otro que no querian ver , y al final por fuerza…jaja ,todo el stack bluetooth nuevo solo funciona con pulseaudio … una lastima, pero al final esto va asi, los desarrollos miran hacia lo grande.

:lol:
Esto es: Antes de todo no hay que perder el sentido del humor… :smiley:

Es como dices… llegará.
De hecho en gentoo no lo han implementado por defecto pero es ya posible instalárselo.
El único que hace aún resistencia es Patrick :smiley:

¡Aguanta Patrick! ¡Estamos contigo! :biere:
System.d no es malo en teoría.
Debería acelerar-mejorar el inicio del sistema.
Me parece que todos han seguido un poco ciegamente a las malditas fedora/red hat que son los que impulsaron este cambio cuando la cosa era aún verde.
No soy yo quien lo digo, solo hay que ver en la red los articulos sobre init vs system.d, hubo y hay aún “polémica”
Pero el cambio parece inexorable…
¿Que podemos hacer?
¿Una petición para que las interfaces wlanX vuelvan en system.d?
¿Secuestramos a los desarrolladores hasta que lo cambien?
Se puede hacer un script sencillo para que se renombren las interfaces automáticamente al inicio.
El problema es que no será eficaz si enchufamos un USB nuevo una vez el sistema arrancado…
Se complica la cosa, habría que modificar el(los) demonio(s) que se encargan de las interfaces, retocar system.d…
Si varios script se han ido al carajo con pasar de monX a wlanXmon (tampoco es un cambio tan enorme)… la que se avecina con wlxXXXXXXXXXXXX :smiley:
Saludos USUARIONUEVO, a ver como acaba este nuevo episodio de la telenovela “system.d contra el pueblo” :smiley:

Buena noticia

Los de kali han decidido arreglar lo que se considera… como un bug :smiley:

No tengo claro que lo van a implementar de serie o van a hacer posible que se vuelva al sistema antiguo usando las soluciones propuestas aquí :
Predictable Network Interface Names
Ya veremos, en todos casos haré un tema o publicare aquí una solución fácil ara kali linux cuando el ticket del bugtrack se marque como “arreglado”.

IMAGINO , modificaran la regla …

todo se basa en “reglas” , asi que sabiendo donde esta el problema, cambiarlo sera facil.

en algun fichero *.rules

lo de systemd ,la verdad no lo eniendo muy bien ,por que patrick no quiere usarlo , de hecho se quedo desfasado udev , y en vez de irse a systemd , prefirio usar eudev de gentoo…que no es mas que el viejo udev con algo de mantenimiento…tenia lo mismo con pulseaudio … y se tubo que bajar los pantalones , si queria usar dispositivos de audio por bluetooth ,…o skype , pulseaudio era inevitable…

y lo de las wlanXmon , cuando la gente no sabe, no puede entender , … a mi tambien me molesto ese cambio , peo entiendo perfectamente el por que se produce , … kernel org , no hace mas que meter reglas al kernel para evitar tener interfaces duplicadas en managed+monitor …lo cual hay que estar “hackeando” ,codigo mediante parches para poder seguir haciendolo … ¿para que luchar contra lo inevitable? … simplemente no crean la virtual…y montan la real managed a monitor…asi funciona , sin necesidad de parches al kernel ni nada …adios channel -1 , y problemas derivados … pero claro … la gente a criticar sin saber de que hablan. :slight_smile:

perdon por el repost , extraido del link que has dejado …

You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev's rule file for the default policy: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules You create your own manual naming scheme, for example by naming your interfaces "internet0", "dmz0" or "lan0". For that create your own .link files in /etc/systemd/network/, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See systemd.link(5) for more information. You pass the net.ifnames=0 on the kernel command line

no parece dificil , volver al clasico wlanX

Hay esta el premio → 80-net-setup-link.rules

No he probado con esta pero si lo he conseguido anotando 73-special-net-names.rules :slight_smile:
En lugar de tener el final del archivo así :

[code]# Use MAC based names for network interfaces which are directly or indirectly

on USB and have an universally administered (stable) MAC address (second bit

is 0).

ACTION==“add”, SUBSYSTEM==“net”, SUBSYSTEMS==“usb”, NAME==“”, ATTR{address}==“?[014589cd]:*”, #IMPORT{builtin}=“net_id”, NAME=“$env{ID_NET_NAME_MAC}”[/code]
Anotamos la ultima linea dejándolo así

[code]# Use MAC based names for network interfaces which are directly or indirectly

on USB and have an universally administered (stable) MAC address (second bit

is 0).

#ACTION==“add”, SUBSYSTEM==“net”, SUBSYSTEMS==“usb”, NAME==“”, ATTR{address}==“?[014589cd]:*”, #IMPORT{builtin}=“net_id”, NAME=“$env{ID_NET_NAME_MAC}”[/code]
¡Un reboot y listo!

Al final no sera tanto caos :smiley:

Voy a hacer un pequeño tema en el foro kali porque aunque sea fácil, hay que saberlo. :stuck_out_tongue:

jeje, ves … aunque esa parece solo para las USB , ¿no? …igual la otra que apuntan en el hilo , (la 80 ) , es para las PCI ?¿

Si parece ser solo para USB, lo curioso es que mi interna siempre se ha quedado como wlan0.
Sobre el 80 desaconsejaran retocar el fichero porque será aplastado a cada actualización :

[code]# do not edit this file, it will be overwritten on update

SUBSYSTEM!=“net”, GOTO=“net_setup_link_end”

IMPORT{builtin}=“path_id”

ACTION!=“add”, GOTO=“net_setup_link_end”

IMPORT{builtin}=“net_setup_link”

NAME==“”, ENV{ID_NET_NAME}!=“”, NAME=“$env{ID_NET_NAME}”

LABEL=“net_setup_link_end”[/code]
Efectivamente se define un NAME y hay cosas como ID_NET_NAME que tienen toda la pinta, pero yo no se de que va esto :smiley:

En el 99 veo esto sobre interfaces de redes : # Apply sysctl variables to network devices (and only to those) as they appear. ACTION=="add", SUBSYSTEM=="net", KERNEL!="lo", RUN+="/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name --prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name --prefix=/net/ipv6/neigh/$name"

Luego no he visto nada sobre dónde se define le nombre de las interfaces wifi internas…
Si tienes una idea de dónde mirrar, esta es la lista de mis reglas

kcdtv@kalimuxo:~$ cd /lib/udev/rules.d/ kcdtv@kalimuxo:/lib/udev/rules.d$ ls 39-usbmuxd.rules 73-seat-late.rules 40-iio-sensor-proxy.rules 73-special-net-names.rules 40-usb_modeswitch.rules 75-net-description.rules 42-pn53x.rules 75-probe_mtd.rules 50-bluetooth-hci-auto-poweron.rules 77-mm-cinterion-port-types.rules 50-firmware.rules 77-mm-ericsson-mbm.rules 50-udev-default.rules 77-mm-huawei-net-port-types.rules 55-dm.rules 77-mm-longcheer-port-types.rules 56-lvm.rules 77-mm-mtk-port-types.rules 60-block.rules 77-mm-nokia-port-types.rules 60-cdrom_id.rules 77-mm-pcmcia-device-blacklist.rules 60-crda.rules 77-mm-platform-serial-whitelist.rules 60-drm.rules 77-mm-qdl-device-blacklist.rules 60-evdev.rules 77-mm-simtech-port-types.rules 60-fuse.rules 77-mm-telit-port-types.rules 60-gnupg.rules 77-mm-usb-device-blacklist.rules 60-i2c-tools.rules 77-mm-usb-serial-adapters-greylist.rules 60-libgphoto2-6.rules 77-mm-x22x-port-types.rules 60-libhackrf0.rules 77-mm-zte-port-types.rules 60-libsane.rules 78-sound-card.rules 60-persistent-alsa.rules 80-debian-compat.rules 60-persistent-input.rules 80-drivers.rules 60-persistent-storage-dm.rules 80-ifupdown.rules 60-persistent-storage.rules 80-mm-candidate.rules 60-persistent-storage-tape.rules 80-net-setup-link.rules 60-persistent-v4l.rules 80-udisks2.rules 60-serial.rules 84-nm-drivers.rules 61-gnome-bluetooth-rfkill.rules 85-hdparm.rules 61-gnome-settings-daemon-rfkill.rules 85-hwclock.rules 64-btrfs.rules 85-nm-unmanaged.rules 64-xorg-xkb.rules 85-regulatory.rules 69-cd-sensors.rules 90-console-setup.rules 69-libmtp.rules 90-pulseaudio.rules 69-lvm-metad.rules 92-libccid.rules 69-wacom.rules 95-cd-devices.rules 69-xorg-vmmouse.rules 95-upower-csr.rules 70-mouse.rules 95-upower-hid.rules 70-power-switch.rules 95-upower-wup.rules 70-printers.rules 97-hid2hci.rules 70-uaccess.rules 99-systemd.rules 71-seat.rules 99-wispy.rules

pues , solo guiando por el nombre, sin saber lo que habra dentro … abriria para ver que hay en

73-special-net-names.rules 75-net-description.rules 80-ifupdown.rules 80-net-setup-link.rules

solo por curiosear vamos, ni tengo systemd ni puedo probar nada de eso.

Estos me parece que los habías probado y no me ha parecido ver algo, menos ifupdown que no había mirrado, te pongo aquí el contenido para satisfacer tu curiosidad :D… Y asi te preparas para el ineluctable :smiley:

[code]kcdtv@kalimuxo:/lib/udev/rules.d$ cat 73-special-net-names.rules

On Dell PowerEdge systems, the iDRAC7 and later support a USB Virtual NIC

which terminates in the iDRAC. Help identify this with ‘idrac’

ACTION==“add”, SUBSYSTEM==“net”, SUBSYSTEMS==“usb”, ATTRS{idVendor}==“413c”, ATTRS{idProduct}==“a102”, NAME=“idrac”

ibmveth devices’ $DEVPATH number is tied to (virtual) hardware (slot id

selected in the HMC), thus this provides a reliable naming (e. g.

“/devices/vio/30000002/net/eth1”); we ignore the bus number, as

there should only ever be one bus, and then remove leading zeros

ACTION==“add”, SUBSYSTEM==“net”, NAME==“”, DRIVERS==“ibmveth”, PROGRAM=“/bin/sh -ec ‘D=${DEVPATH#/vio/}; D=${D%%%%/}; D=${D#???}; D=${D#0}; D=${D#0}; D=${D#0}; D=${D#0}; echo ${D:-0}’”, NAME=“ibmveth$result”

Use MAC based names for network interfaces which are directly or indirectly

on USB and have an universally administered (stable) MAC address (second bit

is 0).

#ACTION==“add”, SUBSYSTEM==“net”, SUBSYSTEMS==“usb”, NAME==“”, ATTR{address}==“?[014589cd]:*”, IMPORT{builtin}=“net_id”, NAME=“$env{ID_NET_NAME_MAC}”
kcdtv@kalimuxo:/lib/udev/rules.d$ cat 75-net-description.rules

do not edit this file, it will be overwritten on update

ACTION==“remove”, GOTO=“net_end”
SUBSYSTEM!=“net”, GOTO=“net_end”

IMPORT{builtin}=“net_id”

SUBSYSTEMS==“usb”, IMPORT{builtin}=“usb_id”, IMPORT{builtin}=“hwdb --subsystem=usb”
SUBSYSTEMS==“usb”, GOTO=“net_end”

SUBSYSTEMS==“pci”, ENV{ID_BUS}=“pci”, ENV{ID_VENDOR_ID}=“$attr{vendor}”, ENV{ID_MODEL_ID}=“$attr{device}”
SUBSYSTEMS==“pci”, IMPORT{builtin}=“hwdb --subsystem=pci”

LABEL=“net_end”
kcdtv@kalimuxo:/lib/udev/rules.d$ cat 80-ifupdown.rules

Allow rfkill for users in the netdev group

KERNEL==“rfkill”, MODE=“0664”, GROUP=“netdev”

Handle allow-hotplug interfaces

SUBSYSTEM==“net”, ACTION==“add|remove”, RUN+=“ifupdown-hotplug”
kcdtv@kalimuxo:/lib/udev/rules.d$ cat 80-net-setup-link.rules

do not edit this file, it will be overwritten on update

SUBSYSTEM!=“net”, GOTO=“net_setup_link_end”

IMPORT{builtin}=“path_id”

ACTION!=“add”, GOTO=“net_setup_link_end”

IMPORT{builtin}=“net_setup_link”

NAME==“”, ENV{ID_NET_NAME}!=“”, NAME=“$env{ID_NET_NAME}”

LABEL=“net_setup_link_end”
[/code]
Es extraño que tengan las wlxXXXXXXXXX solo para los USB,.
Además se supone que esto debería afectar a todas las interfaces, incluso la ethX :

Y ponen bien que la wlan0 (interna) ciao también…
A lo mejor siendo un portátil con un numero limitado de puerto ethernet (uno) y de tarjeta wifi interna (una) y sin posibilidad de evolucionar, se queda así…
Buscaré mas otro día, se me esta pagando la lucesita…

pues no veo nada ,solo lo que ya has comentado y que ademas estaba “documentado”, dentro de la misma regla …

Use MAC based names for network interfaces which are directly or indirectly

on USB and have an universally administered (stable) MAC address (second bit

is 0).

#ACTION==“add”, SUBSYSTEM==“net”, SUBSYSTEMS==“usb”, NAME==“”, ATTR{address}==“?[014589cd]:*”, IMPORT{builtin}=“net_id”, NAME=“$env{ID_NET_NAME_MAC}”

fijate que la regla ya documenta es solo para usb …

a mi a un me queda para systemd , slack 14.2 saldra en muy poco y el ciclo de desarrollo ya esta parado …solo bugs y poco mas…y como tardan 2 años en sacar otra pues…jaja. :slight_smile:

Claro que lo he leído : ¿Como crees que se que es solo para USB?¿Y como quieres que me ponga a comentar esta linea para resolver mi problema con los USB wifi dentro de las cienes de reglas “d” que existen?¿Al asar? :smiley:
Supongo que no lo habías leído hasta ahora… Y lo que me pregunto es : ¿Como haz hecho para intuir que era solo para USB?
…Esto es lo que me tiene intrigado… Chapeau! :smiley:

:smiley:
De mi lado no he hecho los deberes y uso aún los viejos comandos.
Hay un puñal de comandos “sistema” que han cambiado y no me los se… por ejemplo para hacer un poweroff ahora debería teóricamente hacer systemctl poweroff.
¿Mas simple no? :rolleyes:
Debería leerme la doc y redactar un tema sobre estos comandos nuevos.
Por le de buscar dónde se determina la eth y la wlan interna, lo haré cuando tenga problema me parece porque sigo sin verlo :stuck_out_tongue:
Estoy curioso de ver que pasará cuando el bug será arreglado en kali rolling.
¿Van a volver a las antiguas wlanX por defecto o van a dejarlo así?

por ejemplo en ubuntu es asi el archivo a editar.
70-persistent-net.rules
si no esta lo creáis vacío y lo rellenais con el código de abajo

y el contenido es este:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC", NAME="NOMBRE DE INTERFAZ"el nombre de interfaz es el que queráis ponerle = wlan0 wifi0 usbAlfa lo que queráis.
en mac la mac de vuestro adaptador de red

en ved de

poweroff

usa

sudo halt

para apagar el sistema

Udev :wink:

Paseando por aquí aprovecho la oportunidad para explicar cómo volver al antiguo sistema de nombramiento (interfaces ethX y wlanX)
Un forma de proceder es anular la nueva política de nombramiento de systemd a nivel del GRUB (el menú de arranque) .
Par ello editamos nuestro fichero GRUB con nano y privilegios de administrador.

sudo nano /etc/default/grub

Debemos encontrar la linea con la variable GRUB_CMDLINE_LINUX y editarla de tal modo que su valor sea net.ifnames=0
La linea debe quedar así:

GRUB_CMDLINE_LINUX="net.ifnames=0"

https://www.wifi-libre.com/img/members/3/systemd_reverse_interface_naming.jpg
Notad que la variable pude tener múltiples valores. Podemos añadir así varios parámetros extras a nuestro arranque. Por ejemplo:

GRUB_CMDLINE_LINUX="net.ifnames=0 quiet splash"

Con nano guardamos los cambios con <Ctrl + O>, confirmamos la ruta y nombre de archivo con y salimos con <Ctrl + X>
Luego debemos actualizar el GRUB

sudo update-grub

Reiniciamos el sistema con

sudo reboot

Comprobamos que ha funcionado con

sudo ip l s

https://www.wifi-libre.com/img/members/3/old_naming.jpg