Mostrando entradas con la etiqueta minicom. Mostrar todas las entradas
Mostrando entradas con la etiqueta minicom. Mostrar todas las entradas
Instalar IOS en switches Cisco desde ROM Monitor
Otra vez les traigo el resultado de un reto Cisco, en este caso, cómo instalar un IOS en un switch de la serie 2900 (seguramente funcione en otros modelos) desde el ROM Monitor. En un post anterior les mostré cómo actualizar el IOS de estos equipos, pero contando con un IOS base desde el cual hacer el trabajo. En este artículo les voy a comentar cómo instalar un IOS en un switch que no tiene ningún IOS, ya sea porque el que tenía se corrompió, o bien porque (como yo) se mandaron una cagada al intentar hacer el cambio y rompieron el IOS que tenían antes de instalar uno nuevo =P
En mi caso, el problema fue que borré el IOS que tenía instalado para hacer lugar para el que quería instalar (gracias Cisco por poner unos pocos megas mugrosos de flash!!!), y luego copié un IOS sin descomprimir (behh).

Si no tenemos un IOS en buen estado para bootear, el switch queda en el bootstrap (Cisco lo llama ROM Monitor), el cual provee una funcionalidad muy (MUY!) básica. Este bootstrap se ejecuta siempre que encendemos el switch, piensen en él como el grub de los switchs. Cuando existe un IOS booteable, el bootstrap lo carga, pero sino, quedamos atascados en este pequeño programa.

Entonces, qué hacemos?
Es claro que si no tenemos IOS, necesitamos cargar uno nuevo. Versiones modernas del ROM Monitor permiten utilizar tftp para la transferencia, o bien cargar automáticamente un IOS por tftp si dejamos pulsado el botón MODE, como vimos en el caso de los AP 1240 .
En los switchs más antiguos (como los 2900), no contamos con ninguna de las dos posibilidades, así que tenemos una sola alternativa... copiar el IOS a través de la consola usando el protocolo XMODEM.

Los pasos que describo a continuación los tomé de Recovering Catalyst Fixed Configuration Switches from a Corrupted or Missing Image, modificándolos para utilizar minicom además de Hyper Terminal.

1. Apenas iniciamos el switch, ejecutar flash_init y load_helper.
2. Ver si tenemos espacio en la flash para la nueva imagen con "dir flash:". Si no tenemos lugar, borrar la imagen vieja:
delete flash:c2950−i6q4l2−mz.121−11.EA1a.bin
3. Copiar la nueva imagen utilizando xmodem. Para ello, en el switch ejecutamos el comando:
copy xmodem: flash:c2950−i6q4l2−mz.121−13.EA1.bin
Si estamos utilizando minicom para la conexión con el switch (ver Acceder dispositivos Cisco desde GNU/Linux con minicom), el siguiente paso es ejecutar:
- CTRL-A y luego Z, para entrar a las opciones de minicom
- S para elegir la opción "send file"
- elegimos la opción xmodem, con lo cual se nos abrirá un navegador de archivos. En este navegador buscamos el archivo con la imagen del IOS, lo seleccionamos con la barra espaciadora y le damos Okay y luego enter.
Si, en cambio, utilizan Hyper Terminal:
- Vayan al menu "Transfer -> Send File"
- escriban el path a la nueva imagen, o bien busquenla utilizando la opción "Browse".
- elijan la opción Xmodem en la sección "Protocol" de la ventana y aprieten "Send" para enviar el archivo.
4. Cuando se complete la transferencia, ya tendremos la nueva imagen en la flash. Tengan en cuenta que la transferencia por xmodem es asquerosamente lenta!!! tardé cerca de una hora para copiar 1MB! así que tengan paciencia jeje
Lo que hacemos a continuación es bootear la nueva imagen utilizando el comando:
boot flash:c2950−i6q4l2−mz.121−13.EA1.bin

Ahora si, hemos convertido un switch pisa papeles (el clásico stoned) en uno utilizable. Espero que les sirva!
Acceder dispositivos Cisco desde GNU/Linux con minicom
Cuando necesitamos configurar un dispositivo al cual debemos acceder por una conexión serie, debemos tener un programa que emule una terminal. El clásico ejemplo son los dispositivos Cisco (routers, switchs, access points, etc), para los cuales, si bien muchas veces cuentan con configuración por Web, no hay nada más flexible que el acceso por consola.

La terminal que trae Windows (HyperTerminal) es, increíblemente, bastante buena y fácil de configurar. Pero nosotros utilizamos GNU/Linux y necesitamos una alternativa. Si bien existen alternativas gráficas como gtkterm o cutecom, siempre es conveniente conocer un programa que funcione por consola, y en este caso contamos con minicom. Si no cuentan con minicom, lo pueden instalar con un simple:
# apt-get install minicom
o bien
# yum install minicom
A primera vista minicom es totalmente arcaico y complicado de configurar (a segunda vista también =P), pero una vez que lo configuramos, no necesitamos tocarlo y funciona perfectamente.
Para poder configurar la conexión, necesitamos saber cuál es el dispositivo asociado a nuestro puerto serie. Esto lo podemos ver ejecutando dmesg:
$ dmesg | grep tty
Por si nunca configuraron una conexión a dispositivos Cisco, les comento que tiene las siguientes características:
- 8 bits de datos
- sin paridad
- 1 stop bit
- sin control de flujo
Las opciones de minicom se pueden acceder ejecutando CTRL+A Z (CTRL+A y luego pulsar Z). Las que seguramente les interesarán son:
- O para configurar minicom
- X para salir y resetear
- Q para salir sin resetear la conexión
- C para limpiar la pantalla
Una vez que sabemos qué dispositivo utilizar y las características de la conexión, podemos configurar minicom. Se puede acceder a la configuración de dos formas:
opción 1:
# minicom -s (usar la opción "-c on" si queremos la terminal con colores)
opción 2:
# minicom
CTRL+A Z O (entramos a la opción de configuración desde minicom)
Ya en el modo configuración, debemos ir a la opción "Serial port setup" y realizar los siguientes pasos (la letra indica la opción elegida):
- con A configuramos el path al dispositivo (obtenido con dmesg, puede ser algo como /dev/ttyS0)
- con E entramos a la configuración de la conexión, donde usamos las siguientes letras:
- C para elegir la velocidad de 9600bps
- Q para elegir 8 bits de datos, paridad none y 1 bit de parada. Esto también se puede configurar eligiendo las siguientes opciones por separado:
- L para elegir paridad none
- V para 8 bits
- W para 1 bit de stop
- con F ponemos en "No" el control de flujo por hardware.
Una vez que terminamos, elegir "Save as dfl" para guardar la configuración como default.

Eso es todo. Ahora al enchufar un dispositivo y ejecutar minicom veremos la consola y podremos configurar el equipo. Para salir, apretamos CTRL+A Z Q.


Referencias
- Linux / UNIX minicom Serial Communication Program
- How to connect to Cisco routers using Minicom