Tener fecha y hora correctamente configuradas en tu red es muy importante. No solo para tener datos precisos de inicios de sesión o eventos logueados sino también para sincronizar equipos que requieran precisión y no tener fallas o alteraciones en sus sincros. Certficados de seguridad, dispositivos de red o controladores de dominio necesitan mantener sus horas sincronizadas al detalle para funcionar pero hay sistemas que necesitan más precisión que un simple NTP. Hoy te cuento de algunos con los que estuve experimentando.
NTP y SNTP
Network Time Protocol es el protocolo más utilizado para sincronizar la hora en Servidores, Terminales y dispositivos de red entre otros.
NTP, fue creado por David L. Mills en 1981 en la universidad de Delaware. Es un protocolo diseñado para sincronizar los relojes de los sistemas informáticos a través de redes. Usa una estructura jerárquica y un algoritmo de sincronización super preciso. NTP tiene varias versiones (NTPv1 en 1988, NTPv2 en 1989, NTPv3 en 1992 y NTPv4 en 2010). En cada versión ha mejorado su precisión, eficiencia y seguridad. El protocolo escucha el puerto UDP 123 y ahora se usa en todo el mundo.
Tiene una versión más simple pero más insegura, SNTP (Simple..NTP) que se usa normalmente en dispositivos embebidos o que necesitan poca presición.
Con NTP vas a poder sincronizar tus equipos al milisegundo. Es lo que más usamos en redes y servidores y seguramente ya lo probaste en algún momento.
Cómo configuramos un server NTP en Cisco y, porqué no, un cliente también.
#Modo exec privilegiado y configuramos el router normalmente
enable
configure terminal
interface gig0/0
ip address 192.168.1.1 255.255.255.0
no shutdown
exit
#Configuramos la hora
clock set 12:00:00 Jul 17 2024
#Seteamos la instancia como master
ntp master 1
end
#Revisamos si está funcionando bien
show ntp status
show ntp associations
Si fuera un cliente configuramos así:
enable
configure terminal
interface gig0/0
ip address 192.168.1.2 255.255.255.0
no shutdown
exit
#Definimos el server horario de donde vendrá la hora
ntp server 192.168.1.1
end
En Mikrotik
#Modo Servidor
/system ntp server set enabled=yes
#Si queremos configurar alguna opción más
/system ntp server set broadcast=no
/system ntp server set manycast=no
/system ntp server set multicast=no
/system ntp server set broadcast-address=0.0.0.0
#Modo CLiente
/system ntp client set enabled=yes primary-ntp=192.168.1.1 secondary-ntp=192.168.1.2
PTP IEEE-1588
Que pasa si necesitamos más precisión? Si Si, NTP es precisa al milisegundo… pero si necesito precisión al Microsegundo?. Hoy en día proliferan, entre otras, las redes EtherCat las cuales muchas veces necesitan una sincronización horaria más precisa. Para estos casos existe PTP (Precition Time Protocol). Se usa normalmente en redes que necesitan muchísima precisión a muy bajo costo.
El Protocolo de Tiempo de Precisión (PTP), fue creado por John C. Eidson de Hewlett-Packard y estandarizado como IEEE 158. Desde que fue creado en los 80s y la primera publicación del estándar en 2002, ha evolucionado muchísimo con mejoras fuertes en 2008 (PTPv2 la versión que más usamos) y 2019 (PTPv3). Funciona en un modelo maestro/esclavo. PTP no incluye medidas de seguridad por defecto, hay que asegurarlo con tecnologías adicionales (acl, monitoreo, etc). PTP utiliza los puertos UDP 319 y 320.
Modo de Funcionamiento
PTP utiliza un modelo maestro/esclavo (master/slave) para sincronizar los relojes en una red. La precisión de la sincronización se logra mediante el intercambio de mensajes de tiempo entre los dispositivos.
- Roles de los Dispositivos:
- Grandmaster: El reloj de referencia en la red, considerado el más preciso.
- Slave: Los dispositivos que se sincronizan con el Grandmaster.
- Boundary Clocks: Dispositivos que actúan como intermediarios entre el Grandmaster y los Slaves para mejorar la precisión.
- Mensajes Clave:
- Sync: Mensaje enviado por el Grandmaster para indicar el tiempo actual.
- Follow_Up: Mensaje que proporciona información adicional sobre el Sync.
- Delay_Req: Enviado por los Slaves para medir el retraso en la red.
- Delay_Resp: Respuesta del Grandmaster al Delay_Req.
- Proceso de Sincronización:
- El Grandmaster envía un mensaje Sync.
- Los Slaves reciben el mensaje y registran la hora de llegada.
- El Grandmaster envía un mensaje Follow_Up con la marca de tiempo exacta del mensaje Sync.
- Los Slaves envían un mensaje Delay_Req al Grandmaster.
- El Grandmaster responde con un mensaje Delay_Resp, permitiendo a los Slaves calcular el retraso de ida y vuelta y ajustar sus relojes.
Encontré este documento que explica con detalle el funcionamiento de PTP y su implementación en Cisco: https://www.cisco.com/c/es_mx/support/docs/ios-nx-os-software/ios-xr-software/217579-configure-ptp-and-synce-basics-with-cisc.html
De igual forma, los ejemplos de como implementarlo no me funcionaron en packet tracer para Cisco y tampoco en gns3 con Mikrotik. En Cisco funciona en dispositivos con IOS-XE e IOS-XR. Al parecer necesita Hardware específico para hacerlo. En Mikrotik la documentación es más clara:
https://help.mikrotik.com/docs/display/ROS/Precision+Time+Protocol
En RouterOS:
#Primero hay que crear un perfil
/system ptp add name=ptp1
#o también se puede hacer en las versiones 7
/interface ptp add name=ptp1
#Así vemos el estado
/system ptp print
Flags: I - inactive, X - disabled
0 name="ptp1" priority1=auto delay-mode=auto transport=auto profile=default
#Luego hay que agregarle las interfaces donde va a correr el servicio
/system ptp port add interface=ether1 ptp=ptp1
#Para ver el estado de los puertos
/system ptp port print
Flags: I - inactive
0 ptp=ptp1 interface=ether8
1 ptp=ptp1 interface=ether22
En Cisco IOS (XE o XR)
#modo exec priv y configuracion global
enable
configure terminal
#acá empezamos, perfil e interface.
clock protocol ptp
interface GigabitEthernet0/1
ptp
interface GigabitEthernet0/1
#si va como master
ptp mode master
#opción si va como esclavo
ptp mode slave
end
#Así revisamos el estado
show ptp clock
show ptp port state
#con este comando vemos quién es el server que está propagando
show ptp parent
Sistemas alternativos de precisión
Existen algunos sistemas de sincronización horario que se han vuelto rapidamente en los preferidos y se usan conjuntamente con NTP y PTP.
Global Positioning System (GPS):
No es un protocolo de red en sí, pero es una fuente de tiempo precisa que puede ser utilizada para sincronizar relojes. Los receptores GPS pueden proporcionar una señal de tiempo precisa a otros dispositivos. Generalmente, el GPS puede ofrecer una precisión de sincronización del tiempo de alrededor de 10 a 40 nanosegundos (ns) en relación con el tiempo del Sistema de Tiempo del GPS, que se mantiene mediante una red de relojes atómicos en los satélites GPS. De todas formas las condiciones atmosfericas y la ubicación del receptor gps pueden alterar esta precisión.
Se usa en sistemas de navegación, telecomunicaciones, y como fuente de tiempo para otros protocolos de sincronización.
White Rabbit (WR):
Es una extensión del protocolo PTP, desarrollada para proporcionar sincronización de tiempo precisa en el rango de sub-nanosegundos. Fue desarrollado como una extensión de Ethernet para proporcionar sincronización sub-nanosegundo.Comenzó como un proyecto en el CERN para satisfacer la necesidad de sincronización precisa en grandes aceleradores de partículas. (Ya se deben imaginar la precisión). Se basa en tecnologías como IEEE 1588 Precision Time Protocol (PTP) y Synchronous Ethernet (SyncE). Es preciso cerca de los 100 pico-segundos.
Utiliza el protocolo PTP para la sincronización de tiempo, también SyncE para la sincronización de frecuencia a través de la red e implementa corrección precisa de retardos en cables y switches para mejorar la precisión calculando los delays sobre ptp.
Se usa en redes de distribución de tiempo en instalaciones científicas y experimentos de física de alta energía.
Inter-range Instrumentation Group Time Code (IRIG-B):
Este es un protocolo de sincronización de tiempo usado principalmente en sistemas militares y de aviación. Lo agrego para conocimiento general pero es usado más que nada en sistemas electrónicos. Su precisión es de microsegundos.
Se usa en sistemas de telemetría, sistemas de radar y sistemas de control de vuelo.
Conclusiones
Cada uno de estos protocolos tiene sus propias ventajas y desventajas. En cuestión de redes es claro que NTP sigue siendo y será por un tiempo más un estandar dificil de reemplazar. PTP es una curiosidad interesante hasta que tu red de producción necesita correción de errores, de ahí la necesidad de routers específicos para implementar este protocolo.
Quiero que te lleves un vistazo general de los diferentes protocolos de tiempo al terminar este texto y elijas con sabiduría!.
Y si tenés dudas o necesitas ayuda, no dudes en escribirme.