Está en la página 1de 7

Actualizar Cisco IOS de forma segura

Actualizar Cisco IOS de forma segura


En este post veremos como actualizar el sistema operativo de
un switch Cisco.
Podemos pensar que ya existe informacin en el site de Cisco
para realizar este proceso, pero considero que no es completa.
Es muy importante verificar varias cosas que pueden pasarse
por alto y considero que hay que tenerlas muy en cuenta:
Siempre hay que verificar la integridad de los datos que

nos descargamos e instalamos para evitar desastres.


Hay que revisar las release notes, field notes y

bugtool del software a instalar porque nos podemos


encontrar que actualicemos un software y nos est
afectando un bug que antes no exista.
Es muy recomendable comprobar la estabilidad, el

rendimiento etc del nuevo software para nuestro


dispositivo en un laboratorio y en la medida de lo posible
simular el patrn de trfico, rutas, tiempos de respuesta,
paquetes por segundo etc ( depender del dispositivo,
claro ). Si deseamos usar dispositivos profesionales de
prueba, siempre podemos alquilar un IXIA. Tambin las
pruebas de estrs nos permitirn comprobar si en las
especificaciones de un producto nos estn engaando
Es decir, si vamos, por ejemplo, a actualizar un router BGP
porque la nueva versin nos ofrece netflow, ip sla o lo que sea
y soluciona unos bugs, nos podemos encontrar la
desagradable sorpresa de que el equipo arranque bien, pero
cuando reciba las trescientos y pico mil rutas de internet ipv4
se nos caiga la sesin bgp con el peer y empiece a flapear
por falta de memoria. Aqu podramos incorrectamente pensar
que segn las especificaciones de la IOS, nuestro equipo

1
Actualizar Cisco IOS de forma segura

soporta el software, pero no, cada cual tiene un patrn de


trfico, unas placas y configuraciones diferentes.
Vamos a actualizar un switch catalyst 3750 en stack.
Descargamos el software del site oficial de Cisco y

apuntamos el hash md5 o sha :


e9c810e7ebad6d53f022885a4e9f9840

En linux existe md5sum y en windows podemos


usar MD5summer. Si en windows creamos un fichero de texto
con el md5, cambiamos la extensin de .txt a .md5 y usamos
el mismo nombre+extensin que el fichero a verificar, de forma
automtica verificar el hash del fichero al hacer doble click :

2
Actualizar Cisco IOS de forma segura

Verificamos que tenemos espacio suficiente en el


switch. A continuacin subimos el fichero al dispositivo, en
este caso mediante un servidor tftp donde tenemos la
nueva IOS.
sw-stack#dir flash1:
Directory of flash1:/

2 -rwx 6972726 Mar 1 1993 19:55:44 +00:00 c3750-ipservi


cesk9-mz.122-25.SEB.bin
3 -rwx 24 Mar 2 1993 23:31:52 +00:00 private-confi
g.text
4 -rwx 1048 Mar 2 1993 23:31:52 +00:00 multiple-fs
6 -rwx 616 Mar 3 1993 00:41:30 +00:00 vlan.dat
7 -rwx 3468 Mar 2 1993 23:31:52 +00:00 config.text

15998976 bytes total (9018368 bytes free)


sw-stack#dir flash2:
Directory of flash:/

2 -rwx 6972726 Mar 1 1993 20:29:43 +00:00 c3750-ipservi


cesk9-mz.122-25.SEB.bin
3 -rwx 3468 Mar 2 1993 23:31:52 +00:00 config.text
4 -rwx 616 Mar 2 1993 05:29:02 +00:00 vlan.dat
5 -rwx 24 Mar 2 1993 23:31:52 +00:00 private-confi
g.text
6 -rwx 1048 Mar 1 1993 00:04:10 +00:00 multiple-fs

3
Actualizar Cisco IOS de forma segura

15998976 bytes total (9018368 bytes free)

Vemos que slo nos quedan 9 MB libres y por tanto no


podemos tener las dos IOS en la flash a la vez.
Podemos liberar espacio o hacerlo hacerlo arrancar por tftp.
En este ejemplo, liberamos espacio de la flash ( flash1 y flash2
que es un stack !! )
sw-stack#delete flash1:/c3750-ipservicesk9-mz.122-25.SEB.bin
Delete filename [c3750-ipservicesk9-mz.122-25.SEB.bin]?
Delete flash:c3750-ipservicesk9-mz.122-25.SEB.bin? [confirm]

sw-stack#delete flash2:/c3750-ipservicesk9-mz.122-25.SEB.bin
Delete filename [c3750-ipservicesk9-mz.122-25.SEB.bin]?
Delete flash:c3750-ipservicesk9-mz.122-25.SEB.bin? [confirm]

sw-stack#copy tftp: flash1:


Address or name of remote host [10.0.15.8]?
Source filename [c3750-ipbasek9-mz.122-55.SE4.bin]?
Destination filename [c3750-ipbasek9-mz.122-55.SE4.bin]?
Accessing tftp://10.0.15.8/c3750-ipbasek9-mz.122-55.SE4.bin...
Loading c3750-ipbasek9-mz.122-55.SE4.bin from 10.0.15.8 (via Vlan2)
: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

4
Actualizar Cisco IOS de forma segura

!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!
!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!
!!!!!!!!!!!!!!!O!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!
!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!
!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!
!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!
!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!
!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!
!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!
!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!
!!!!!!!!
[OK - 12067601 bytes]

12067601 bytes copied in 213.298 secs (56576 bytes/sec)

Intentamos verificar el hash md5 del ios pero como


estamos en un stack cuyo master es el switch2, no nos
muestra el flash1 como flag del verify . As que ejecutamos
el verify en el switch1 mediante el comando remote:
sw-stack#verify /md5 flash1:/?
% Unrecognized command
sw-stack#verify /md5 flash?
flash2: flash:

sw-stack#remote command 1 verify /md5 flash:/c3750-ipbasek9-mz.122-


55.SE4.bin

Switch : 1 :
------------
.................Done!
verify /md5 (flash:/c3750-ipbasek9-mz.122-55.SE4.bin)
= e9c810e7ebad6d53f022885a4e9f9840

Confirmamos que el hash md5 es correcto y repetimos


el proceso con el flash2, no pongo el resultado pues es
idntico. Esta vez si funcionar el comando verify
directamente:
verify /md5 flash2:/c3750-ipbasek9-mz.122-55.SE4.bin
Modificamos el arranque del switch para que busque

nuestro fichero:
sw-stack(config)#boot system switch all flash:/c3750-ipbasek9-mz.12
2-55.SE4.bin
sw-stack(config)#do show boot
BOOT path-list : flash:/c3750-ipbasek9-mz.122-55.SE4.bin
Config file : flash:/config.text

5
Actualizar Cisco IOS de forma segura

Private Config file : flash:/private-config.text


Enable Break : no
Manual Boot : no
HELPER path-list :
Auto upgrade : yes
-------------------
Switch 1
-------------------
BOOT path-list : flash:/c3750-ipbasek9-mz.122-55.SE4.bin
Config file : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break : no
Manual Boot : no
HELPER path-list :

Auto upgrade : no

Ya podemos reiniciar el equipo y verificar con show


version:
Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
1 26 WS-C3750-24TS 12.2(55)SE4 C3750-IPBASEK
9-M
* 2 26 WS-C3750-24TS 12.2(55)SE4 C3750-IPBASEK
9-M

Actualizacin de IOS en formato tar por consola:


Si lo que queremos es usar un IOS en formato tar seguiremos
otro procedimiento.
Se puede actualizar la IOS usando un navegador o por
consola.
Partimos de que tenemos un switch catalyst 2960 con IOS
12.2(50)SE5 y vamos a actualizar a 15.0.2-SE2.
Nuestro IOS ya era inicialmente un tar descomprimido en el
directorio c2960-lanbasek9-mz.122-50.SE5
switch-2960#dir flash:
Directory of flash:/

2 -rwx 1824 Mar 1 1993 01:08:23 +01:00 vlan.dat


3 -rwx 1504 Oct 22 2012 18:47:04 +02:00 private-confi
g.text
5 drwx 512 Mar 1 1993 01:10:17 +01:00 c2960-lanbase
k9-mz.122-50.SE5

6
Actualizar Cisco IOS de forma segura

560 -rwx 21392 Oct 22 2012 18:47:04 +02:00 config.text


561 -rwx 2072 Oct 22 2012 18:47:04 +02:00 multiple-fs

Borramos el directorio con el IOS antiguo


switch-2960#delete /recursive /force flash:/c2960-lanbasek9-mz.122-
50.SE5

Como ho hay espacio para el nuevo IOS, descomprimimos el fichero lo


calizado en un servidor tftp (ip=10.0.10.44) sobre la flash del swi
tch:
switch-2960#archive tar /xtract tftp://10.0.10.44/c2960-lanbasek9-t
ar.150-2.SE2.tar flash:

Cambiamos el boot var para el arranque:


switch-2960#show boot
BOOT path-list : flash:/c2960-lanbasek9-mz.122-50.SE5/c2960-la
nbasek9-mz.122-50.SE5.bin
Config file : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break : no
Manual Boot : no
HELPER path-list :
Auto upgrade : yes
Auto upgrade path :
NVRAM/Config file
buffer size: 65536
Timeout for Config
Download: 0 seconds
Config Download
via DHCP: disabled (next boot: disabled)

switch-2960#conf t
Enter configuration commands, one per line. End with CNTL/Z.
switch-2960(config)#boot system flash:/c2960-lanbasek9-mz.150-2.SE2
/c2960-lanbasek9-mz.150-2.SE2.bin
switch-2960(config)#exit
switch-2960#wr
Building configuration...
[OK]!
switch-2960#reload