Switch ATM

De WikiEtl
Saltar a: navegación, buscar

Información sobre los equipos

En el departamento disponemos de 2 conmutadores ATM: ForeRunnerLE 155 y ForeRunnerLE 25 (el número indica la velocidad máxima que soporta en Mbps).

En el rack del centro de cálculo los tenemos colocados en este orden:

ForeRunnerLE 25Mbps
ForeRunnerLE 155Mbps

Como vemos, el frontal de cada máquina se divide en cuatro grupos de interfaces (A,B,C y D). Cada puerto lleva asociado un led de estado: verde (si se recibe tráfico ATM correctamente), rojo (si falta la señal portadora) y amarillo parpadeante (si el puerto recibe alarmas SONET). Además, en el lado izquierdo, tiene un puerto serie RS-232 (el cual usaremos para cargar el firmware) y un botón de reset. Los dos leds del frontal: S1 (led que indica el estado del software) y S2 (led que indica el estado de la energía en el equipo) nos sirven para conocer el estado en que se encuentra el equipo. Posibles estados de los leds:

LED S1 - Software

          Verde fijo -> El software funciona con normalidad.
          Apagado    -> El sofware (firmware), no está bien cargado (normalmente porque la flash está corrupta).
          Rojo parpadeando -> Durante el arranque del equipo parpadea en rojo, y una vez finalizado el arranque, se queda fijo en color verde.
                              Si se quedase parpadeando en color rojo, quiere decir que el contenido de la memoria flash está corrupto.

LED S2 - Energía

          Verde fijo -> El equipo recibe corriente eléctrica correctamente.
          Sin luz    -> El equipo no recibe suficiente corriente eléctrica.

Internamente, cada conmutador cuenta con un SCS (Switch Control Software) que se encarga de controlar los puertos y gestionar cada una de las comunicaciones que pasan a través del equipo. Para gestionar este elemento, se hace a través de la interfaz AMI (ATM Management Interface): un intérprete de comandos que nos permitirá gestionar la configuración del equipo. La configuración de los canales ATM y puertos, se almacena en lo que se conoce como CDB (Configuration Data Base).

Normalmente el firmware del equipo (llamado ForeThought), carga la AMI desde la memoria flash durante el arranque. Sin embargo, si el equipo permanece apagado durante un tiempo prolongado, el contenido de la memoria flash se pierde y es necesario volver a cargar todo el software de forma manual; como se explica a continuación.


Conexión con el switch ATM vía puerto serie

Para conectarnos con el switch necesitamos un ordenador con puerto serie DB9 macho, un cable serie modem nulo de DB9 hembra a DB9 hembra y un programa emulador de terminal, con soporte para el protocolo de transferencia de ficheros X-Modem. En nuestro caso, usaremos el programa "Minicom" desde un equipo con Linux (también se podría hacer desde un equipo en Windows, con Hiperterminal):

sudo apt-get install minicom lrzsz
DB9 macho
Cable serie modem nulo


  • NOTA: al instalar el minicom, hay que instalar también el paquete con las utilidades para enviar y recibir con X-Modem, llamado "lrzsz":
apt-cache show minicom
Package: minicom
Priority: optional
Section: comm
Installed-Size: 1144
Maintainer: Martin A. Godisch <godisch@debian.org>
Architecture: i386
Version: 2.3-1
Depends: libc6 (>= 2.7-1), libncurses5 (>= 5.6+20071006-3)
Recommends: lrzsz

Hay que tener cuidado también, con los permisos que tiene asignado el propio puerto serie dentro del sistema (/dev/ttyS0).


Después de conectar el PC al switch ATM mediante el cable serie, tenemos que ejecutar el programa Minicom:

miguelb@desktop:~$ minicom -s
Configuración del puerto serie
Configuración recomendada

Con la opción -s, nos saldrá un menú que nos permite configurar el programa. En concreto, a nosotros nos interesa el apartado "Configuración del puerto serie". En la imagen de la derecha, se muestra la configuración que debemos usar (9600 8N1):

Puerto serie: /dev/ttyS0

Velocidad: 9600Bps

Paridad: No

Datos: 8 bits

Parada: 1 bit

Sin control de flujo por Hardware

En el caso de que no funcione sin flujos, activar Control de flujo por Software


Después volvemos al menú de configuración y seleccionamos "Salvar configuración como dfl". Ahora ya sólo nos queda seleccionar "Salir" y el programa se conectará al switch con la configuración que le hemos puesto antes. Debería salir algo parecido a la siguiente pantalla:

Conexión con éxito
  • NOTA: no tiene porque salir exactamente el mismo mensaje; ya que si el firmware esta corrupto en la flash, sólo nos aparecerá un prompt:
Switch Control Processor CF-16 Oct 30 1996
Copyright 1995, FORE Systems, Inc.
Copyright 1992, Intel Corporation
=>

Arranque del firmware desde el puerto serie

Si el contenido de la memoria flash se corrompe, el equipo ya no puede arrancar desde la flash. Para comprobar que ocurre eso mismo, una vez conectados al switch ATM, ejecutamos el comando boot-flash:

=>boot-flash
Attempting flash boot...
Decompressing...
Decompression Errot: invalid compressed data--crc error
Error Decompressing
SCP Debug Monitor

Cuando suceda esto, tendremos que cargar el firmware vía puerto serie. Con esto conseguiremos cargarlo en memoria y ejecutarlo, pero después deberemos grabarlo en la memoria flash, si queremos que persista tras un reinicio del equipo.

Primero deberemos conseguir los ficheros del propio firmware. Antiguamente se conseguían en la web del fabricante (ftp.fore.com); pero como dejó de existir, están subidos en la propia wiki directamente. Los firmwares vienen en formato .tar y asi es como se los deberemos pasar al switch ATM.

[ForeThought_5.3.1] [ForeThought_6.0.1] [ForeThought_6.1]

Nos descargamos el firmware correspondiente en el PC desde el que ejecutamos el Minicom, que se comunica vía puerto serie con el switch ATM. Una vez conectados con el switch, ejecutamos el siguente comando en el prompt que nos ofrece el switch:

=> boot-ser
Downloading
...........

En ese momento, el switch está esperando a recibir el fichero con el firmware que se quiere arrancar. Se lo tendremos que enviar, usando para ello las opciones del Minicom. Pulsamos "Ctrl + A" y luego "Z", y nos aparecerá un menú, desde el cual si pulsamos la letra "S", nos permitirá enviar un fichero por el puerto serie. Nos pedirá el tipo de protocolo a usar y elegiremos la opción "X-Modem". Después nos saldrá un explorar de carpetas, desde donde tendremos que "marcar" el fichero que queremos enviar. Nos movemos entre directorios con los cursores y para "marcar" ficheros y entrar en los directorios, pulsamos dos veces la barra espaciadora. Después confirmamos en OK y enviamos el fichero .tar con el firmware.

Menu del Minicom
Selección de fichero

Nos saldrá una ventana auxiliar que nos informa de que el fichero se esta enviando, y que podemos cancelar el envío si pulsamos "Ctrl + Z".

+------[xmodem transmisión - Presione CTRL-C para salir]------+       
|Sending fore_5-3-1.tar, 17160 blocks: Give your local XMODEM |     
|receive command now.                                         |       
|Xmodem sectors/kbytes sent:   2196480/ 2196480k              |                   
+-------------------------------------------------------------+  

Tras recibir el fichero .tar con el firmware, en el prompt del switch ATM, nos debería salir algo parecido a:

Decompressing...

Adding 2722 symbols for standalone.
Flash previously formatted with release 4.1
DO NOT REBOOT!!! REBUILDING FLASH FILE SYSTEM!!!
Formatting Flash................................
FFS_REFORMAT: Creating directory fs:
FFS_REFORMAT: Restoring fs:/CURRENT
FFS_REFORMAT: Creating directory fs:/FT411.16
FFS_REFORMAT: Restoring directory fs:/FT411.16/FOREOS.EXE
FFS_REFORMAT: Creating directory fs:/HIDDEN
...

Ahora ya tenemos el firmware cargado en memoria y ejecutándose en el switch ATM (aun nos quedaría guardarlo en la memoria flash), por lo que nos debería salir algo parecido a lo siguiente en el minicom (LE155 -> login: asx y password: "en blanco" & LE25 -> login: ami y password: "preguntar a Goyo"):

S_ForeThought_5.3.1 FCS-Pathc (1.45062) (le155) (ATM SWITCH)
login: asx
Password: 
Warning : Userid asx does not have a local password set.                       
         Please use "configuration security login password"                   
         to set the local password.                                           
                                                                              
OCT 21 10:57:20 tLocalAmi:  NOTICE: Userid asx attempting to log in from the se.
OCT 21 10:57:20 tLocalAmi:  NOTICE: Userid asx logged in from the serial port. 
OCT 21 10:57:20 tLocalAmi:  NOTICE: (SNMP18) Trap: Enterprise 1072 (asxSwitchLo]
                                                                               
ATM Management Interface v5.3.1                                                
Copyright (c) 1994-1999 FORE Systems, Inc.                                     
                                                                               
General commands:                                                              
 '?' to get list of commands at the current level                             
 'up' to go up one menu level                                                 
 'top' to go to the root menu                                                 
 'exit' to leave AMI                                                          
                                                                               
                                                                               
Opening a session for "127.0.0.1", please wait...                              
                                                                               
Connected to "127.0.0.1" (le155).                                              
                                                                                                                                                            
ATM SWITCH::>


Servidor TFTP

Antes de seguir con el manual, es necesario tener configurado un servidor TFTP en un cliente de aulas con interfaz ATM (DocXXX); ya que el switch sólo es capaz de leer y escribir ficheros vía protocolo TFTP (también se puede actualizar vía puerto serie; consultar [manual oficial] para mas información).

Pero antes incluso de configurar este servidor, como es lógico, tendremos que configurar una conexión vía ATM entre nuestro cliente y el switch ATM. Para ello seguimos el manual Procedimiento de prueba ATM, que nos explica como configurar una interfaz ATM en el equipo y asignarle una dirección IP adecuada (se puede usar la que viene en el ejemplo: 192.200.0.102). Si queremos comprobar que la conexión ATM funciona desde el propio switch ATM, podemos hacer un ping a nuestro servidor TFTP desde el menú principal:

Ejemplo (IP del cliente: 192.200.0.102)
ATM SWITCH::> ping 192.200.0.102                                               
192.200.0.102 is alive 
  • NOTA: cuidado con la dirección IP del conmutador: 192.200.0.156 / 157, según el rango donde este nuestro cliente.

Instalamos el servidor-cliente TFTP en el equipo, si no está ya instalado:

sudo apt-get install tftp-hpa tftpd-hpa

Tendremos un fichero de configuración principal: "/etc/default/tftpd-hpa", que en principio no tendremos que tocar y que dejaremos con la configuración por defecto. Se recomienda revisar la configuración del iptables para evitar posibles filtros en el puerto donde escucha el servidor TFTP (UDP 69) y el fichero /etc/hosts.allow (en este, permitir temporalmente todos los accesos añadiendo al principo un ALL: ALL). Ahora hay que crear un directorio en raíz "/", llamado "/tftpboot" y darle permisos de lectura y escritura (también a los ficheros que pongamos en él):

mkdir /tftpboot
chmod 777 -R /tftpboot
root@doc010:/# ls -las /tftpboot/
total 7352
  1 drwxrwxrwx  1 nobody  nogroup    1024 oct 20 14:46 .
  1 drwxr-xr-x 32 root    root       1024 oct 20 00:32 ..
2630 -rwxrwxrwx  1 miguelb etl     2680320 oct 20 14:25 fore-6.1

Ejecutamos el servidor TFTP en el cliente en un shell; y en otro miramos el syslog ( sudo tail -f /var/log/syslog ): Es posible, que la primera vez se ejecute sin ser root, es importante que veamos el -u root, en la salida del comando ps aux | grep tftp.

/usr/sbin/in.tftpd -l -v -u root /tftpboot

Podemos comprobar que se está ejecutando si vemos algo como lo siguiente:

root@doc010:/# ps aux | grep tftp
root     16117  0.0  0.0   3012   280 ?        Ss   15:19   0:00 /usr/sbin/in.tftpd -l -v -u root /tftpboot

Si en la salida del comando, no vemos el usuario root, es que no estamos ejecutando como root,para ejecutarlo como root, hacemos un kill 16117 y matamos el proceso, para después volver a lanzarlo con el mismo comando de antes.

No se a que se debe, que la primera vez de error en algunos casos, pero es así, se mata el proceso y se lanza de nuevo, comprobando si esta vez ha funcionado.


  • NOTA: si al ejecutar el servidor, en el syslog vemos el siguiente mensaje: "in.tftpd[3490]: cannot bind to local socket: Address already in use", tendremos que detener el servicio que está ocupando el puerto UDP 69, antes de ejecutar el servidor TFTP (usar comando netstat). Normalmente será "inetutils-inetd":
/etc/init.d/inetutils-inetd stop
Stopping internet superserver: inetd.

Ejemplo para buscar servicios corriendo en el puerto de tftp:

miguelb@doc021:/$ sudo netstat -puta | grep tftp 
udp        0      0 *:tftp                  *:*                                 22348/in.tftpd

(Si, pone -puta si... podemos cambiar el orden de las letras, para hacerlo mas correcto XD)

Backup de la configuracón (CDB)

Antes de actualizar el firmware, es recomendable hacer un backup de la configuración que tiene almacenada el switch ATM (se asume que ya hay conexión ATM entre el cliente con un servidor TFTP corriendo y el switch ATM). Si ejecutamos "?" en el prompt del switch ATM, nos saldrá una lista de los posibles comandos a ejecutar. Con "UP" podemos subir al nivel de menus inmediatamente superior y con "TOP" iremos directamente al menú principal desde donde estemos.

Nos vamos al menú "configuration > cdb", y desde allí ejecutaremos el comando "backup":

 ATM SWITCH::operation cdb> ?                                                   
 backup             init               reset              restore   
 Uso: backup <nombre_del_fichero> (Ej: backup backup.cdb)
      backup -url [tftp://<host>/>full filepath>]

Si sólo le especificamos el nombre del fichero de backup, nos lo guardará en la memoria flash del switch ATM. También se le puede pasar la URL del cliente con el servidor de TFTP corriendo y que lo guarde directamente allí.


En nuestro ejemplo, primero lo guardaremos en la flash y después lo enviaremos con un "PUT" vía TFTP. Comprobamos que se tenemos guardado el fichero en la flash, haciendo un "DIR" desde el menú "operation > flash":

ATM SWITCH::operation flash> dir                                               
                                                                              
Size       Date         Time      Name                                        
                                                                              
1972       MAY-05-2003  10:28:48  LECS.CFG                                    
0          OCT-20-2009  16:46:00  FT6.0/                                      
6          OCT-20-2009  16:46:00  CURRENT                                     
77862      OCT-20-2009  16:49:06  BACKUP.CDB         

Ahora sólo falta enviarlo al cliente con el servidor TFTP corriendo. Antes deberemos crear en el cliente un fichero vacío con el nombre que le vayamos a dar a nuestro fichero de backup; además de darle los permisos adecuados:

cd /tftpboot
touch <nombre_fichero>
chmod 777 <nombre_fichero>

En el switch ATM, desde el mismo submenú "flash" ejecutamos el comando "PUT" para enviar el fichero:

Uso: put <localfile> <host>:<remotefile>
Ejemplo LE 155 con v6.0.1(IP del host con servidor TFTP = 192.200.0.102):
ATM SWITCH::operation flash> put BACKUP.CDB 192.200.0.102:/tftpboot/backup      
{Transfer successful}                                                           
File transfer succeeded.
Ejemplo LE 25 con v6.1.1(IP del host con servidor TFTP = 192.200.0.102):
s-atm1:system filesystem-> put -filename backup.cdb -url tftp://192.200.0.102/tftpboot/backup.cdb                                                              
Transfer successful                                                             
File transfer was successful 

Cuando ejecutemos el comando put, nos descargaremos el fichero al equipo que actúa como servidor tftp. Es posible que de error si el fichero que estamos intentado crear, no existe. Si creamos el fichero Backup.cdb y le damos permisos de 777 en el equipo servidor, al ejecutar el comando put, con el path del archivo que acabamos de crear, lo sobrescribirá y funcionará correctamente.

De esta forma tendremos nuestra configuración a salvo ante posibles accidentes durante la actualización. En la wiki está subido un backup de la configuración utilizada actualmente en los laboratorios:

[Backup CDB ForeRunner LE 155 (Octubre 2009)] [Archivo LECS.CFG ForeRunner LE 155 (Octubre 2009)] [Backup CDB ForeRunner LE 25 (Octubre 2009)]

[Backup CDB ForeRunner LE 155 (Abril 2013)] [Backup CDB ForeRunner LE 25 (Abril 2013)]

Actualización del firmware en la memoria flash

Una vez que volvemos a tener el firmware cargado en memoria, ahora tenemos que grabarla en la flash para que se quede permanentemente instalada. Si ejecutamos "?" en el prompt del switch ATM, nos saldrá una lista de los posibles comandos a ejecutar. Con "UP" podemos subir al nivel de menus inmediatamente superior y con "TOP" iremos directamente al menú principal desde donde estemos.

ATM SWITCH::> ?                                                                
 about              close              configuration>     debug>              
 display>           exit               help               history             
 open               operation>         ping               redo                
 rows               startup            statistics>        top                 
 up

Si queremos saber la versión actual de firmware que se está ejecutando, desde el submenú "operation > flash":

ATM SWITCH::operation flash> view CURRENT                                      
FT6.0      

Tendremos que ir al menú "operation>", y desde allí podremos actualizar el firmware:

 ATM SWITCH::operation> ?                                                       
 cdb>               date               environment>       flash>              
 panic>             reboot             upgrade            version            

Antes de ejecutar la actualización, tendremos que poner el fichero .tar que contiene el firmware a instalar en el directorio /tftpboot del cliente que tiene corriendo el servidor TFTP. Es importante darle los permisos adecuados (777 para no complicarse).

Ejemplo (fore-6.1):
root@doc010:/# ls -las /tftpboot/
  1 drwxrwxrwx  3 nobody  nogroup    1024 oct 20 14:46 .
  1 drwxr-xr-x 32 root    root       1024 oct 20 00:32 ..
2630 -rwxrwxrwx  1 miguelb etl     2680320 oct 20 14:25 fore-6.1

Con todo lo anterior hecho, ahora ejecutaremos el comando "UPGRADE":

Uso: upgrade <IP_servidor_TFTP>:<path_completo_del_fichero>
Ejemplo:
ATM SWITCH::operation> upgrade 192.200.0.102:/tftpboot/fore-6.1
Will upgrade directly to flash
{Trasnfer successful.} 

Nos preguntará si queremos hacer un backup de la configuración (CDB):

Notice: A backup cdb for this version of sotware should be made in case a downgrade to this version is performed in the future.
Do you wish to back up the cdb [y]?

Si le decimos que si (no es obligatorio), tendremos que introducir la dirección IP del servidor TFTP y la ruta del fichero de backup:

Enter host file: 192.200.0.102:/tftpboot/backup.cdb

Por último, nos preguntará si queremos reiniciar y así probar el nuevo firmware instalado:

Reboot the switch[y]? y

El switch ATM se reiniciará y arrancará desde la flash, mostrándonos el login con la nueva versión (en el ejemplo la 6.0.1):

S_ForeThought_6.0.1.E FCS-Patch (1.54092) (le155) (ATM SWITCH)
login: asx
Password: 


Manuales

[Comandos de referencia 1]

[Comandos de referencia 2]

[Comandos de referencia 3]

[Manual de configuracion v7]

[Manual de configuracion v61]

[Manual de instalacion v61]

[Manual de Diagnóstico y Resolución de problemas v61]



--Miguel 13:28 26 oct 2009 (UTC)