18 abril, 2024
Preparando un laboratorio sobre Ubuntu LTE 12.04.5,  y VM VirtualBox, necesitaba clonar una máquina que ya funcionaba.
 
En la preparación de la clonación, se le indicó que reseteara las mac address, pero al arranque de esta nueva máquina, no disponía de IP, y por lo tanto los servicios de server DHCP y DNS, no arrancaban.
 
     Al realizar un ifconfig, mostraba solamente la ip de loopback, pero ni rastro de tarjetas.
lo        Link encap:Bucle local
          Direc. inet:127.0.0.1  Másc:255.0.0.0
          Dirección inet6: ::1/128 Alcance:Anfitrión
          ACTIVO BUCLE FUNCIONANDO  MTU:65536  Métrica:1
          Paquetes RX:45 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:45 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0
          Bytes RX:3200 (3.2 KB)  TX bytes:3200 (3.2 KB)

 La configuración de /etc/network/interfaces, mostraba eth0 y eth1 con sus IP estáticas.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.110
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1

# segunda interface
auto eth1
iface eth1 inet static
        address 192.168.56.201
        network 192.168.56.0
        netmask 255.255.255.0
        broadcast 192.168.56.255
        dns-nameservers 192.168.56.201
 # gateway
 # dns-nameservers
¿El problema?
 
     Cuando hemos creado el clon, hemos efectuado un reset de mac adress, (que no podría ser de otra manera, ya que que no pueden haber dos tarjetas con la misma mac address en la misma red), con lo que le hemos dicho al sistema, que las dos tarjetas del anfitrión, para esta máquina, tengan una mac diferente.
 
     Lo que ocurre es que al arrancar, ubuntu, detecta dos nuevos subsystems PCI con diferente mac address, pero la misma posición en el  bus PCI virtual, para que se vea mejor, Ubuntu ha detectado esto:
# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:03.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:e2:62:b0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 


# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:08.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:86:74:da", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" 


# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:03.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:6c:7b:ed", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" 


# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:08.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:9f:d0:a3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
 Dos tarjetas virtuales/físicas en la posición 0000:00:03.0 y 0000:00:08.0, pero 4 macs diferentes, la la posición :03.0 las 08:00:27:e2:62:b0 y 08:00:27:6c:7b:ed, y para la posición :08.0 las mac 08:00:27:86:74:da y 08:00:27:9f:d0:a3.

     Como por defecto, Ubuntu realiza la acción de añadir estos dos últimos subsystems que ha detectado, nos encontramos, que durante el solapamiento, desaparecen las interfaces eth0 y eth1, y predominan la eth2 y eth3, que no tenemos configuradas en /etc/network/interfaces.
 
     ¿La solución?
 
     La solución obvia, es que Ubuntu, no tenga referencia a las dos primeras posiciones que son heredadas de la máquina virtual de origen, y renombrar las nuevas de eth2 y eth3 a eth0 y eth1 respectivamente.

      VM VirtualBox solución a la duplicidad de tarjetas.

 
      Hagamos una copia de seguridad del fichero a editar:
# cd /etc/udev/rules.d
# sudo cp 70-persistent-net.rules 70-persistent-net.rules.bak

 Vamos a reasignar las tarjetas:

# sudo nano /etc/udev/rules.d/70-persistent-net.rules

Eliminamos las dos primeras referencias y dejamos la dos últimas, renombrando a eth0 y eth1:

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:03.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:6c:7b:ed", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:08.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:9f:d0:a3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Salvamos y hacemos un reboot del sistema.
 
     Una vez cargado el sistema, veréis como todo funciona correctamente.
 
     Si por ejemplo, lleváis arrastrando este problema hace tiempo, y por ejemplo, vuestras tarjetas apuntan a eth11 y eth12, y ya habéis comenzado a configurar servicios, recordar que debéis cambiar la config de /etc/network/interfaces para que apunten a eth0 y eth1 y no a las antiguas eth11 y eth12.
     Otra cosa a considerar es que el web server, DNS y DHCP, y otros servicios dependientes de su asignación a una interface, tenga el bind sobre las nuevas tarjetas eth0 y eth1 y remováis las referencias a eth11 y eth12.

     Espero os sea de utilidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies