Introducción al protocolo de tiempo de red y al tiempo de red de sincronización del servidor

Introducción a NTP

Network Time Protocol (inglés: Network Time Protocol, abreviatura: NTP) es un protocolo de red para la sincronización de reloj entre sistemas informáticos con latencia variable en la red de datos mediante conmutación de paquetes, ubicado en la capa de aplicación del modelo OSI. Desde 1985, NTP es uno de los protocolos de Internet más antiguos que todavía se utilizan. NTP fue diseñado por David L. Mills de la Universidad de Delaware.
NTP tiene la intención de sincronizar la hora universal coordinada (UTC) de todas las computadoras participantes con unos pocos milisegundos de error. Utiliza una versión modificada del algoritmo de Marzullo para seleccionar un servidor de hora preciso y está diseñado para mitigar el impacto de los retrasos variables de la red. NTP generalmente puede mantener un error de decenas de milisegundos en la Internet pública y puede lograr una precisión de más de 1 milisegundo en un entorno LAN ideal. El enrutamiento asimétrico y el control de congestión pueden causar errores de 100 milisegundos (o más).
Este protocolo generalmente se describe como una arquitectura maestro-esclavo, pero también se puede usar en una red de igual a igual, donde ambos pares pueden identificar el otro extremo como una fuente potencial de tiempo. Las marcas de tiempo de envío y recepción se implementan utilizando el puerto 123 del Protocolo de datagramas de usuario (UDP). Esto también puede usar transmisión o multidifusión, donde el cliente escucha pasivamente las actualizaciones de tiempo después del intercambio inicial de calibración de ida y vuelta. NTP proporciona una advertencia de un próximo ajuste en un segundo intercalar, pero no transmite información sobre la zona horaria local o el horario de verano.
El protocolo actual es la versión 4 (NTPv4), que es un estándar recomendado en el documento RFC 5905. Es compatible con versiones anteriores de la versión 3 especificada en RFC 1305.

El componente ntp es una implementación de software del protocolo ntp en la plataforma Linux. Algunos sistemas operativos Linux tienen el componente ntp instalado de forma predeterminada. Si ntp no se instala primero, el protocolo se puede utilizar para completar la sincronización horaria.

Método de sincronización de tiempo cuando el servidor puede acceder a Internet

DNS configurado

El servidor puede acceder a la red externa y está configurado con DNS, directamente

ntpdate 0.cn.pool.ntp.org 或 nptdate ntp1.aliyun.com

Puede sincronizar la hora de la red externa.

DNS no está configurado

Por razones de seguridad, algunos servidores están conectados a la red externa, pero el DNS no está configurado, en este caso, la hora debe sincronizarse directamente desde la dirección IP del servidor de hora. Puede utilizar la ip del servidor de tiempo de Aliyun (ntp1.aliyun.com) para sincronizar directamente,

ntpdate 120.24.81.91  或者 清华的时间服务器ntpdate 84.16.73.33

Método de sincronización horaria cuando el servidor no puede acceder a Internet

Suponiendo que hay un servidor en la LAN (la dirección IP es IP_TIME), la hora es correcta, configure este servidor como un servidor de tiempo LAN ntp y otros servidores se ejecutan

ntpdate IP_TIME

De esta forma, al menos todos los servidores están sincronizados con la hora de este, si este necesita sincronizarse con la hora de la red depende de los requisitos funcionales. Si realmente lo necesitas, este debe poder acceder a Internet, sincronizar la hora de la red como se describió anteriormente, y el resto puede permanecer en el estado de no poder acceder a Internet.

por ejemplo

Suponga que hay dos servidores Linux A y B, y ambos necesitan estar sincronizados con la hora de la red.
A está conectado a la red externa. Aunque el servidor DNS no está configurado, puede hacer ping a 120.24.81.91 (Alibaba Cloud Time Server). Puede sincronizar la hora directamente.
B no abre la red externa y el ping 120.24.81.91 informará de conexión: La red no está accesible, lo que definitivamente no puede sincronizar la hora desde el servidor de red externo. Ejecute ntpdate 120.24.81.91, informará que no se ha encontrado ningún servidor adecuado para la sincronización o no se pueden utilizar servidores, saliendo.
Introducción al protocolo de tiempo de red y al tiempo de red de sincronización del servidor
La solución se divide en tres pasos, los firewalls de A y B se cierran y todo el proceso es operado por la cuenta root.

  1. A sincronizar la hora desde la red externa,
  2. Configure A como un servidor ntp (servidor NTP),
  3. B sincroniza el tiempo de A.

Tiempo de red ASync

La primera hora de sincronización del servidor se muestra de la siguiente manera

[root@localhost ~]# ntpdate 120.24.81.91
10 Aug 09:46:07 ntpdate[15071]: step time server 120.24.81.91 offset 1.423469 sec

La segunda vez se muestra de la siguiente manera

[root@localhost ~]# ntpdate 120.24.81.91
10 Aug 14:16:14 ntpdate[12150]: adjust time server 120.24.81.91 offset -0.030012 sec

Cada vez que se ejecuta, el error detrás del desplazamiento cambiará y la tendencia es cada vez más precisa.

Configurar A como servidor NTP

Para configurar A como servidor NTP, primero modifique el archivo de configuración /etc/ntp.conf. Cómo modificar y mirar hacia abajo.
Una vez completada la modificación, ejecute el siguiente comando cat, excepto que 192.168.2.0 se cambia al segmento de red de su propia LAN, los otros requisitos deben ser los mismos que los siguientes. Si hay más declaraciones que las siguientes, comente y agregue las que no lo sean. Si resulta ser el mismo que se muestra a continuación, y la ubicación 192 también es su segmento LAN, entonces no es necesario cambiar nada.

#cat /etc/ntp.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  

restrict default ignore                                //#设置默认策略为允许任何主机进行时间同步
restrict 127.0.0.1                                         //给于本机所有权限
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap     //给于局域网机的机器有同步时间的权限
server 0.127.127.1.0               //设置时间服务器为本机,可以设为120.24.81.91外网服务器
server  127.127.1.0  # local clock
fudge  127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys    /etc/ntp/keys

Entonces ejecuta

# /etc/init.d/ntpd start 或 #service ntpd start

Aparecerá OK, indicando éxito La máquina ya es un servidor NTP.

Si el archivo de configuración se modifica repetidamente, ejecute

# /etc/init.d/ntpd restart

Vuelva a cargar el archivo de configuración.

B y A sincronizan el tiempo

Una vez que A inicia el servicio del servidor NTP, tiene que esperar 5 minutos antes de ejecutar el comando de sincronización de la hora en B. Esta hora se utiliza para que el servidor NTP sincronice la hora local.
Ejecutar en B después de 5 minutos

[root@DB1 ~]# ntpdate AIP (AIP是A的内网IP地址)
10 Aug 13:35:59 ntpdate[10737]: adjust time server AIP offset 0.004937 sec

, Puede sincronizar la hora del sistema de A a B, lo que equivale a sincronizar la hora de la red externa.

¿Qué pasa si A inicia el servidor NTP y no espera 5 minutos, luego sincroniza la hora con B inmediatamente?

Dado que la hora del servidor NTP en sí no se ha sincronizado con el sistema operativo, se devolverá un error

no server suitable for synchronization found

Puede utilizar el comando ntpdate -d AIP para ver.

[root@DB1 ~]# ntpdate -d AIP
10 Aug 13:28:07 ntpdate[10719]: ntpdate [email protected] Thu Oct  5 04:11:32 EDT 2006 (1)
Looking for host 192.168.2.10 and service ntp
host found : 192.168.2.10
transmit(192.168.2.10)
receive(192.168.2.10)
省略
192.168.2.10: Server dropped: strata too high
server 192.168.2.10, port 123
stratum 16, precision -20, leap 11, trust 000
refid [192.168.2.10], delay 0.02573, dispersion 0.00000
省略  

Aparece un mensaje de "Servidor eliminado: estrato demasiado alto" y "estrato 16".
El rango normal de estrato es "0 ~ 15".
No necesita hacer nada, espere un momento e intente ejecutar el comando, se convertirá en estrato 11, precisión -20, salto 00, confianza 000. El estrato 11 es el rango normal y la hora se sincroniza correctamente ejecutando ntpdate AIP.

¿Qué debo hacer si el servidor B siempre es coherente con el servidor A?

B. Si necesita corregir la hora con frecuencia, crontab configura el comando ntpdate para lograr el objetivo.

crontab -e  
9 7 * * * /usr/sbin/ntpdate  AIP

La sincronización de la hora del sistema operativo con la hora del hardware también puede configurar crontab según sea necesario. La ventaja de mantener la hora del hardware consistente con la hora del sistema operativo es evitar errores causados ​​por la hora del hardware que sobrescribe la hora del sistema después de reiniciar el servidor.

¿Puede A sincronizar la hora de la red externa mientras actúa como servidor NTP de la LAN?

Después de la prueba, el comando ntpdate no se puede ejecutar cuando el servicio ntpd se está ejecutando. Para sincronizar la hora de la red con frecuencia, y también como el servidor NTP de la LAN para sincronizar la hora con otros servidores, las tareas de sincronización crontab en A deben ejecutarse en el siguiente orden

1. ntpdate 外网时间服务器ip
2. service ntpd start
3. 间隔一段可接受的时间,间隔约长,和网络时间的误差越大。
   此时B可同步到A的时间
4. service ntpd stop
下面循环回第一步
1. ntpdate 外网时间服务器ip

Supongo que te gusta

Origin blog.51cto.com/14947900/2550843
Recomendado
Clasificación