Problema de sincronización NTP

Fecha: 18 de marzo del 2021

 

Escenario

 

Ajustando la hora mediante NTP en una DMZ, uno de los switches no sincronizaba contra el NTP server que es

un switch dentro de la zona segura.

Este laboratorio termina develando al igual que otro anterior, que aunque una interface VLAN esté en shut y no

aparezca en la tabla de enrutamiento, sigue “escuchando” o asociado a ciertos servicios (en este caso NTP).

 

 

Cabe destacar que entre ambos no existen problemas de conectividad (de ser así este lab no tendría mucho sentido).

Para los clientes NTP el server se presenta como 192.168.143.241 y lo ven como una IP de su propio segmento.

Esto es porque los switches al estar en una DMZ no tienen gateway configurado (se evita alcanzar destinos internos).

 

1.- Verificación inicial:

 

1.1.- En el cliente NTP:

 

Switch-C#sh ntp status

Clock is unsynchronized, stratum 16, no reference clock

nominal freq is 286.1023 Hz, actual freq is 286.1023 Hz, precision is 2**20

ntp uptime is 44824500 (1/100 of seconds), resolution is 3496

reference time is E3FE39CF.A2CE64E6 (17:38:15.536 ARG Thu Mar 18 2021)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 0.17 msec, peer dispersion is 0.00 msec

loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s

system poll interval is 64, last update was 250 sec ago.

Switch-C#

 

1.2.- Verificamos versiones:

 

Switch-C#sh ntp information                     SW-L3-NTP#sh ntp information

Ntp Software Name       :  Cisco-ntpv4         Ntp Software Name       :  Cisco-ntpv4

Ntp Software Version    :  Cisco-ntpv4-1.0    Ntp Software Version    :  Cisco-ntpv4-1.0

Ntp Software Vendor     :  CISCO                 Ntp Software Vendor     :  CISCO

Ntp System Type         :  Cisco IOS / X86     Ntp System Type         :  Cisco IOS / X86

Switch-C#                                                      SW-L3-NTP#

 

1.3.- Verificamos logs en el servidor NTP:

 

Aqui podemos ver que aunque exista conectividad, no llegan paquetes NTP al servidor (mas adelante veremos que

llegan pero que extrañamente se ignoran y se descartan, aún en el debug).

 

Mar 18 17:38:10.609: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, input feature, MCI Check(109),

  rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 17:38:10.609: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, rcvd 2

Mar 18 17:38:10.609: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, stop process pak for forus packet

Mar 18 17:38:10.609: IP: tableid=0, s=192.168.143.244 (Vlan100), d=192.168.100.2 (Vlan100), routed via RIB

Mar 18 17:39:14.621: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, input feature, MCI Check(109),

  rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 17:39:14.621: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, rcvd 2

Mar 18 17:39:14.621: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, stop process pak for forus packet

Mar 18 17:39:14.621: IP: tableid=0, s=192.168.143.244 (Vlan100), d=192.168.100.2 (Vlan100), routed via RIB

 

2.- Se cambia la IP del cliente NTP:

 

Luego de verificar versiones y conectividad, como prueba de rutina se reemplaza la IP del cliente,

de 192.168.143.244 a .246 que es la última IP libre del segmento.

 

Switch-C#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Switch-C(config)#interface Vlan240

Switch-C(config-if)# ip address 192.168.143.246 255.255.255.248

Switch-C(config-if)#

 

3.- Verificamos:

 

Switch-C#sh ntp status

Clock is synchronized, stratum 5, reference is 192.168.143.241

nominal freq is 286.1023 Hz, actual freq is 286.1023 Hz, precision is 2**20

ntp uptime is 44801200 (1/100 of seconds), resolution is 3496

reference time is E3FE39CF.A2CE64E6 (17:42:55.635 ARG Thu Mar 18 2021)

clock offset is 1.1385 msec, root delay is 150.20 msec

root dispersion is 3955.38 msec, peer dispersion is 188.53 msec

loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s

system poll interval is 64, last update was 17 sec ago.

Switch-C#

 

4.- Realizamos rollback:

 

Realizamos una contraprueba para descartar eventos fortuitos:

 

Switch-C#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Switch-C(config)#interface Vlan240

Switch-C(config-if)# ip address 192.168.143.244 255.255.255.248

Switch-C(config-if)#

 

5.- Verificamos nuevamente:

 

Switch-C#sh ntp status

Clock is unsynchronized, stratum 16, no reference clock

nominal freq is 286.1023 Hz, actual freq is 286.1023 Hz, precision is 2**20

ntp uptime is 44824500 (1/100 of seconds), resolution is 3496

reference time is E3FE39CF.A2CE64E6 (17:42:55.635 ARG Thu Mar 18 2021)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 0.17 msec, peer dispersion is 0.00 msec

loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s

system poll interval is 64, last update was 250 sec ago.

Switch-C#

 

6.- Corremos un debug en el cliente NTP:

 

Se puede verificar que la solicitud NTP “sale” del equipo y nunca llega una respuesta, por lo que desde ahora

deberíamos enfocarnos solamente en el server NTP.

 

Switch-C#debug ntp events

NTP events debugging is on

Switch-C#

 

Mar 18 20:42:55.634: NTP Core (NOTICE): Clock is synchronized.

Mar 18 20:46:53.140: NTP Core (INFO): 0.0.0.0 C65C 0C clock_step

Mar 18 20:46:53.140: NTP Core (NOTICE): Clock synchronization lost.

.Mar 18 20:54:16.631: NTP message sent to 192.168.143.241, from interface 'Vlan240' (192.168.143.244).

.Mar 18 20:56:30.629: NTP message sent to 192.168.143.241, from interface 'Vlan240' (192.168.143.244).

 

7.- Verificamos en core:

 

7.1.- Verificamos en la tabla de enrutamiento:

 

SW-L3-NTP#sh ip route (no existen rutas de ningún tipo a la red 192.168.143.240/29 entonces entra en la default)

---omitido---

Gateway of last resort is 192.168.100.1 to network 0.0.0.0

 

S*    0.0.0.0/0 [1/0] via 192.168.100.1

---omitido---

O        192.168.143.8/30 [110/3] via 192.168.143.234, 00:00:28, Vlan232

O        192.168.143.12/30 [110/3] via 192.168.143.234, 00:00:33, Vlan232

C        192.168.143.232/30 is directly connected, Vlan232

L         192.168.143.233/32 is directly connected, Vlan232

O        192.168.143.248/29 [110/2] via 192.168.143.234, 00:00:33, Vlan232

---omitido---

SW-L3-NTP#

 

7.2.- Por las dudas buscamos cualquier referencia en la running :

 

SW-L3-NTP#sh runn | inc 192.168.143.244

 ip address 192.168.143.244 255.255.255.248 (...? )

SW-L3-NTP#

 

SW-L3-NTP#sh ip int brief

Interface              IP-Address           OK? Method    Status                Protocol

Vlan1                      unassigned        YES NVRAM  administratively down down

Vlan100                192.168.100.1     YES NVRAM   up                    up

Vlan101                192.168.101.1     YES manual     up                    up

Vlan102                192.168.102.1     YES NVRAM   up                    up

Vlan232                192.168.143.233 YES manual     up                    up

Vlan240                192.168.143.244 YES manual   administratively down down

Vlan200                192.168.200.1     YES manual     up                    up

Vlan201                192.168.201.1     YES NVRAM   up                    up

---omitido---

SW-L3-NTP#

 

La existencia de esta interface VLAN se debe a que en su momento se configuró una “puerta trasera” temporal

con presencia en el segmento DMZ. Esto se utilizaba en caso de mantenimiento, upgrades, copias de configs)

sin tener que crear todos los NATs correspondientes en el firewall.

Paradójicamente quedó con una IP que luego sería utilizada por uno de los switches agregados posteriormente

y es la raíz de los problemas de este escenario.

 

 

8.- Eliminamos configuración residual:

 

Aqui determinamos que la interface VLAN, aunque apagada (en shut), seguía asociada al servicio NTP.

 

SW-L3-NTP#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

SW-L3-NTP(config)#no int Vlan240

SW-L3-NTP(config)#^Z

SW-L3-NTP#

Mar 18 20:57:30.983: NTP: Uninitialized interface Vlan240   (este es el log delator)

Mar 18 20:57:32.070: %SYS-5-CONFIG_I: Configured from console by console

SW-L3-NTP#

 

9.- Volvemos a verificar:

 

9.1.- En el cliente NTP:

 

Switch-C#

.Mar 18 20:58:39.628: NTP message sent to 192.168.143.241, from interface 'Vlan240' (192.168.143.244).

.Mar 18 20:58:39.628: NTP message received from 192.168.143.241 on interface 'Vlan240' (192.168.143.244).

.Mar 18 20:58:39.628: NTP Core(DEBUG): ntp_receive: message received

.Mar 18 20:58:39.628: NTP Core(DEBUG): ntp_receive: peer is 0x082C63F0, next action is 1.

.Mar 18 20:58:39.628: NTP Core (INFO): 192.168.143.241 962A 8A sys_peer

.Mar 18 20:58:39.628: NTP Core (NOTICE): Clock is synchronized.

Switch-C#

 

9.2.- En el server NTP:

                                                                                               (vemos que la IP destino se encuentra nateada)

SW-L3-NTP#                                                                           |

Mar 18 20:58:39.706: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, input feature, MCI Check(109), rtype 0,

forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 20:58:39.706:: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, rcvd 2

Mar 18 20:58:39.706:: IP: s=192.168.143.244 (Vlan100), d=192.168.100.2, len 76, stop process pak for forus packet

Mar 18 20:58:39.706:: IP: tableid=0, s=192.168.143.244 (Vlan100), d=192.168.100.2 (Vlan100), routed via RIB

Mar 18 20:58:39.706:: NTP message received from 192.168.143.244 on interface 'Vlan100' (192.168.100.2).

Mar 18 20:58:39.706:: NTP Core(DEBUG): ntp_receive: message received

Mar 18 20:58:39.706:: NTP Core(DEBUG): ntp_receive: peer is 0x00000000, next action is 3.

Mar 18 20:58:39.706:: IP: s=192.168.100.2 (local), d=192.168.143.244, len 76, local feature, RCLI(7), rtype 0,

forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 20:58:39.706:: IP: s=192.168.100.2 (local), d=192.168.143.244, len 76, local feature, Auth Proxy(16), rtype 0,

forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 20:58:39.706:: IP: tableid=0, s=192.168.100.2 (local), d=192.168.143.244 (Vlan100), routed via FIB

Mar 18 20:58:39.706:: IP: s=192.168.100.2 (local), d=192.168.143.244 (Vlan100), len 76, sending

Mar 18 20:58:39.706:: IP: s=192.168.100.2 (local), d=192.168.143.244 (Vlan100), len 76, output feature, Input interface drop(90),

rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 20:58:39.706:: IP: s=192.168.100.2 (local), d=192.168.143.244 (Vlan100), len 76, output feature, Check hwidb(106),

rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE

Mar 18 20:58:39.709:: IP: s=192.168.100.2 (local), d=192.168.143.244 (Vlan100), len 76, sending full packet

Mar 18 20:58:39.709:: NTP message sent to 192.168.143.244, from interface 'Vlan100' (192.168.100.2).

SW-L3-NTP#

 

9.3.- En el cliente NTP:

 

Switch-C#sh ntp status

Clock is synchronized, stratum 5, reference is 192.168.143.241

nominal freq is 286.1023 Hz, actual freq is 286.1015 Hz, precision is 2**20

ntp uptime is 44901100 (1/100 of seconds), resolution is 3496

reference time is E3FE3D7F.A18396B1 (17:58:39.630 ARG Thu Mar 18 2021)

clock offset is 47.0478 msec, root delay is 149.85 msec

root dispersion is 4012.21 msec, peer dispersion is 1939.31 msec

loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000002647 s/s

system poll interval is 64, last update was 72 sec ago.

Switch-C#

 

10.- Corolario:

 

En este laboratorio pudimos descubrir que un equipo puede tener una interface VLAN configurada pero apagada

y algunos servicios siguen afectados a ella (en este caso NTP pero en otro lab vimos que DHCP-relay también).

 

También descubrimos que los paquetes NTP que llegaban desde un origen similar a la IP de una de las interfaces

del equipo eran descartados aún en el debug.

 

Otra reflexión es que toda configuración residual debe eliminarse para evitar contratiempos como este.

 

(2021) Time is money

Rosario, Argentina