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