Table of Contents

Como correr OpenWrt en VirtualBox

Este documento describe como correr la imagen x86-6 de OpenWRT en MV VirtualBox, o abreviado VBox.

Pre requisitos

Selecciona una imagen OpenWrt

Necesitas la version de x86 64 bit de OpenWrt. Hay dos versiones de ella:

En la guía usaremos openwrt-x86-64-combined-ext4.img.gz por que tiene menos limitaciones.

Imagenes Personalizadas

Puedes compilar tu propia imagen (Target System → x86-64 and Target Images → Build VirtualBox image files). Necesita primero ser habilitado ext4 .

Convierte openwrt.img a unidad VBox

Error

Si recibes un error similar a:

VBoxManage: error: VD: The given disk size 19444018 is not aligned on a sector boundary (512 bytes)
VBoxManage: error: Error code VERR_VD_INVALID_SIZE at /Users/vbox/tinderbox/5.1-mac-rel/src/VBox/Storage/VD.cpp(7002) in function int VDCreateBase(PVBOXHDD, const char *, const char *, uint64_t, unsigned int, const char *, PCVDGEOMETRY, PCVDGEOMETRY, PCRTUUID, unsigned int, PVDINTERFACE, PVDINTERFACE)
VBoxManage: error: Cannot create the disk image "openwrt.vdi": VERR_VD_INVALID_SIZE


Es posible que debas rellenar la imagen dd if=openwrt-x86-64-combined-ext4.img of=openwrt.img bs=128000 conv=sync y use la imagen rellenada de entrada para VBoxManage convertfromraw.

$ VBoxManage modifymedium openwrt.vdi --resize 128
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Configuración VM en VirtualBox

Creación de VM

:!: Tutorial y capturas de pantalla desde VirtualBox 5.1.8 en un equipo anfitrión GNU/Linux , en Windows o macOS el equipo anfitrión habrán algunas diferencias cosmeticas entre sistemas operativos (una barra superior diferente) pero los paneles y botones de VirtualBox serán exactamente los mismos

Inicia VirtualBox y has clic en Nuevo para agregar una Maquina Virtual (MV)


Elige un Nombre para tu maquina virtual, elige Linux para Tipo, y Linux 2.6 / 3.x / 4.x (64-bit) para la Version, después has clic en Siguiente.


OpenWrt funcionará bien con mucha menos RAM de la cantidad recomendada, 128MiB será suficiente.


Elige Usar un archivo de disco duro existente , has clic en el icono archive para abrir Virtual Media Manager, has clic en Agregar y luego elige tu archivo openwrt.vdi usando la ventana de elección de archvio. Has clic Crear para finalizar este procedimiento.


:!: Se recomienda colocar la imagen del disco en un lugar permanente antes de enlazarlo con VBox. Si lo mueves después, VBox ya no lo encontrará y se quejará de este problema en el proximo inicio (o cuando intentes reiniciar la MV). Se ofrecerá un procedimiento guiado para vincular la imagen del disco nuevo, así que no te preocupes.

Configuración de la MV

Esta parte de la configuracion se ocupará de configurar la red manualmente.
La configuración que va a configurar siguendo este tutorial es:

Tenga en cuenta que el orden del Adaptador solo-anfitrión como “Adaptador 1” y “NAT” como “Adaptador 2” es importante para una operación como llave de seguridad de OpenWrt en la MV. Si bien se puede configurar mediante la consola, la configuración de esta manera simplifica el acceso a una configuración en ejecución.

Ajustes de Virtualbox

Adaptador de Red solo-anfitrión

Primero debemos asegurarnos de que haya un adaptador de red solo-anfitrión y que tenga la configuración correcta.
Nota: esto se encuentra en VBox 6.0 (al menos para Windows) en Herramentas y está pre-configurada.


Has en la pestaña clic en ArchivoPreferenciasRed
En macOS, ésta configuración se puede encontrar en Archivo > Administrador de Red anfitrión...


Has clic en la pestaña de Red solo-anfitrion y luego si no se vé vboxnet0 hags clic en el icono + a la derecha de la ventana para agregar una nueva.
Ahora seleccione la entrada vboxnet0, y haga clic en el icono del destornillador a la derecha para abrir su configuración.


La Dirección IPv4 debe de ser 192.168.56.1, la Mascara de Red IPv4 debe de ser 255.255.255.0,la Dirección IPv6 debe de estar vacía y la Mascara de Red IPv6 debe de ser 0


(opcional)También puedes configurar el servidor DHCP como se muestra en la captura de pantalla si deseas tener direcciones dinámicas para la MV, pero para este tutorial no es necesario, ya que configuramos la IP estática en la propia MV.


Presiona OK para guardar y cerrar hasta que vuelva la Interfaz del Gestor de VirtualBox.

Configuraciones de Red

Abre las configuraciones de la MV


Selecciona la pestana Red ---- Configura el Adaptador 1:

  1. con Adaptador solo-anfitrion
  2. Selecciona vboxnet0 (adaptador ) como Nombre
  3. Has clic en Avanzado y en Tipo de Adaptador selecciona Intel PRO/1000 MT Desktop
  4. Modo promiscuo debe estar establecido en Denegar a menos que tenga razones para habilitarlo.

Configuraciones de la Maquina Virtual

:!: Debido a las limitaciones, el teclado en el terminal de la maquina virtual está configurado en EE.UU, Por lo que algunas (o la mayoria) de sus teclas pueden no escribir los simbolos marcados en las teclas.
Además, debido al hecho de que lo que ve es un terminal de maquina limpia y no algo como un programa SSH (Putty/Kitty/cualquier otro) o un programa emulador de terminal, no puedes copiar-pegar en él.
No te preocupes, la mayor parte de la configuración se realizará después de que te conectes por SSH(terminal remota) que no tiene ninguno de estos problemas.
Mira esta distribución de teclado de EE.UU. Para encontrar que botón debes presionar en tu teclado para generar el simbolo correcto.


  1. Arranca tu Maquina Virtual
  2. Espera 4 segundos para que el GRUB arranque automaticamente
  3. Presiona Enter para activar la consola cuando los mensajes de inicio hayan terminado de desplazarse. La entropia puede tardar 2 o 3 minutos en generarse (random: crng init done with OpenWrt 17.01.4). Hasta que haya suficiente entropía, SSH y otras funciones criptográficas pueden fallar.
  4. Mostrar la configuración de red actual
    root@openwrt:~# uci show network
    network.loopback=interface
    network.loopback.ifname='lo'
    network.loopback.proto='static'
    network.loopback.ipaddr='127.0.0.1'
    network.loopback.netmask='255.0.0.0'
    network.globals=globals
    network.globals.ula_prefix='fd1b:e541:8f1a::/48'
    network.lan=interface
    network.lan.type='bridge'
    network.lan.ifname='eth0'
    network.lan.proto='static'
    network.lan.netmask='255.255.255.0'
    network.lan.ip6assign='60'
    network.lan.ipaddr='192.168.1.1'
    network.wan=interface
    network.wan.ifname='eth1'
    network.wan.proto='dhcp'
    network.wan6=interface
    network.wan6.ifname='eth1'
    network.wan6.proto='dhcpv6'

Tenga en cuenta que la dirección LAN predeterminada en el primer arranque es 192.168.1.1.

  1. Edita la configuración de red para permitir el acceso SSH escribiendo estos comandos y presionando Enter:
    1. uci set network.lan.ipaddr='192.168.56.2'
    2. uci commit
    3. reboot
  2. Ahora tu MV deberia de ser accesible desde SSH, usuario root (sin contraseña) dirección 192.168.56.2
  3. Después de que hayas conectado correctamente, podremos hacer la verdadera configuración, por favor copia y pega el siguiente bloque de codigo y presiona Enter:
    uci batch <<EOF 
    set network.mng=interface 
    set network.mng.type='bridge' 
    set network.mng.proto='static'
    set network.mng.netmask='255.255.255.0'
    set network.mng.ifname='eth0'
    set network.mng.ipaddr='192.168.56.2'
    delete network.lan
    delete network.wan6
    set network.wan=interface
    set network.wan.ifname='eth1'
    set network.wan.proto='dhcp'
    EOF
  4. Ahora escribe uci changes para revisar si los ajustes de configuración fueron cargados correctamente. Si ves lo siguiente (the network.mng las entradas deben de ser las mismas que las que se muestran aquí, el network.wan podría ser ligeramente diferente),todo ha ido bien
    root@openwrt:~# uci changes
    network.mng='interface'
    network.mng.type='bridge'
    network.mng.proto='static'
    network.mng.netmask='255.255.255.0'
    network.mng.ifname='eth0'
    network.mng.ipaddr='192.168.56.2'
    -network.lan
    -network.wan6
    network.wan='interface'
  5. Si todo está bien guarte la configuración con uci commit && reboot, Si no todo está bien, escribe reboot para borrar los cambios temporales y encontrar una manera de establecer la configuración anterior manualmente.
  6. Cierra y abre de nuevo la terminal SSH cuando la MV haya reiniciado, con los mismos parámetros de conexión (usuario root y 192.168.56.2)
  7. Ahora deberías tener acceso a internet (prueba un opkg update) Y una interfaz de administración con una dirección estática a la que puedes conectar tu programa cliente de SSH incluso si tu PC está desconectada de una red local.
  8. Lo opcional Adaptador Puente en Adaptador 3 no es crucial para funcionalidades básicas y también es específico para sus propios parámetros de red local. En mi propia red (y en la mayoria de las redes domésticas) funcionaria bien si escribes
    uci batch <<EOF 
    set network.lan=interface
    set network.lan.ifname='eth2'
    set network.lan.proto='dhcp'
    EOF
    uci commit


    Si tu tienes requerimientos más complejos tendrás que configurarlos por tu cuenta leyendo la documentación o por medio de luci.

  9. Ahora puedes instalar paquetes a esta imagen de manera normal, probablemente querras instalar luci, escribe opkg update && opkg install luci, luego puedes conectarte a luci de la MV escribiendo 192.168.56.2 en la barra de direcciones de tu navegador o haciendo clic en este link para ir.

Solución de problemas

Arrancar VirtualBox automaticamente al iniciar Windows

Ver también