Saltearse al contenido

Estrategia NTP y Sincronización

🖧 Infrastructure Context
Network Topology Diagram

Access via SSH from the default terminal. The cluster topology is defined below:

📄 /etc/hosts (Cluster Inventory)

# Management & Controller
10.0.0.15   terminal       # Main Entry Point

# Web & Application Tier
10.0.0.60   web-srv1   # Nginx / Apache
10.0.0.70   app-srv1    # Backend App

# Data Persistence Tier
10.0.0.80   data-001    # Primary DB
10.0.0.90   data-002    # Replica / Backup

# Virtualization & Containers
10.0.0.100  kvm-001        # Libvirt Hypervisor
10.0.0.110  docker-001     # Container Runtime
⚠️
Constraint: Nested SSH is forbidden. Connect directly from terminal to target IPs.

Contexto de Negocio: Los registros de auditoría indican una deriva (drift) en los relojes del sistema a través del clúster, causando fallos en la conciliación de transacciones distribuidas. Se debe aplicar una política estricta de NTP en el nodo controlador.

Objetivos Técnicos:

  1. Upstreams Primarios: Configurar 0.pool.ntp.org y 1.pool.ntp.org como fuentes autoritativas.
  2. Failover: Definir ntp.ubuntu.com y 0.debian.pool.ntp.org como servidores de respaldo.
  3. Ajuste de Rendimiento (Tuning):
    • Intervalo máximo de sondeo (Poll): 1000s.
    • Intervalo de reintento de conexión: 20s.

  1. Auditoría del Estado Actual

    Verifique la versión del sistema operativo y el estado activo del servicio de tiempo antes de aplicar cambios.

    Ventana de terminal
    # Verificar versión de OS
    cat /etc/os-release | grep PRETTY_NAME
    # Verificar estado del servicio
    timedatectl timesync-status
  2. Aplicar Política de Configuración

    Edite el archivo de configuración del demonio /etc/systemd/timesyncd.conf.

    Ventana de terminal
    sudo vim /etc/systemd/timesyncd.conf

    Modifique la sección [Time] para coincidir estrictamente con los requisitos:

    /etc/systemd/timesyncd.conf
    [Time]
    NTP=0.pool.ntp.org 1.pool.ntp.org
    FallbackNTP=ntp.ubuntu.com 0.debian.pool.ntp.org
    PollIntervalMaxSec=1000
    ConnectionRetrySec=20
  3. Reiniciar Servicio

    Aplique la nueva política reiniciando la unidad systemd.

    Ventana de terminal
    sudo systemctl restart systemd-timesyncd.service
  4. Validar Implementación

    Confirme que el servicio está activo y sincronizando con el estrato (stratum) correcto.

    Ventana de terminal
    # Estado del servicio
    sudo systemctl status systemd-timesyncd.service
    # Validar métricas (Poll interval)
    timedatectl timesync-status

    Criterio de Validación: La salida debe mostrar Active: active (running) y las métricas de intervalo coincidiendo con la configuración.

Si la sincronización falla (ej. “Packet not received”), inspeccione el journal del sistema:

Ventana de terminal
sudo journalctl -u systemd-timesyncd --no-pager | tail -n 20

Indicador de Éxito: Busque logs que indiquen: “Contacted time server … (0.pool.ntp.org)”.