

# Configuración de la referencia horaria en su instancia EC2 para que use el Servicio de sincronización temporal de Amazon local
<a name="configure-ec2-ntp"></a>

 El Servicio de sincronización temporal de Amazon proporciona varios métodos para que la instancia de Amazon EC2 se sincronice con un origen de hora local. En primer lugar, cualquier instancia de Amazon EC2 puede acceder a un origen de hora local mediante el Protocolo de tiempo de red (NTP). Además, la versión mejorada del Servicio de sincronización temporal de Amazon ofrece orígenes de hora locales de mayor precisión para las [instancias de Amazon EC2 compatibles](#ptp-hardware-clock-requirements). Lance la instancia compatible en un grupo de ubicación con la estrategia `precision-time` para acceder a un origen de NTP de mayor precisión. Por último, las instancias de Linux lanzadas en un grupo de ubicación de tiempo de precisión tienen acceso a un dispositivo de reloj de hardware PTP (PHC) y la capacidad de recuperar marcas de tiempo de hardware de los paquetes. 

 Cualquier instancia de Amazon EC2 tiene acceso al origen de NTP local. Puede acceder al origen de NTP mediante una dirección IP de enlace local, lo que restringe este tráfico a la VPC sin necesidad de realizar cambios específicos en la configuración de la VPC. Es posible que la AMI ya tenga configurado el daemon de sincronización del reloj para utilizar el origen de NTP local de forma predeterminada. Este origen de NTP está disponible mediante las siguientes direcciones IP: 
+ IPv4: `169.254.169.123`
+ IPv6: `fd00:ec2::123` (solo accesible en [instancias basadas en Nitro](instance-types.md#instance-hypervisor-type)).

 Las [instancias de Amazon EC2 compatibles](#ptp-hardware-clock-requirements) tienen acceso al Servicio de sincronización temporal de Amazon. Para acceder a la versión mejorada del Servicio de sincronización temporal de Amazon, lance una instancia compatible en un grupo de ubicación con la estrategia `precision-time`. No necesita configurar la instancia para beneficiarse de esta mejora si utiliza las direcciones IP de enlace local de NTP. Cualquier sistema operativo puede utilizar esta mejora. Puede verificar que se beneficia del origen de NTP mejorado utilizando el cliente NTP de su elección. 

Las AMI basadas en Linux que se ejecutan en familias de instancias compatibles tienen la opción adicional de obtener la hora desde un dispositivo PHC. El controlador ENA pone este dispositivo a disposición de la instancia. Tanto el origen de NTP mejorado como el dispositivo PHC utilizan la misma fuente de hora de alta precisión. El acceso al origen de hora PHC está optimizado, lo que permite una sincronización más precisa de la instancia de Amazon EC2.

**Consideraciones**
+ El origen de hora NTP ofrece una representación con suavización de segundos intercalares de la escala temporal UTC, mientras que el PHC no aplica dicha suavización. Para obtener más información, consulte [Segundos intercalares](set-time.md#leap-seconds).
+ Solo las instancias de Linux tienen acceso al reloj de hardware PTP local. Las instancias de Windows deben utilizar NTP para acceder a la versión mejorada del Servicio de sincronización temporal de Amazon.
+ Hay un límite de 1024 paquetes por segundo (PPS) para los servicios que utilizan direcciones [locales de enlace](using-instance-addressing.md#link-local-addresses). Este límite incluye la suma de las [consultas de DNS de Route 53 Resolver](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html#vpc-dns-limits), las solicitudes del [servicio de metadatos de instancias (IMDS)](instancedata-data-retrieval.md), las solicitudes del protocolo de tiempo de red (NTP) del Servicio de sincronización temporal de Amazon y las solicitudes del [Servicio de licencias de Windows (para instancias basadas en Microsoft Windows)](https://aws.amazon.com/windows/resources/licensing/). 

**Topics**
+ [Acceder al punto de conexión IPv4 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv4)
+ [Acceder al punto de conexión IPv6 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv6)
+ [Acceder a la versión mejorada del Servicio de sincronización temporal de Amazon](#enhanced-amazon-time-sync-service)
+ [Acceder al reloj de hardware PTP (PHC)](#connect-to-the-ptp-hardware-clock)

## Acceder al punto de conexión IPv4 del Servicio de sincronización temporal de Amazon
<a name="configure-amazon-time-service-IPv4"></a>

Es posible que su AMI ya haya configurado el Servicio de sincronización temporal de Amazon de forma predeterminada. De lo contrario, utilice los siguientes procedimientos para configurar su instancia de modo que use el Servicio de sincronización temporal de Amazon local a través del punto de conexión IPv4.

Para obtener ayuda sobre la resolución de problemas, consulte [Solución de problemas de sincronización NTP en instancias Linux](https://repost.aws/knowledge-center/linux-troubleshoot-ntp-synchronization) o [Solución de problemas de tiempo en instancias Windows](https://repost.aws/knowledge-center/ec2-windows-time-service).

------
#### [ Amazon Linux ]

AL2023 y las versiones recientes de Amazon Linux 2 están configuradas para utilizar el punto de conexión IPv4 del Servicio de sincronización temporal de Amazon de forma predeterminada. Si confirma que su instancia ya está configurada, puede omitir el siguiente procedimiento.

**Para verificar que chrony está configurado para usar el punto de conexión IPv4**  
Ejecute el siguiente comando. En la salida, en la línea que empieza por `^*`, se indica el origen de la hora preferido.

```
[ec2-user ~]$ chronyc sources -v | grep -F ^*
```

```
^* 169.254.169.123               3   4   377    13  -4325ns[-9201ns] +/-  401us
```

**Para configurar chrony para que se conecte al punto de conexión IPv4 en versiones anteriores de Amazon Linux 2**

1. Conéctese a su instancia y desinstale el servicio NTP.

   ```
   [ec2-user ~]$ sudo yum erase 'ntp*'
   ```

1. Instale el paquete `chrony`.

   ```
   [ec2-user ~]$ sudo yum install chrony
   ```

1. Abra el archivo `/etc/chrony.conf` con cualquier editor de texto (como **vim** o **nano**). Agregue la siguiente línea antes de cualquier otra instrucción `server` o `pool` que pueda estar presente en el archivo y guarde los cambios:

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

1. Reinicie daemon `chrony` (`chronyd`).

   ```
   [ec2-user ~]$ sudo service chronyd restart
   ```

   ```
   Starting chronyd:                                          [  OK  ]
   ```
**nota**  
En RHEL y CentOS (hasta la versión 6), el nombre del servicio es `chrony` en lugar de `chronyd`.

1. Para configurar que `chronyd` se inicie cada vez que arranque el sistema, utilice el comando `chkconfig`.

   ```
   [ec2-user ~]$ sudo chkconfig chronyd on
   ```

1. Verifique que `chrony` esté usando el punto de conexión IPv4 `169.254.169.123` para sincronizar la hora.

   ```
   [ec2-user ~]$ chronyc sources -v | grep -F ^*
   ```

   En la salida, `^*` indica el origen de hora preferido.

   ```
   ^* 169.254.169.123               3   6    17    43    -30us[ -226us] +/-  287us
   ```

1. Verifique que `chrony` muestre las métricas de sincronización de hora.

   ```
   [ec2-user ~]$ chronyc tracking
   ```

   ```
   Reference ID    : A9FEA97B (169.254.169.123)
   Stratum         : 4
   Ref time (UTC)  : Wed May 06 00:39:14 2026
   System time     : 0.000002191 seconds fast of NTP time
   Last offset     : +0.000002164 seconds
   RMS offset      : 0.000082968 seconds
   Frequency       : 3.710 ppm slow
   Residual freq   : +0.002 ppm
   Skew            : 0.504 ppm
   Root delay      : 0.000362541 seconds
   Root dispersion : 0.000225028 seconds
   Update interval : 16.1 seconds
   Leap status     : Normal
   ```

------
#### [ Ubuntu ]

**Para configurar chrony para que se conecte al punto de conexión IPv4 en Ubuntu**

1. Conecte su instancia y use `apt` para instalar el paquete `chrony`.

   ```
   ubuntu:~$ sudo apt install chrony
   ```
**nota**  
De ser necesario, ejecute primero para actualizar su instancia `sudo apt update`.

1. Abra el archivo `/etc/chrony/chrony.conf` con cualquier editor de texto (como **vim** o **nano**). Añada la siguiente línea antes de cualquier otra instrucción `server` o `pool` que ya se encuentre en el archivo y guarde los cambios:

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

1. Reinicie el servicio `chrony`.

   ```
   ubuntu:~$ sudo /etc/init.d/chrony restart
   ```

   ```
   Restarting chrony (via systemctl): chrony.service.
   ```

1. Verifique que `chrony` esté usando el punto de conexión IPv4 `169.254.169.123` para sincronizar la hora.

   ```
   ubuntu:~$ chronyc sources -v | grep -F ^*
   ```

   En la salida, en la línea que empieza por `^*`, se indica el origen de la hora preferido.

   ```
   ^* 169.254.169.123               3   6    17    12    +15us[  +57us] +/-  320us
   ```

1. Verifique que `chrony` muestre las métricas de sincronización de hora.

   ```
   ubuntu:~$ chronyc tracking
   ```

   ```
   Reference ID    : A9FEA97B (169.254.169.123)
   Stratum         : 4
   Ref time (UTC)  : Wed May 06 00:39:14 2026
   System time     : 0.000002191 seconds fast of NTP time
   Last offset     : +0.000002164 seconds
   RMS offset      : 0.000082968 seconds
   Frequency       : 3.710 ppm slow
   Residual freq   : +0.002 ppm
   Skew            : 0.504 ppm
   Root delay      : 0.000362541 seconds
   Root dispersion : 0.000225028 seconds
   Update interval : 16.1 seconds
   Leap status     : Normal
   ```

------
#### [ SUSE Linux ]

A partir de SUSE Linux Enterprise Server 15, `chrony` es la implementación predeterminada de NTP.

**Para configurar chrony para que se conecte al punto de conexión IPv4 en SUSE Linux**

1. Abra el archivo `/etc/chrony.conf` con cualquier editor de texto (como **vim** o **nano**).

1. Verifique que el archivo contenga la siguiente línea:

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

   Si esta línea no existe, añádala.

1. Comente el resto de líneas de servidores o grupos.

1. Abra YaST y habilite el servicio chrony.

------
#### [ Windows ]

A partir de la versión de agosto de 2018, las AMI de Windows utilizan el Servicio de sincronización temporal de Amazon de forma predeterminada. No se requiere ninguna configuración adicional para las instancias iniciadas desde estas AMI y puede omitir los siguientes procedimientos.

Si utiliza una AMI que no tiene el Servicio de sincronización temporal de Amazon de forma predeterminada, compruebe primero su configuración de NTP actual. Si la instancia ya utiliza el punto de conexión de IPv4 del Servicio de sincronización temporal de Amazon, no es necesario realizar ninguna otra configuración. Si la instancia no utiliza el Servicio de sincronización temporal de Amazon, complete el procedimiento para cambiar el servidor NTP para que utilice el Servicio de sincronización temporal de Amazon.

**Para verificar la configuración de NTP**

1. Desde la instancia, abra una ventana del símbolo del sistema.

1. Para obtener la configuración de NTP actual, escriba el siguiente comando:

   ```
   w32tm /query /configuration
   ```

   Este comando devuelve los valores de configuración actuales para la instancia de Windows y mostrará si está conectado al Servicio de sincronización temporal de Amazon.

1. (Opcional) Para obtener el estado de la configuración actual, escriba el siguiente comando:

   ```
   w32tm /query /status
   ```

   Este comando devuelve información como la última vez que la instancia se sincronizó con el servidor NTP y el intervalo de sondeo.

**Cómo cambiar el servidor NTP de modo que use el Servicio de sincronización temporal de Amazon**

1. Desde la ventana del símbolo del sistema, ejecute el siguiente comando:

   ```
   w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
   ```

1. Para comprobar la nueva configuración, use el comando siguiente:

   ```
   w32tm /query /configuration
   ```

   En la salida que devuelve, verifique que `NtpServer` muestra el punto de conexión IPv4 `169.254.169.123`.

**Configuraciones predeterminadas de NTP para las AMI de Windows de Amazon**

Generalmente, las imágenes de máquinas de Amazon (AMI) se ajustan a los valores predeterminados de fábrica, salvo en los casos en que se requieren cambios para que funcione en la infraestructura de EC2. Se ha determinado que las siguientes configuraciones funcionan bien en un entorno virtual, así como para mantener cualquier desfase del reloj en un segundo de precisión: 
+ **Intervalo de actualización**: controla la frecuencia con la que el servicio de hora ajustará la hora del sistema para que sea exacta. AWS configura el intervalo de actualización para que se produzca una vez cada dos minutos.
+ **Servidor NTP**: a partir de la versión de agosto de 2018, las AMI ahora utilizan de forma predeterminada el Servicio de sincronización temporal de Amazon. Se puede acceder a este servicio de hora desde cualquier Región de AWS en el punto de conexión IPv4 169.254.169.123. Además, el indicador 0x9 muestra que el servicio de hora está actuando como cliente, y que se debe usar `SpecialPollInterval` para determinar con qué frecuencia debe registrarse en el servidor de hora configurado.
+ **Tipo**: “NTP” significa que el servicio actúa como cliente NTP independiente en lugar de actuar como parte de un dominio.
+ **Habilitado e InputProvider**: el servicio de hora está habilitado y proporciona la hora al sistema operativo.
+ **Intervalo de sondeo especial**: hace comprobaciones en el servidor NTP configurado cada 900 segundos (15 minutos).
**nota**  
Para las AMI de Windows Server 2025, el valor de `SpecialPollInterval` es de 1024 segundos en lugar de 900 segundos.


| Ruta de registro | Nombre de la clave | Datos | 
| --- | --- | --- | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\Config | UpdateInterval | 120 | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\Parameters | NtpServer | 169.254.169.123,0x9 | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\Parameters | Tipo | NTP | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\TimeProviders\\NtpClient | Habilitado | 1 | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\TimeProviders\\NtpClient | InputProvider | 1 | 
| HKLM:\\System\\CurrentControlSet\\services\\w32time\\TimeProviders\\NtpClient | SpecialPollInterval | 900 (Windows Server 2016, 2019 y 2022) o 1024 (Windows Server 2025) | 

------

## Acceder al punto de conexión IPv6 del Servicio de sincronización temporal de Amazon
<a name="configure-amazon-time-service-IPv6"></a>

En esta sección se explica en qué difieren los pasos descritos en [Acceder al punto de conexión IPv4 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv4) si configura su instancia de modo que use el Servicio de sincronización temporal de Amazon local a través del punto de conexión IPv6. No se explica todo el proceso de configuración de Servicio de sincronización temporal de Amazon.

Solo se puede acceder al punto de conexión IPv6 en [instancias integradas en Nitro](instance-types.md#instance-hypervisor-type).

No se recomienda utilizar juntas las entradas del punto de conexión IPv4 e IPv6. Los paquetes NTP de IPv4 e IPv6 provienen del mismo servidor local para su instancia. No es necesario configurar los puntos de conexión de IPv4 e IPv6 y esto no mejorará la precisión de la hora de la instancia.

------
#### [ Linux ]

En función de la distribución de Linux que utilice, cuando llegue al paso para editar el archivo `chrony.conf`, utilizará el punto de conexión IPv6 del Servicio de sincronización temporal de Amazon (`fd00:ec2::123`) en lugar del punto de conexión IPv4 (`169.254.169.123`):

```
server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4
```

Guarde el archivo y verifique que chrony esté utilizando el punto de conexión IPv6 `fd00:ec2::123` para sincronizar la hora: 

```
[ec2-user ~]$ chronyc sources -v
```

Si ve el punto de conexión IPv6 `fd00:ec2::123` en la salida, la configuración está completa.

------
#### [ Windows ]

Cuando llegue al paso para cambiar el servidor NTP para que utilice el Servicio de sincronización temporal de Amazon, utilizará el punto de conexión IPv6 del Servicio de sincronización temporal de Amazon (`fd00:ec2::123`) en lugar del punto de conexión IPv4 (`169.254.169.123`):

```
w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update
```

Compruebe que la nueva configuración utilice el punto de conexión IPv6 `fd00:ec2::123` para sincronizar la hora:

```
w32tm /query /configuration
```

En la salida, verifique que `NtpServer` muestra el punto de conexión IPv6 `fd00:ec2::123`.

------

## Acceder a la versión mejorada del Servicio de sincronización temporal de Amazon
<a name="enhanced-amazon-time-sync-service"></a>

 La versión mejorada del Servicio de sincronización temporal de Amazon ofrece orígenes de hora locales de mayor precisión para las instancias de Amazon EC2 compatibles. Las instancias lanzadas en un grupo de ubicación con una estrategia `precision-time` pueden acceder a estos orígenes locales. Recomendamos utilizar grupos con ubicación de tiempo de precisión para las aplicaciones que requieren una hora más precisa, ya sea desde el origen de NTP de enlace local o desde un dispositivo de reloj de hardware PTP (PHC) en una instancia de Linux. Cuando lance instancias en un grupo de ubicación de tiempo de precisión, AWS las ubicará en hardware compatible con acceso directo a orígenes de hora de alta precisión de la infraestructura de AWS. 

**Ventajas principales**
+  **Origen de NTP mejorado de forma predeterminada:** la instancia tiene acceso inmediato a un origen de hora NTP local mejorado si utiliza las direcciones IP de enlace local de NTP, tal como se describe en la sección anterior. 
+  **Sincronización del reloj con precisión de microsegundos**: configure la instancia de Amazon EC2 con Linux para utilizar un dispositivo de reloj de hardware PTP y lograr una sincronización del reloj con precisión de microsegundos. 
+  **Implementación simplificada**: una única estrategia de ubicación garantiza que todas las instancias dispongan de funcionalidades de tiempo de precisión. 
+  **Marcas de tiempo de hardware para paquetes**: acceda a marcas de tiempo de bajo nivel de los paquetes para realizar mediciones de red. 
+  **Sin costo adicional**: los grupos con ubicación de tiempo de precisión están disponibles sin costo adicional. 

**Reglas y limitaciones**
+  Los grupos con ubicación de tiempo de precisión están disponibles en todas las regiones de AWS comerciales. 
+  Los grupos con ubicación de tiempo de precisión admiten las siguientes familias de instancias de Amazon EC2 de séptima generación (Gen7) y posteriores: 
  +  **Uso general**: M7a, M7g, M7g-flex, M7gd, M7i, M7i-flex, M8a, M8g, M8g-flex 
  +  **Optimizadas para la computación:** C7a, C7gd, C7i, C7i-flex, C8g, C8g-flex, C8gd 
  +  **Optimizadas para memoria**: R7a, R7g, R7i, R7id, R8g, X8adez, X8adz-3tb, X8adz-6tb, X8adzs, X8aedez, X8aedz-3tb, X8aedz-6tb, X8aez, X8az, X8g, X8ge 
  +  **Optimizadas para el almacenamiento: **I8g, I8ge 
+  Si inicia o lanza una instancia en un grupo de ubicación de tiempo de precisión y no hay suficiente hardware disponible para proporcionar acceso a la versión mejorada del Servicio de sincronización temporal de Amazon, la solicitud no se completará correctamente. 
+  Si detiene una instancia en un grupo de ubicación de tiempo de precisión y luego la vuelve a iniciar, la instancia seguirá ejecutándose en el grupo de ubicación. Sin embargo, el inicio podría fallar si no hay suficiente hardware disponible para proporcionar acceso a la versión mejorada del Servicio de sincronización temporal de Amazon. 
+  Amazon EC2 incorpora continuamente hardware compatible con la versión mejorada del Servicio de sincronización temporal de Amazon. Si la solicitud falla debido a que no hay capacidad suficiente, vuelva a intentarlo más tarde o pruebe con otra zona de disponibilidad. Para obtener más información, consulte [Solución de problemas de inicialización de instancias de Amazon EC2](troubleshooting-launch.md). 
+ Se aplican las reglas y limitaciones de los grupos de ubicación. Para obtener más información, consulte [Grupos de ubicación para instancias de Amazon EC2](placement-groups.md) 

### Crear un grupo de ubicación de tiempo de precisión
<a name="create-precision-time-placement-group"></a>

Puede crear un grupo de ubicación de tiempo de precisión mediante la CLI de AWS, la consola de administración de AWS o los SDK de AWS, especificando la estrategia `precision-time`.

**Uso de la CLI de AWS**  
Use el siguiente comando:

```
aws ec2 create-placement-group \
    --group-name {{my-precision-time-pg}} \
    --strategy precision-time
```

El comando devuelve un ARN del grupo de ubicación, que utilizará al crear reservas de capacidad, y un nombre o un ID de grupo, que utilizará al lanzar instancias y vincular grupos de ubicación.

### Iniciar una instancia
<a name="launch-instance-precision-time"></a>

Después de crear un grupo de ubicación de tiempo de precisión, especifíquelo al lanzar instancias para acceder a la versión mejorada del Servicio de sincronización temporal de Amazon:

```
aws ec2 run-instances \
    --image-id {{ami-0abcdef1234567890}} \
    --instance-type {{r7g.2xlarge}} \
    --placement GroupId={{pg-0aaa1111111111111}}
```

### Verificar el acceso a la versión mejorada del Servicio de sincronización temporal de Amazon
<a name="verify-enhanced-local-ntp-time-source"></a>

Después de lanzar la instancia en un grupo de ubicación de tiempo de precisión, se beneficiará de un origen de hora NTP mejorado.

Por ejemplo, si utiliza el daemon chronyd en la instancia, puede verificar que el origen de hora NTP ahora se identifica como un Stratum 1 y presenta métricas de precisión del reloj mejoradas:

```
[ec2-user ~]$ chronyc sources
```

```
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123               1   4   377     3  +3477ns[+4689ns] +/-   91us
```

Verifique que `chrony` muestre las métricas de sincronización de hora.

```
[ec2-user ~]$ chronyc tracking
```

```
Reference ID    : A9FEA97B (169.254.169.123)
Stratum         : 2
Ref time (UTC)  : Wed May 06 01:33:43 2026
System time     : 0.000000276 seconds fast of NTP time
Last offset     : +0.000000331 seconds
RMS offset      : 0.000001929 seconds
Frequency       : 2.870 ppm fast
Residual freq   : +0.000 ppm
Skew            : 0.031 ppm
Root delay      : 0.000107584 seconds
Root dispersion : 0.000036476 seconds
Update interval : 16.2 seconds
Leap status     : Normal
```

## Acceder al reloj de hardware PTP (PHC)
<a name="connect-to-the-ptp-hardware-clock"></a>

 El reloj de hardware PTP (PHC) forma parte de [AWS Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). Se puede acceder a él directamente desde las [instancias bare metal y virtualizadas de Amazon EC2 compatibles](#ptp-hardware-clock-requirements) que se lanzan en un grupo de ubicación de tiempo de precisión. Actualmente, el dispositivo PHC solo es accesible desde instancias de Linux. En las siguientes secciones se describe cómo configurar y verificar el dispositivo PHC en la instancia de Linux. 

### Requisitos
<a name="ptp-hardware-clock-requirements"></a>
+  El controlador de ENA, versión 2.10.0 o posteriores, está instalado en un sistema operativo compatible. 
+  Una instancia de Amazon EC2 que ejecuta Linux. Para obtener más información sobre los sistemas operativos compatibles, consulte los [requisitos previos](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#prerequisites) del controlador en *GitHub*. 
+  Una instancia de Amazon EC2 lanzada en un grupo de ubicación de tiempo de precisión (consulte [Acceder a la versión mejorada del Servicio de sincronización temporal de Amazon](#enhanced-amazon-time-sync-service)). 

**nota**  
 La versión mejorada del Servicio de sincronización temporal de Amazon y el dispositivo PHC siguen estando disponibles sin un grupo de ubicación de tiempo de precisión en las siguientes regiones y para las familias de instancias específicas. Para obtener la mejor experiencia, recomendamos lanzar instancias de Amazon EC2 en grupos de ubicación de tiempo de precisión.   
Regiones de AWS con acceso heredado compatible: Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Asia-Pacífico (Malasia), Asia-Pacífico (Tailandia), Asia-Pacífico (Tokio) y Europa (Estocolmo)
Zonas locales con acceso heredado compatible: Este de EE. UU. (Ciudad de Nueva York)
Familias de instancias con acceso heredado compatible:  
**De uso general: **M7a, M7g, M7i
**Optimizadas para la memoria: **R7a, R7g, R7i
**Optimizadas para el almacenamiento: **I8g, I8ge

### Compilar y habilitar el controlador ENA con compatibilidad para PHC
<a name="compile-enable-ena-driver-phc"></a>

 Consulte siempre las instrucciones más recientes de la versión más reciente del controlador Elastic Network Adapter (ENA) en la [documentación del controlador ENA](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#ptp-hardware-clock-phc) en *GitHub* para obtener información específica para su sistema operativo. A continuación, se ofrece una descripción general de los pasos para Amazon Linux. 

Antes de comenzar, asegúrese de que la instancia cumpla los requisitos indicados en [Requisitos](#ptp-hardware-clock-requirements).

**Compilar y habilitar el controlador ENA con compatibilidad para PHC**

1. Instale los requisitos previos.

   ```
   [ec2-user ~]$ sudo yum update
   [ec2-user ~]$ sudo yum install kernel-devel-$(uname -r) git
   [ec2-user ~]$ sudo reboot
   ```

1. Cargue el módulo PTP requerido.

   ```
   [ec2-user ~]$ sudo modprobe ptp
   ```

1. Recupere la versión más reciente del controlador ENA (versión 2.10.0 o posterior).

   ```
   [ec2-user ~]$ git clone https://github.com/amzn/amzn-drivers.git /tmp/amzn-drivers
   ```

1. Cree el controlador ENA `ena.ko` con compatibilidad para PHC.

   ```
   [ec2-user ~]$ cd /tmp/amzn-drivers/kernel/linux/ena
   [ec2-user ~]$ ENA_PHC_INCLUDE=1 make
   ```

1. Vuelva a cargar el controlador ENA y habilite el dispositivo PHC.

   ```
   [ec2-user ~]$ sudo rmmod ena && sudo insmod ena.ko phc_enable=1
   ```

1. Verifique que el controlador ENA cargado tenga compatibilidad para PHC.

   ```
   [ec2-user ~]$ modinfo ena | grep -E "phc_enable"
   ```

   ```
   parm:           phc_enable:Enable PHC.
   ```

1. Verifique que la compatibilidad para PHC esté habilitada con el controlador ENA.

   ```
   [ec2-user ~]$ cat /sys/module/ena/parameters/phc_enable
   ```

   ```
   1
   ```

Para obtener instrucciones sobre cómo instalar el controlador y activar la opción phc\_enable al reiniciar, consulte el archivo [README del controlador ENA](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/README.rst) en *GitHub*.

### Verificar la configuración del dispositivo PTP
<a name="verify-ptp-device-configuration"></a>

Compruebe que el dispositivo del reloj de hardware PTP de ENA aparezca en su instancia.

```
[ec2-user ~]$ for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done
```

Resultado previsto

```
/sys/class/ptp/ptp{{<index>}}: ena-ptp-{{<PCI slot>}}
```

Donde:
+ `{{index}}` es el índice de reloj de hardware PTP registrado en el kernel.
+ `{{PCI slot}}` es la ranura PCI del controlador Ethernet de ENA. Es la misma ranura que se muestra en `lspci | grep ENA`.

Ejemplo de resultado

```
/sys/class/ptp/{{ptp0}}: ena-ptp-{{05}}
```

Si `ena-ptp-{{<PCI slot>}}` no está en la salida, significa que el controlador de ENA no se instaló correctamente. Revise los pasos indicados en [Compilar y habilitar el controlador ENA con compatibilidad para PHC](#compile-enable-ena-driver-phc).

### Configuración el enlace simbólico PTP
<a name="configure-ptp-symlink"></a>

Los dispositivos PTP suelen tener el nombre `/dev/ptp0`, `/dev/ptp1`, etc., y su índice depende del orden de inicialización del hardware. La creación de un enlace simbólico garantiza que aplicaciones como chrony hagan referencia de forma coherente al dispositivo correcto, independientemente de los cambios de índice.

Las AMI más recientes de Amazon Linux 2023 incluyen una regla `udev` que crea el enlace simbólico `/dev/ptp_ena` y apunta a la entrada `/dev/ptp` correcta asociada al host de ENA.

En primer lugar, compruebe que el enlace simbólico está presente ejecutando el siguiente comando.

```
[ec2-user ~]$ ls -l /dev/ptp*
```

Ejemplo de resultado

```
crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0
lrwxrwxrwx 1 root root      4 Jan 31 2025 /dev/ptp_ena -> ptp0
```

Donde:
+ `/dev/ptp{{<index>}}` es la ruta al dispositivo PTP.
+ `/dev/ptp_ena` es el enlace simbólico constante, que apunta al mismo dispositivo PTP.

Si el enlace simbólico `/dev/ptp_ena` está presente, continúe con [Configurar el daemon chronyd para utilizar el dispositivo PHC](#configure-chronyd-phc). Si no aparece, realice una de las siguientes opciones:

**Crear el enlace simbólico PTP**

1. Agregue la siguiente regla `udev`.

   ```
   [ec2-user ~]$ echo "SUBSYSTEM==\"ptp\", ATTR{clock_name}==\"ena-ptp-*\", SYMLINK += \"ptp_ena\"" | sudo tee -a /etc/udev/rules.d/53-ec2-network-interfaces.rules
   ```

1. Reinicie la instancia o ejecute el siguiente comando para volver a cargar la regla `udev`.

   ```
   [ec2-user ~]$ sudo udevadm control --reload-rules && sudo udevadm trigger
   ```

### Configurar el daemon chronyd para utilizar el dispositivo PHC
<a name="configure-chronyd-phc"></a>

El daemon de sincronización del reloj chronyd debe configurarse para utilizar el dispositivo PHC como un origen de hora adicional, mediante el enlace simbólico `/dev/ptp_ena` para identificar el dispositivo.

**Configurar el daemon chronyd para utilizar el dispositivo PHC**

1. Edite `/etc/chrony.conf` con un editor de texto y agregue la siguiente línea:

   ```
   refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
   ```

1. Reinicie chrony.

   ```
   [ec2-user ~]$ sudo systemctl restart chronyd
   ```

1. Verifique que chrony esté utilizando el reloj de hardware PTP. El dispositivo PHC0 debe ser el origen de hora preferido con un valor de Stratum 0. El origen de hora NTP local (si está configurado) debe tener un valor de Stratum 1.

   ```
   [ec2-user ~]$ chronyc sources
   ```

   ```
   MS Name/IP address         Stratum Poll Reach LastRx Last sample
   ===============================================================================
   #* PHC0                          0   0   377     0   +184ns[ +198ns] +/- 5032ns
   ^- 169.254.169.123               1   4   377     8    -18us[  -18us] +/-  115us
   ```

### Verificar las marcas de tiempo de hardware para paquetes
<a name="verify-hardware-packet-timestamping"></a>

El controlador ENA cargado con compatibilidad para PHC proporciona acceso a las marcas de tiempo de hardware para paquetes. Puede verificar que esta funcionalidad sea compatible mediante el comando `ethtool -T {{interface}}`.

Para obtener más información sobre el uso de las marcas de tiempo de hardware para paquetes, consulte la [documentación de Linux sobre el marcado temporal de paquetes](https://www.kernel.org/doc/html/latest/networking/timestamping.html).

```
[ec2-user ~]$ sudo ethtool -T {{ens5}}
```

```
Time stamping parameters for ens5:
Capabilities:
        software-transmit
        hardware-receive
        software-receive
        software-system-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes:
        none
        all
```

Si el resultado muestra `hardware-receive` en la lista de capacidades, las marcas de tiempo de hardware para paquetes están disponibles en la instancia.