Reinicio
programado de un router
Fecha: 25 de junio del 2014
Escenario
Por algún motivo en particular, se necesita reiniciar un router al menos una vez al día de forma automática.
Esto presenta algunos detalles a tener en cuenta, por ejemplo, si es factible o no guardar previamente la
configuración del equipo si es que necesita reiniciarse para revertir cambios, también es importante considerar
el tema del NTP (Network Time Protocol) para sincronizar la hora de reinicio.
Estas pruebas se realizaron con equipos reales.
Solución 1: configuración manual de la hora del reload, mediante este método luego del reload hay que disparar
nuevamente el evento, y como veremos mas adelante, considerar la hora del equipo.
Rosario#sh clock
23:20:46.519 UTC Wed Jun 25 2014
Rosario#reload at 23:22 reason #Reset programado# (esto último es para registrarlo intuitivamente en los logs)
Reload scheduled for 23:22:00 UTC Wed Jun 25 2014 (in 51 seconds) by console
Reload reason: #Reset programado#
Proceed with reload? [confirm] (la confirmación se realiza sola, en forma automática)
Rosario#
Jun 25 23:21:20.231: %SYS-5-SCHEDULED_RELOAD: Reload requested for 23:22:00 UTC Wed Jun 25 2014
at 23:21:09 UTC Wed Jun 25 2014 by console. Reload Reason: #Reset programado#. (el motivo configurado)
Rosario#
***
*** --- SHUTDOWN NOW ---
***
Jun 25 23:22:01.459: %SYS-5-RELOAD: Reload requested by console. Reload Reason: #Reset programado#.
System Bootstrap, Version 15.0(1r)M9, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2010 by cisco Systems, Inc.
---resumido---
Self decompressing the image : #########################################################
#################################################################################
#################################################################################
####################################### [OK]
---resumido---
Installed image archive
Cisco CISCO1941/K9 (revision 1.0) with 487424K/36864K bytes of memory.
Processor board ID FTX123486ZS
2 Gigabit Ethernet interfaces
DRAM configuration is 64 bits wide with parity disabled.
255K bytes of non-volatile configuration memory.
255744K bytes of ATA System CompactFlash 0 (Read/Write)
Press RETURN to get started!
Rosario>
Solución 2: configuración automática con el cron del IOS.
Rosario(config)#kron policy-list RELOAD
Rosario(config-kron-policy)#cli reload (comando exec que queremos ejecutar)
Rosario(config-kron-policy)#exit
Rosario(config)#kron occurrence RELOAD at 22:00 recurring (todos los días)
Rosario(config-kron-occurrence)#policy-list RELOAD
Rosario(config-kron-occurrence)#^Z
Rosario#wri (guardamos, de lo contrario, esta última configuración se pierde)
Jun 25 23:57:35.075: %SYS-5-CONFIG_I: Configured from console by console
Building configuration...
[OK]
Rosario#
En caso de guardar la configuración antes del reinicio:
Rosario(config)#kron policy-list RELOAD
Rosario(config-kron-policy)#cli wri
Rosario(config-kron-policy)#cli reload
Rosario(config-kron-policy)#exit
Rosario(config)#kron occurrence RELOAD at 22:00 recurring
Rosario(config-kron-occurrence)#policy-list RELOAD
Rosario(config-kron-occurrence)#^Z
Rosario#
Verificación:
Rosario#sh kron schedule (verificamos)
Kron Occurrence Schedule
RELOAD inactive, will run again in 0 days 00:00:48 at 22:00 on
Rosario#
Ejecución automática del comando:
Rosario#
Jun 25 22:00:01.667: %SYS-5-RELOAD: Reload requested by console. Reload Reason: Reload Command.
System Bootstrap, Version 15.0(1r)M9, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2010 by cisco Systems, Inc.
---resumido---
Self decompressing the image : #######################################################
###############################################################################
###############################################################################
############################################## [OK]
---resumido---
Installed image archive
Cisco CISCO1941/K9 (revision 1.0) with 487424K/36864K bytes of memory.
Processor board ID FTX123486ZS
2 Gigabit Ethernet interfaces
DRAM configuration is 64 bits wide with parity disabled.
255K bytes of non-volatile configuration memory.
255744K bytes of ATA System CompactFlash 0 (Read/Write)
Kron: Policy Accepted, Policy RELOAD needs to be configured
Press RETURN to get started!
Rosario>ena
Password:
Rosario#sh kron schedule (verificamos)
Kron Occurrence Schedule
RELOAD inactive, will run again in 0 days 21:52:47 at 22:00 on
Rosario#sh clock (atención, pierde la hora al reinicio)
00:21:30.971 UTC Thu Jun 26 2014
Rosario#clock set 22:05:00 25 jun 2014 (reconfiguramos la hora)
Solución al problema de la hora:
Económica: una vez que reinicia queda en 00:00:00, por lo que si programamos el kron a las 23:59:40, en 24 horas
reiniciará el equipo nuevamente, y a la misma hora.
Elegante: configurar el router como NTP client para obtener la hora, reiniciar cuando corresponde y enviar logs con
la fecha/hora sinconizada. Hay que recordar de que si el log no se envía mediante syslog, al reiniciar se pierde.
La autenticación evita ataques de NTP spoofing que podrían en este caso, reiniciar los routers a demanda.
Rosario#sh clock
*0:1:50.235 UTC Mon Mar 1 1993
Rosario#conf t
Rosario(config)#ntp server 192.168.1.10 key 1
Rosario(config)#ntp trusted-key 1
Rosario(config)#ntp authentication-key 1 md5 ntp123
Rosario(config)#ntp update-calendar
Rosario(config)#ntp authenticate
Rosario(config)#^Z
Rosario#sh clock
*19:23:39.92 UTC Thu Jun 26 2014
Rosario#sh runn (verificamos)
---resumido—
!
ntp authentication-key 1 md5 082F585E584B56 7
ntp authenticate
ntp trusted-key 1
ntp server 192.168.1.10 key 1
ntp update-calendar
!
end
Mas elegante: configurar un router core (o algún otro que no reinicie nunca) como NTP server.
tengamos en cuenta de que si este equipo reinicia, deberá obtener la hora de alguna fuente,
podríamos también configurarle un server externo o configurar manualmente.
NTP_server(config)#ntp authentication-key 1 md5 130B03025A5E57 7
NTP_server(config)#ntp authenticate
NTP_server(config)#ntp trusted-key 1
NTP_server(config)#ntp master
Cordoba#sh clock
*00:10:50.994 UTC Mon Mar 1 1993
Cordoba#debug ntp packet
Cordoba#debug ntp authentication
00:11:14: NTP: xmit packet to 10.0.0.1:
00:11:14: leap 3, mode 3, version 3, stratum 0, ppoll 64
00:11:14: rtdel 0000 (0.000), rtdsp 10001 (1000.015), refid 00000000 (0.0.0.0)
00:11:14: ref 00000000.00000000 (00:00:00.000 UTC Mon Jan 1 1900)
00:11:14: org D756F65A.F5567F7C (19:43:22.958 UTC Thu Jun 26 2014)
00:11:14: rec AF3BD2E2.5DCF265F (00:10:10.366 UTC Mon Mar 1 1993)
00:11:14: xmt AF3BD322.596AC954 (00:11:14.349 UTC Mon Mar 1 1993)
00:11:14: Authentication key 1
00:11:14: NTP: rcv packet from 10.0.0.1 to 10.0.0.2 on Serial0/0:
00:11:14: leap 0, mode 4, version 3, stratum 8, ppoll 64
00:11:14: rtdel 0000 (0.000), rtdsp 0017 (0.351), refid 7F7F0101 (127.127.1.1)
00:11:14: ref D756F692.21CA1962 (19:44:18.131 UTC Thu Jun 26 2014)
00:11:14: org AF3BD322.596AC954 (00:11:14.349 UTC Mon Mar 1 1993)
00:11:14: rec D756F69A.F4FDC877 (19:44:26.956 UTC Thu Jun 26 2014)
00:11:14: xmt D756F69A.F5003711 (19:44:26.957 UTC Thu Jun 26 2014)
00:11:14: inp AF3BD322.5D4443C7 (00:11:14.364 UTC Mon Mar 1 1993)
00:11:14: Authentication key 1
Cordoba#sh clock (verificamos)
.19:44:45.503 UTC Thu Jun 26 2014
Cordoba#
Detalle de donde queda guardado en la config:
Rosario#sh runn
Building configuration...
Current configuration : 1781 bytes
!
! No configuration change since last restart
!
version 15.0
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Rosario
!
---resumido---
!
ip route 0.0.0.0 0.0.0.0 Null0 (se muestra para tener una idea de queda casi al final de la config)
!
kron occurrence RELOAD at 22:00 recurring
policy-list
RELOAD
!
kron policy-list RELOAD
cli
reload
!
!
ntp authentication-key 1 md5 11070D15464058 7
ntp authenticate
ntp trusted-key 1
ntp server 10.0.0.1 key 1
!
end
Jun 25 22:00:00.779: %SYS-5-RELOAD: Reload requested by console. Reload Reason: Reload Command.
(2014) Networking crashes my mind
Rosario, Argentina