Este documento describe como correr la imagen x86-6 de OpenWRT en MV VirtualBox, o abreviado VBox.
Necesitas la version de x86 64 bit de OpenWrt. Hay dos versiones de ella:
combined-squashfs.img.gz Esta imagen usa el diseño tradisional de OpenWrt, un sistema de archivos raiz de solo lectura squashfs, y una partición de lectura-escritura donde se almacenan las configuraciones y los paquetes que se instalan. Debido a como está ensamblada la imagen tendrás solo 230 MB de espacio de almacenamiento de paquetes adicionales y configuraciones, y Extroot no funciona.combined-ext4.img.gz Esta imagen usa una simple partición de lectura-escritura sin sistema de archivos raiz squashfs de solo lectura, el cual puedes incrementar el tamaño de la partición. Las funciones como el modo a prueba de errores restablecimiento de fabrica no estarán disponibles ya que necesitan una partición squashfs de solo lectura para funcionarEn la guía usaremos openwrt-x86-64-combined-ext4.img.gz por que tiene menos limitaciones.
gzip -d openwrt-*x86-64-combined*.img.gz.Como resultado, deberia obtener el archivo de imagen sin procesaropenwrt-x86-64-combined-ext4.img
Puedes compilar tu propia imagen (Target System → x86-64 and Target Images → Build VirtualBox image files). Necesita primero ser habilitado ext4 .
VBoxManage convertfromraw --format VDI openwrt-*x86-64-combined*.img openwrt.vdi. Esto creará el archivo openwrt.vdi que es una unidad virtual para la maquina virtual VBoxrtual drive for VBox virtual machine.
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%
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.
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.
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 Archivo → Preferencias → Red
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.
Abre las configuraciones de la MV
Selecciona la pestana Red
----
Configura el Adaptador 1:
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.
random: crng init done with OpenWrt 17.01.4). Hasta que haya suficiente entropía, SSH y otras funciones criptográficas pueden fallar.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.
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
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'
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.