jueves, 30 de junio de 2016

Cambiar Nombre de Interfaz de Red en Ubuntu


¿Por qué han cambiado el nombre de las interfaces de red?




A partir de mediado del 2014 con el lanzamiento de las nuevas distribuciones de GNU/Linux
los dispositivos de red han cambiado el nombre desde llamarse, eth0, eth1, wlan0, wlan1, etc a tener nombres como enp2s0, wlo1 o hasta incluso enx78e7d1ea46da.

Este cambio se debe a una modificación del gestor de demonios systemd. A partir de la versión 197, systemd/udev asigna automáticamente los nombres de interfaz de red para Ethernet, WLAN y WWAN. El esquema de nombres clásicos aplicados por el núcleo consiste simplemente en asignar nombres que comienzan con "eth0", "wlan0", etc a todas las interfaces de red que se van cargando los controladores.

Lo que ocurre ahora es que el arranque de los controladores no es predecible, es decir, que se puede producir el caso en el que unas veces se inicie antes una interfaz que otra y en el siguiente inicio el orden cambie. La consecuencia de esto es que una misma interfaz de red puede recibir distintos nombres de forma aleatoria en cada inicio del sistema y eso supone un gran problema para aplicar las configuraciones de red.

Para solucionar este problema se han propuesto e implementado varias soluciones. Al principio se pensó en que la asignación de nombres permanentes del estilo "Wlan0" se basara en sus direcciones MAC. Esto fue viable porque tuvo una gran cantidad de problemas como el tener que disponer de un directorio al que acceder o escribir el cual podría no estar disponible en el arranque. Por otra parte si se arrancaba el sistema desde un Live CD/DVD, no había donde almacenar esa conflagración por lo que en cada arranque seguiría existiendo el problema. Además en algunos sistemas como las maquinas virtuales, la dirección MAC puede modificarse fácilmente.

Finalmente la solución aplicada ha consistido en crear unas políticas de nombrado que se aplicaran en función de las características del hadrware. Son las siguientes:

1. Nombres que incorporan información del Firmware o BIOS del hardware (ejemplo: ENO1).

2. Nombres que incorporan información de Firmware o BIOS que proporciona el slot PCI Express (ejemplo: ens1).

3. Nombres que incorporan ubicación física del conector (ejemplo: enp2s0).

4. Nombres que incorporan la dirección MAC de las interfaces (ejemplo: enx78e7d1ea46da).

5. El estilo clásico de kernel (ejemplo: eth0).

Ahora por defecto systemd nombra las interfaces siguiendo estas directrices: se elige la opción 1 si la información proveniente del firmware esta disponible. Si no, se usa la opción 2 solo si dicha información esta disponible. En caso contrario se usa el esquema de 3 y si no es posible, se usa el estilo clásico de 5. la directriz de 4 no se utiliza de forma predeterminada, pero esta disponible por si el usuario quiere usarla.


Ahora para volver a utilizar la configuración de asignación de nombres de interfaces de red clásica.



Simplemente vamos a deshabilitar la asignación de nombres por defecto, por lo que hora se volveran a utilizar los nombres clasicos. Para ello, simplemente enmascarar archivo de reglas de udev para la política por defecto, abrimos una terminar nos logeamos como superadministrador (root), y escribirmos la siguiente linea de comandos:



  ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Y eso es todo, solo queda reiniciar nuestra maquina.














 
biz.