Cuando nuestra ubuntu arranca con una tarjeta de red pinchada, guarda en “algún sitio” un registro que le permite asociar un nombre a cada uno de los dispositivos. La correspondencia se hace directamente entre MAC y nombre. A la primera mac que “ve” nuestra ubuntu se le asigna el nombre eth0, a la segunda eth1 y así sucesivamente. Las asociaciones permanecen en el sistema aún cuando la tarjeta de red ya no está presente. Esto es muy práctico porque asi las posibles configuraciones de cada dispositivo estarían disponibles en el caso de volver a pinchar la tarjeta que hemos quitado. Pero hay escenarios en los que este comportamiento es molesto.
Imaginemos que tenemos guardada una imagen de ubuntu que utilizamos para desplegar nuevas máquinas virtuales. En esa imagen hemos instalado “todo lo básico”, de modo que podemos levantar nuevas máquinas virtuales en tan solo unos minutos. Es más, hemos sido tan cuidadosos que hemos guardado la máquina virtual con una IP fija accesible mediante a un dns local con un nombre como newimage.trabesoluciones.local, y hemos escrito un script que nos permite cambiar la IP y el nombre de host de un solo golpe. Parece sencillo y práctico,…pero al desplegar la nueva máquina virtual, ésta tendrá una MAC virtualizada diferente a la que tenía cuando la guardamos, por lo que el interfaz de red utilizable ya no será ethx, sino ethx+1. Esto genera una falta de determinismo a la hora de pensar scripts, además de que a los más puristas y puntillosos puede darles un síncope cuando vean que la máquina usa eth7 como interfaz de red.
Para evitar llantos e incomodidades, el camarada farruco y yo estuvimos un rato investigando cómo funciona esta asociación mac-nombre a “bajo nivel”. El tema es un poco extenso, así que vamos a quedarnos con lo fundamental: existe un fichero llamado /etc/udev/rules.d/70-persistent-net.rules en el que se almacenan estas asociaciones mac-nombre. Editándolo podremos cambiar los nombres asociados a los distintos interfaces.
En nuestro caso, como lo único que buscamos es que el interfaz sea siempre eth0 para nuestras virtuales, la receta es tan sencilla como borrar este fichero antes de exportar la imagen virtual. Así en el primer arranque de la nueva máquina virtual se escribirá en ese fichero la asociación de la mac actual con el nombre eth0. Más fácil imposible :D
Lo sentimos, pero los comentarios están cerrados
Me ha servido de mucha ayuda, la verdad. Gracias!!!
Muchas gracias! muy util y sencillo
Y si no existe ese fichero???
como lo hago
Si no existe ese fichero es posible que no estemos hablando de ubuntu…
Saludo, estimadosimos.
Y como le hago para lo contrario de tu receta, tengo un kubunto que quiero que funcione como gateway, pero se aloca y siempre les cambia el nombre de las interfaces, un la mac A puede ser eth0 otro dia eth1 y asi, como hago para que siempre la mac A sea eth0 y la mac B eth1?
Como puedo cambiar el nombre de la interfaz de red en Solaris 10
Muchas thankius desde aCore
@Refugio: no creo que se aloque…has probado a borrar el fichero en cuestión como parte del boot del sistema?
@Jsuarez: aunque tengo el dudoso placer de usar Solaris en algún entorno de despliegue, no tengo el honor de administrar esas máquinas
@yago: me alegro de que lo que funciona en trabe también funcione en acore
muy buen aporte. seguid asi
me ayuden por favor tengo que colocar un ip publico en mi servidor , por que ahora estoy utilizando ip local cuando cambio en /etc/network/interfaces no reconoce la salida de ip publico que mas tengo que hacer.