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