4 de octubre de 2012

Juniper y Olive: Una historia de amor y odio

En esta entrada voy a comentar brevemente el procedimiento para la instalación del software JunOS en un sistema FreeBSD usando Qemu como motor de virtualización, además de algunas anécdotas y curiosidades de dicha instalación.

Por empezar por algún sitio pongámonos en situación explicando quién es el protagonista de esta entrada. Olive es una instalación modificada del software desarrollado por la compañía Juniper Networks dedicada ésta al mundo de las telecomunicaciones. Fundada tan solo en 1996, en pocos años han sabido desarrollar software de calidad haciendo ferrea competencia a la gran Cisco Systems.

En realidad, el software realizado por dicha compañía se trata de una serie de shell scripts empaquetados y comprimidos con tar y gzip (.tgz) e instalados con la aplicación pkg_add en un sistema FreeBSD. En realidad dicha aplicación necesita una serie de ficheros como un comentario, archivos de contenido, instalación/desinstalación del paquete, etc.

Olive existe porque Juniper lo permite, aunque su postura oficial es que no existe y es una plataforma no soportada ni soportable que hace uso de software ilegal. Es fácil encontrar hilos del foro oficial de la compañía en los que se informa que dicha plataforma no está soportada e incumple las condiciones de licencia de su software. Recuerda usar esta información con responsabilidad:
Please do not abuse this feature by doing stupid things like contacting JTAC for support on an Olive, or selling illegal copies of the software as "router simulators". This type of activity is likely to have serious legal consequences and/or provoke a justified response from Juniper, so just don't do it.
¿Cómo comenzó todo esto? Un buen día algún hacker descubrió la manera de instalarlo y la compartió con el resto de la comunidad. Posteriormente se añadió un binario que comprueba la existencia de los módulos de red que Juniper utiliza en sus equipos, checkpic.

¿Y cómo se realiza la instalación?. Incialmente descomprimimos el fichero firmado (signed) y sin firmar

 

Y por último el paquete pkgtools.tgz dónde dentro del directorio bin/ encontramos el fichero checkpic citado anteriormente. Éste será reemplazado por /usr/bin/true que siempre devolverá 0.


Comprimiremos primero el contenido de la carpeta pkgtools/ así como el contenido del fichero sin firmar que descomprimimos anteriormente. El fichero que creemos será el que utilizaremos para instalar Olive.

Una vez copiados los archivos debemos reiniciar el sistema para que la instalación se complete borrándose los ficheros de arranque normales del sistema, por lo que si no dejamos que se complete no podremos volver a arrancar el equipo. Otra de las características del proceso de instalación es que necesitamos una conexión serial para completarla por lo que apagaremos la máquina virtual antes de pasar al siguiente paso (halt).


Si reiniciamos el equipo sin contar con una conexión serial, desde la ventana de Qemu no veremos nada. Por lo que añadiremos algunas opciones al comando para crearlas, por ejemplo conexiones telnet o la salida estándar de la consola (stdio).


Tras la instalación del software se reiniciará automáticamente el equipo completándose el proceso.


Nos logeamos con el usuario root sin contraseña para acceder al sistema y con cli para comprobar el software que tenemos instalado.

 

Luego añadieron al instalador una nueva función llamada platform_check con la que comprobar el RE (Routing Engine) del dispositivo a través de consultas sysctl. Modificando la variable re_model y gracias a la ayuda de Juniper podemos realizar la instalación.


Igualmente, deberemos sustituir el binario checkpic y comprimir el contenido del paquete sin firmar que descomprimimos para crear el instalador de Olive.


Tras el reinicio correspondiente podemos logearnos correctamente en el sistema y comprobar la versión que tenemos instalada.


Igualmente funciona para versiones más recientes como la 9 o la 12

 

En este punto hay que decir que en las nuevas versiones de JunOS, durante el proceso de instalación monta el directorio /tmp en la memoria RAM por lo que debemos aumentar la memoria de la máquina virtual hasta 1024M. En caso contrario la instalación quedará colgada y no finalizará.


No se el por qué pero durante el arranque del sistema recibo un error panic que no he conseguido solucionar. Igualmente me pasa al utilizar algunas versiones ya creadas de Olive descargadas de Internet.


Comentar que he intentado solucionar el error desactivando el software watchdog pero no ha funcionado. Además la información que he encontrado en el foro de GNS3 tampoco me ha sido de mucha ayuda.

Enlaces:

http://en.wikipedia.org/wiki/Juniper_Networks
http://juniper.cluepon.net/index.php/Olive
http://blog.gns3.net/2009/10/olive-juniper/
http://brezular.wordpress.com/2012/07/03/installing-olive-12-1r1-9-under-qemu/

Un saludo, Brixton Cat.

No hay comentarios:

Publicar un comentario

Bienvenid= si quieres dejar un comentario