Los ficheros de IOS tienen un formato concreto donde indica plataforma, características, formato y si está o no comprimido. El formato del nombre es como esto:
xxxx-yyy-ww.aaa-bb.bin
1. xxxx es la platforma o hardware:
- c1005 – Para Hardware 1005
- c1600 – Para Hardware 1600
- c1700 – Para Hardware 1700, 1720, y 1750
- c2500 – Para Hardware 25xx, 3xxx, 5100, y AO (solo para 11.2 y posteriores)
- c2600 – Para Hardware 2600
- c2800 – Para Hardware Catalyst 2800
- c2900 – Para Hardware 2910 y 2950
- c3620 – Para Hardware 3620
- c3640 – Para Hardware 3640
- c4000 – Para Hardware 4000 (solo para 11.2 y posteriores)
- c4500 – Para Hardware 4500 y 4700
2. yyy indica las características soportadas:
- b - Para soporte de Apple talk
- c - Para CommServer lite (CiscoPro)
- g - Para subconjunto de ISDN (SNMP, IP, Bridging, ISDN, PPP, IPX, y AppleTalk)
- i - Para subconjunto de IP (SNMP, IP, Bridging, WAN, Remote Node y Terminal Services)
- n - Para soporte de IPX
- q - Para soporte asíncrono
- t - Para soporte de Telco (12.0)
- y - Para soporte reducido de IP (SNMP, IP RIP/IGRP/EIGRP, Bridging, ISDN y PPP) (c1003 or c1004)
- z - Para modems gestionados
- 40 - Para cifrado de 40 bit
- 50 - Para cifrado de 50 bit
3. ww indica el formato (donde ejecuta el router el fichero de IOS)
- f - Para flash
- m - Para RAM
- r - Para ROM
- l - La imagen será re ubicada en tiempo de ejecución
El fichero puede también estar comprimido. Las siguientes letras indican el tipo de compresión:
- z - Compresión zip
- x - Compresión mzip
- w - Compresión “STAC”
aaa-bb representa la versión de la IOS:
- se debe interpretar “Version aa.a(bb)”.
La última parte del fichero de la IOS puede contener letras como pueden ser:
- T - que indica nueva característica en esta versión.
- S - que indica número de verisón individual.
- XR - Que indica paquetes modulares.
Una de las cosas que echaba en falta en el IOS al venir del JunOS es el backup de configuraciones (aunque tanto en JunOS como IOS uso Rancid) pero desde la versión 12.3 hay disponible un comando de IOS que permite hacer copia de seguridad de las configuraciones. El comando en cuestión es archive y aunque tiene varias opciones aquí solo voy a exponer algunas con varios ejemplos.
El único requerimiento mínimo es el camino donde se van a guardar las copiar de la configuración, que puede ser en el mismo router (flash) o fuera del mismo (usando HTTP, FTP, RCP, o TFTP), por supuesto la recomendación es guardar las configuraciones fuera del router por si falla la flash o el propio router en sí.
Para configurar sus opciones debemos entrar en el modo global de configuración en donde tenemos las siguientes opciones:
Router(config-archive)#?
Archive configuration commands:
default Set a command to its defaults
exit Exit from archive configuration mode
log Logging commands
maximum maximum number of backup copies
no Negate a command or set its defaults
path path for backups
rollback Rollback parameters
time-period Period of time in minutes to automatically archive the
running-config
write-memory Enable automatic backup generation during write memory
A destacar especialmente en entornos donde varias personas hacen modificaciones es la opción “write-memory” que genera una copia cada vez que se guarda la configuración con lo cual siempre que se haga cambios tendremos una copia aunque puede generar muchas copias si se producen muchos cambios constantemente, además también destacar “time-period” que hace una copia cada cierto tiempo (aunque para esto prefiero más Rancid) y “maximum” que limita el número de copias a realizar, aunque es recomendable realizar el control de borrado externamente o incluso borrar a mano cuando haya muchas copias, hoy en día un disco duro es muy barato y nunca se sabe cuando nos puede hacer falta una copia de hace tiempo.
Un pequeño ejemplo:
R0#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R0(config)#archive
R0(config-archive)#path disk0:R0
R0(config-archive)#wri
R0(config-archive)#write-memory
R0(config-archive)#end
Con esto conseguimos que cada vez que se guarde la configuración haga una copia en “disk0” con el nombre del propio router “R0” al cual añadirá “-número” (-1, -2, -3, etc) por cada copia que haga.
R0#dir disk0:
Directory of disk0:/
1 -rw- 839 Aug 17 2008 22:27:08 +00:00 R0-1
Si lo que queremos es guardar una copia en un servidor TFTP remoto podemos hacer lo siguiente:
R0(config-archive)#path tftp://10.10.10.10/R0/copia
con lo que irá guardando copias (copia-1, -2, -3, etc) en el servidor con IP 10.10.10.10 dentro del directorio llamado “R0″ (el mismo nombre que el router para una localización posterior rápida).
Dos parámetros no mostrados en la ayuda por defecto dentro de PATH son “$h” que indica el nombre del router y “$t” que indica la fecha y hora del router, con lo cual podemos hacer una mini plantilla para todos los routers usando esas variables, así el anterior ejemplo podría convertirse en:
R0(config-archive)#path tftp://10.10.10.10/$h/$t
Para ver las copias que hay además ver la unidad donde se guardan (dir disk0 en el caso anterior) podemos usar:
R0#show archive
There are currently 3 archive configurations saved.
The next archive file will be named disk0:R0-3
Archive # Name
0
1 disk0:R0-1
2 disk0:R0-2 <- Most Recent
3
4
5
6
7
8
9
10
11
12
13
14
También nos puede interesar ver que diferencias hay entre una copia y otra para saber que se ha modificado o que hay de diferente (especialmente útil en entornos donde varias personas modifican) y podemos ver las diferencias de 2 formas:
differences muestra las diferencias entre las dos configuraciones, ya sea una copia y la actual o entre 2 copias.
incremental-diffs muestra las líneas del fichero de configuración que se añadirán a la running-config.
R0#show archive config differences disk0:/R0-1 disk0:/R0-3
Contextual Config Diffs:
interface FastEthernet0/0
-description prueba
Indica que “description prueba” en R0-1 no está y en R0-3 si, en caso contrarío en vez de un digno “-” sería un signo “+”. Si se omite “disk0:/R0-3″ se compara “disk0:/R0-1″ con la configuración actual (que en este caso es la misma que disk0:/R0-3 porque se acaba de generar).
Muchas veces de las que hacemos un “show running-config” o lo que es más a menudo “sh run” no queremos ver todo si no un parte de la configuración, para ello hay algunos atajos muy útiles que no siempre se recuerdan:
-
show run interface:
router# sh run int fa0/0
Building configuration…
Current configuration : 93 bytes
!
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
end
-
show run | section:
router#sh run | section interface
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
interface FastEthernet1/0
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
-
show run | begin :
router#sh run | begin interface
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet1/0
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
ip http server
no ip http secure-server
ip classless
!
control-plane
!
!
–More–
-
show run | include:
router# sh run interface f0/0 | include ip
ip address 10.1.1.1 255.255.255.0
-
show ip interface brief:
router#sh ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.1.1.1 YES manual up up
FastEthernet1/0 192.168.1.1 YES manual up up
-
Mientras se está haciendo un “sh run” se puede usar el carácter / para hacer una búsqueda específica:
router#sh run
Building configuration…
Current configuration : 663 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname blog_demo
!
boot-start-marker
boot-end-marker
!
!
memory-size iomem 5
no aaa new-model
ip subnet-zero
!
!
!
!
ip cef
ip ips po max-events 100
/192.168
filtering…
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
ip http server
NOTA: Extraído de “http://www.globalconfig.net/brandons_blog/2008/06/shortucts.html“