jueves, 21 de mayo de 2009

Instrucciones para "plantar un Olivo"

Algunos/as de los que lean estas líneas, conocerán o habrán oído hablar de la existencia de un "emulador" de routers Juniper... "Olive". Pues bien, efectivamente existe, pero no es un emulador en si, si no el software JUNOS corriendo en un PC con especificaciones similares a las de la Routing Engine de un router Juniper sin PFE (forwarding engine).

Surge principalmente como plataforma de desarrollo software, nunca ha sido pensado como un simulador, nunca ha sido soportado ni enfocado al uso publico... en definitiva, para Juniper no existe.

Para los que deseen mas informacion, recomiendo este enlace: http://juniper.cluepon.net/index.php/Main_Page

¿Y para que sirve esto? Pues personalmente no creo que debido a este post, nadie deje de comprar un router a Juniper y pretenda montarse un ISP a partir de esta guia... supongo que sera util a aquellos/as interesados en familiarizarse con la interfaz de JunOS, realizar pruebas o preparar alguna certificacion.

Antes de continuar solo dejar claro algunos puntos:

No soy especialista en la electrónica de Juniper. Mi experiencia con este fabricante se reduce a hace un par de meses que empecé a tocar un switches de la familia EX para unas pruebas de integración. Como casi todo el hardware de Juniper, corren JunOS, y reconozco que me impresiono su flexibilidad y versatilidad.

No dispongo de imagenes de JunOS, aquel que este interesado en probar esto, deberia saber como conseguirla.

Esta quia de instalacion, es para una maquina virtual con Qemu sobre Windows, pero existen otras alternativas, como VMware, o directamente sobre un PC con FreeBSD.

Basicamente esto es la traducción libre de un artículo muy completo de Himawan Nugroho que se puede encontrar en el siguiente enlace... en ingles, of course :-)


Bueno, al lio... Pasos para la instalación:

1. Descargar la última versión de Qemu para Windows.

La Web de Qemu esta aqui. La versión de Qemu para Windows se puede descargar de aqui. La versión que he probado yo es 0.9.1. Descomprimir el fichero en un directorio local.

2. Descargar el software OpenVPN para crear un interfaz TAP.

Este es un interfaz virtual que será usado por JunOS como interfaz de gestión (fxp) permitiendo que Windows y Olive se comuniquen por el enlace virtual. La versión probada en esta caso es la OpenVPN 2.0.9 para Windows. Durante la instalación seleccionar solo ‘TAP-Win32 Virtual Ethernet Adapter’. Posteriormente podremos crear interfaces TAP adicionales.

3. Descargar la imagen de FreeBSD 4.4 mini ISO

JunOS se instalará posteriormente sobre FreeBSD.

4. Conseguir una imagen de JunOS.

Yo he probado con una 7.4R1.7. Posteriores versiones pueden requerir algún paso adicional. Por otro lado, versiones especificas para routers de la serie J en teoría (yo no lo he comprobado) chequean el hardware y no funcionan.

5. Descargar la versión modificada de Qemu, llamada Jqemu.

Guardarlo en la misma carpeta en la que se descomprimió Qemu. Jqemu es la versión de Qemu que proporciona el driver para la tarjeta de red virtual Intel i82559er.

6. Crear la imagen de FreeBSD/Olive.

Desde una ventana de DOS ejecutar el siguiente comando para asignar 3 Gigas a la imagen:

C:\qemu>qemu-img.exe create olive.img -f qcow2 3G
Formating 'olive.img', fmt=qcow2, size=3145728 kB

7. Guardar la imagen de ‘FreeBSD mini ISO’ en la misma carpeta que Qemu, y ejecutar el siguiente comando para arrancar FreeBSD desde la imagen.

C:\qemu>qemu.exe -L . -m 256 -hda olive.img -cdrom 4.4-mini.iso -boot d –localtime

Se abrirá una ventana de Qemu:

Dejar que se inicie la instalación de FreeBSD, y según las instrucciones del menú, seleccionar la instalación estándar y seguir los siguientes pasos:

- Saltar la configuración de Kernel
- Escoger instalación estándar

- En la pantalla de ‘fdisk’, pulsar “A“ para asignar todo el disco (los 3 gigas de la imagen) para BSD
- Seleccionar: ‘Install a standard MBR’
- Crear 4 particiones (pulsando “C”):
  • 512M con punto de montaje: /
  • 1024M para partición swap
  • 128M con punto de montaje: /config
  • El resto para una partición con punto de montaje: /var
- Seleccionar el tipo de instalación: ‘User’, y seleccionar “No” para ‘FreeBSD ports’
- Pulsar “X” para salir del menú e instalar desde CD/DVD
- Esperar hasta que termine

- Seleccionar "No" en las sucesivas pantallas (‘Ethernet/SLIP config’, ‘gateway’, ‘inetd’, ‘FTP’, ‘NFS’, ‘security’, ‘console’, ‘linux compatibility’, ‘set time’, etc…)
- Pulsar “X” para salir del menú
- Seleccionar “No” para ‘Browse FreeBSD package collection and initial user account’
- Fijar una password para root
- Seleccionar “No” para ‘Chance to set any last options’
- Pulsar “X” para salir de la instalación, lo que hará que se reinicie.
- Mientras reinicia, salir de Qemu pulsando Ctrl + Alt + 2, lo que nos mostrara un prompt, ejecutar "quit" para salir.

8. Transferir el paquete de JunOS desde Windows

En este punto, ya esta instalado FreeBSD y estamos en Windows. Ahora vamos a transferir JunOS desde Windows a nuestra maquina virtual BSD, por lo que necesitamos que esta disponga de un interfaz que podamos usar para conectarnos por ejemplo vía FTP.

Suponemos que, en Windows, hemos creado un interfaz virtual Tap que llamamos "tap1". A través del panel de control, modificar la configuración del interfaz, y le asignamos una dirección de red en una subred distinta a otras que tengamos configuradas (por limpieza) por ejemplo 10.1.1.1/8.

Arrancamos Qemu pero a través del ejecutable Jqemu, con las opciones para incluir el interfaz de red i82559er, MAC asignada y vincular la tarjeta de red al interfaz tap1:

C:/qemu>jqemu.exe -L . -m 256 -hda olive.img -localtime -net nic,vlan=1,macaddr=00:aa:00:00:01:01,model=i82559er -net tap,vlan=1,ifname=tap1

- Acceder a FreeBSD como root
- Configurar un interfaz fxp0 con una dirección en la misma subred que el interfaz tap1

#ifconfig fxp0 up 10.1.1.2

Asegurarse de que existe conectividad entre el interfaz tap1 de Windows y el interfaz fxp0 de FreeBSD

- Hacer ping a 10.1.1.1 desde la maquina virtual FreeBSD


Una vez verificada la conectividad, vía FTP transferimos el fichero JunOS desde Windows (no olvidar disponer de un servidor FTP):

#cd /var/tmp
#ftp 10.1.1.1

Fijar el tipo de transferencia a binario y hacer un get del fichero JunOS (jinstall-xxx.tgz).

9. Instalar JunOS

Para versiones >= 7.4, consultar aqui. De lo contrario, ejecutar el siguiente comando:

#pkg_add /var/tmp/jinstall-8.3R2.8-export-olive.tgz

Una vez finalizado solicitará reiniciar para continuar la instalación. Pues se reinicia:

#reboot

Mientras reinicia, salir a Qemu con Ctrl + Alt + 2 y ejecutar quit.

10. Accediendo a Olive por primera vez

Para acceder a JunOS lo tendremos que hacer por la consola Serial. Para ello iniciar Qemu redireccionando la salida a un puerto serie emulado por el puerto TCP local 1001.

C:\qemu>jqemu.exe -L . -m 256 -hda olive.img -serial telnet::1001,server -localtime -net nic,vlan=1,macaddr=00:aa:00:00:01:01,model=i82559er -net tap,vlan=1,ifname=tap1

Se abrirá una ventana de Qemu esperando conexión por el puerto TCP 1001.

- Desde una ventana de DOS o cualquier terminal hacer telnet al localhost por el puerto 1001



Si todo ha ido bien, se observara el proceso de instalación hasta que reinicie cuando haya finalizado.

- Una vez ha finalizado el la instalación de JunOS, accederemos a Olive por primera vez con usuario root y sin password.

Desde el prompt de BSD, ejecutar 'cli' para saltar al prompt de JunOS

root@%cli
root>edit
[edit] root#

- Asignar una password de root y a continuación asignar la dirección IP 10.1.1.2/8 al interfaz fxp0

[edit] root#set system root-authentication plain-text-password
New password:
Retype new password:
[edit] root#set interface fxp0 unit 0 family inet address 10.1.1.2/8 [edit] root#commit
commit complete

En este punto, debería existir conectividad entre el interfaz fxp0 de Olive al interfaz tap1 de Windows.

11. Para finalizar podemos instalar Kqemu para mejorar el rendimiento:

- En caso de Windows Vista, descargar Kqemu desde aqui, y ejecutar el instalador.
- En caso de Windows XP, descargar Kqemu desde aqui, descomprimir la carpeta, abrirla, localizar el fichero kqemu.inf, y con el botón derecho del ratón seleccionar 'instalar'.
- Desde una ventana de DOS abierta como Administrador ejecutar 'net start kqemu'

C:\>net start kqemu
The KQEMU virtualisation module for QEMU service was started successfully.

Ahora se puede iniciar Olive usando Jqemu con la opción 'kernel-kqemu':

C:\qemu>jqemu.exe -L . -m 256 -hda olive.img -serial telnet::1001,server -kernel-kqemu -localtime -net nic,vlan=1,macaddr=00:aa:00:00:01:01,model=i82559er -net tap,vlan=1,ifname=tap1

1 comentario: