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
drop sequence seq_one; create sequence seq_one start with 76000 ;
Muy útil cuando importamos dumps y no queremos que las tablas cuyos IDs se asignan utilizando secuencias empiecen a dar problemas.