abril 24, 2014

VirtualBox: Bug viejo y resabiado

Los que trabajamos con VirtualBox y lo calificamos como BBB (Bueno, Bonito y Barato), al venir de Sun y ahora de Oracle, damos por sentado que todo lo que hagan está bien.
Este virtualizador, que ha sacado a más de uno de apuros y ahorrado miles de dólares a muchas empresas, se ha convertido hoy por hoy en el virtualizador por defecto, desde principiantes o los que prueban nuevas aplicaciones para verificar su funcionamiento, hasta los profesionales que ponen a diario servidores en producción.
Sin embargo es una aplicación que no está exenta de fallas, sobre todo cuando se trata de Linux, ya que, a pesar de ser Open Source, el proyecto es manejado por Oracle, y esta empresa no es precisamente una fundación caritativa, sino una máquina de producir billetes. En ese orden de ideas, los proyectos como VirtualBox, digamos que "no son su prioridad".
La falla en concreto se viene presentando desde la versión 3.2x y consiste en que el famoso adaptador de red virtual, que crea VirtualBox por defecto durante la instalación, conocido en el mundo Linux como 'vboxnet0', desaparece literalmente de la lista de adaptadores de red (solo afecta a Linux).
ip link set vboxnet0 up
Cannot find device "vboxnet0"
Tampoco con
sudo ifconfig vboxnet0 up
vboxnet0: ERROR mientras se obtenían las banderas de interfaz: No existe el dispositivo
Verificamos... y nada. No aparece...
ip addr
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 84:8f:69:01:02:03 brd ff:ff:ff:ff:ff:ff
3: wlan3:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether b4:74:9f:03:02:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.40/24 brd 192.168.1.255 scope global wlan3
Sin embargo lo curioso es que ahí esta...
lsmod | grep vbox
vboxpci                23237  0 
vboxnetadp             25670  0 
vboxnetflt             27612  0 
vboxdrv               335254  4 vboxpci,vboxnetadp,vboxnetflt
Y cuál es el alboroto si yo inicio mi maquina virtual y funciona, sin importar que no salga
Es cierto, sin embargo para los que manejan servidores de producción, saben muy bien que una de las opciones para ponerlos en línea es habilitar un segundo adaptador de red en la VM en modo 'Adaptador sólo anfitrión' y en el nombre debe ir 'VirtualBox Host-Only Ethernet Adapter' (Windows) o 'vboxnet0' (Linux).
Esta configuración es muy importante, ya que este segundo adaptador, si se usa en modo 'Adaptador sólo anfitrión' hay que configurarlo con el rango deseado para que la LAN y el exterior (NAT) puedan acceder a los servicios del servidor; y para el caso de los Servidores Virtuales (DHCP, Samba, Proxy Squid, etc) operando sobre anfitriones basados en GNU/Linux, es de vital importancia que el adaptador vboxnet0 "aparezca".
Desafortunadamente, VirtualBox, a la fecha de este post, va por la versión 4.3x y no han corregido este bug. De acuerdo a comentarios de internet, lo solucionarán en la versión 500.2x para el año 2150. Cómo no podemos esperar tanto tiempo, he aquí la solución. Con un simple comando la creamos y listo.
vboxmanage hostonlyif create
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface 'vboxnet0' was successfully created
Y verificamos
ip link
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 84:8f:69:01:02:03 brd ff:ff:ff:ff:ff:ff
3: wlan3:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether b4:74:9f:03:02:01 brd ff:ff:ff:ff:ff:ff
5: vboxnet0:  mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
sudo ifconfig vboxnet0 up
ifconfig
eth0      Link encap:Ethernet  direcciónHW 84:8f:69:01:02:03  
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:102150 errores:0 perdidos:182 overruns:0 frame:0
          Paquetes TX:93106 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:41935516 (41.9 MB)  TX bytes:8668452 (8.6 MB)
          Interrupción:45 Dirección base: 0x8000 

lo        Link encap:Bucle local  
          Direc. inet:127.0.0.1  Másc:255.0.0.0
          ACTIVO BUCLE FUNCIONANDO  MTU:16436  Métrica:1
          Paquetes RX:3145 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:3145 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0 
          Bytes RX:498363 (498.3 KB)  TX bytes:498363 (498.3 KB)

vboxnet0  Link encap:Ethernet  direcciónHW 0a:00:27:00:00:00  
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan3     Link encap:Ethernet  direcciónHW b4:74:9f:03:02:01  
          Direc. inet:192.168.1.40  Difus.:192.168.1.255  Másc:255.255.255.0
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:22138 errores:0 perdidos:1 overruns:0 frame:0
          Paquetes TX:25930 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:8987471 (8.9 MB)  TX bytes:4470959 (4.4 MB)
Tenga en cuenta que si actualiza el kernel de Linux o la versión de Virtualbox, debe repetir este proceso.

Fuentes consultadas
VirtualBox Ticket #9820, Ticket #7067
Maravento, Actualizado en: 13:12
Escrito por: Maravento Studio
 
© 2017 Maravento. All Rights Reserved | Powered by Maravento
Design by Novatoz and Maravento | Bloggerized By LawnyDesignz
# https://github.com/google/code-prettify