Introdução ao protocolo de tempo de rede e tempo de rede de sincronização do servidor

Introdução ao NTP

Network Time Protocol (inglês: Network Time Protocol, abreviatura: NTP) é um protocolo de rede para sincronização de relógio entre sistemas de computador com latência variável na rede de dados por comutação de pacotes, localizado na camada de aplicação do modelo OSI. Desde 1985, o NTP é um dos protocolos de Internet mais antigos ainda em uso. O NTP foi projetado por David L. Mills, da University of Delaware.
O NTP pretende sincronizar a hora do Tempo Universal Coordenado (UTC) de todos os computadores participantes com alguns milissegundos de erro. Ele usa uma versão modificada do algoritmo Marzullo para selecionar um servidor de horário preciso e é projetado para mitigar o impacto de atrasos variáveis ​​na rede. O NTP geralmente pode manter um erro de dezenas de milissegundos na Internet pública e pode atingir uma precisão de mais de 1 milissegundo em um ambiente de LAN ideal. O roteamento assimétrico e o controle de congestionamento podem causar erros de 100 milissegundos (ou mais).
Este protocolo é geralmente descrito como uma arquitetura mestre-escravo, mas também pode ser usado em uma rede ponto a ponto, onde ambos os pontos podem identificar a outra extremidade como uma fonte potencial de tempo. Os carimbos de data / hora de envio e recebimento são implementados usando a porta 123 do User Datagram Protocol (UDP). Isso também pode usar broadcast ou multicast, em que o cliente escuta passivamente as atualizações de horário após a troca de calibração de ida e volta inicial. O NTP fornece um aviso de um próximo ajuste de segundo intercalado, mas não transmite informações sobre o fuso horário local ou horário de verão.
O protocolo atual é a versão 4 (NTPv4), que é um padrão recomendado no documento RFC 5905. É compatível com versões anteriores da versão 3 especificada no RFC 1305.

O componente ntp é uma implementação de software do protocolo ntp na plataforma Linux. Alguns sistemas operacionais Linux têm o componente ntp instalado por padrão. Se o ntp não for instalado primeiro, o protocolo pode ser usado para completar a sincronização de tempo.

Método de sincronização de tempo quando o servidor pode acessar a internet

DNS configurado

O servidor pode acessar a rede externa e está configurado com DNS, diretamente

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

Você pode sincronizar o horário da rede externa.

DNS não está configurado

Por motivos de segurança, alguns servidores estão conectados à rede externa, mas o DNS não está configurado, neste caso, a hora precisa ser sincronizada diretamente do endereço ip do servidor de hora. Você pode usar o ip do servidor de tempo de Aliyun (ntp1.aliyun.com) para sincronizar diretamente,

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

Método de sincronização de tempo quando o servidor não consegue acessar a Internet

Supondo que haja um servidor na LAN (o endereço IP é IP_TIME) e a hora está correta, configure este servidor como um servidor de horário LAN ntp, e outros servidores executam

ntpdate IP_TIME

Desta forma, pelo menos todos os servidores estão sincronizados com o horário deste. Se este precisa ser sincronizado com o horário da rede depende dos requisitos funcionais. Se você realmente precisar, este deve ser capaz de acessar a Internet, sincronizar com o horário da rede conforme descrito acima, e os demais podem permanecer no estado de não conseguir acessar a Internet.

por exemplo

Suponha que haja dois servidores Linux A e B e que ambos precisem ser sincronizados com o horário da rede.
A está conectado à rede externa. Embora o servidor DNS não esteja configurado, ele pode executar ping em 120.24.81.91 (Alibaba Cloud Time Server). Você pode sincronizar a hora diretamente.
B não abre a rede externa e o ping 120.24.81.91 relatará a conexão: A rede está inacessível, o que definitivamente não pode sincronizar a hora do servidor de rede externa. Execute ntpdate 120.24.81.91, ele relatará que nenhum servidor adequado para sincronização foi encontrado ou nenhum servidor pode ser usado ao sair.
Introdução ao protocolo de tempo de rede e tempo de rede de sincronização do servidor
A solução é dividida em três etapas, os firewalls de A e B são fechados e todo o processo é operado pela conta root.

  1. A sincronizar a hora da rede externa,
  2. Configure A como um servidor ntp (servidor NTP),
  3. B sincroniza o tempo de A.

Tempo de rede ASync

A hora da primeira sincronização do servidor é exibida como segue

[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

A 2ª vez é exibida da seguinte forma

[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 é executado, o erro por trás do deslocamento muda e a tendência é cada vez mais precisa.

Configure A como servidor NTP

Para configurar A como um servidor NTP, primeiro modifique o arquivo de configuração /etc/ntp.conf. Como modificar e olhar para baixo.
Depois que a modificação for concluída, execute o seguinte comando cat, exceto que 192.168.2.0 é alterado para o segmento de rede de sua própria LAN, os outros requisitos devem ser os seguintes. Se houver mais instruções do que as seguintes, comente e adicione aquelas que não são. Se acontecer de ser o mesmo que abaixo, e o local 192 também for o seu segmento de LAN, nada precisa ser alterado.

#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

Então execute

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

OK será exibido, indicando sucesso. A máquina já é um servidor NTP.

Se o arquivo de configuração for modificado repetidamente, execute

# /etc/init.d/ntpd restart

Recarregue o arquivo de configuração.

B e A sincronizam o tempo

Depois que A inicia o serviço do servidor NTP, ele tem que esperar 5 minutos antes de executar o comando de tempo de sincronização em B. Este tempo é usado pelo servidor NTP para sincronizar a hora local.
Executar em B após 5 minutos

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

, Você pode sincronizar a hora do sistema de A com B, que é equivalente a sincronizar a hora da rede externa.

E se A iniciar o servidor NTP, não esperar 5 minutos e sincronizar a hora com B imediatamente?

Uma vez que a hora do próprio servidor NTP não foi sincronizada com o sistema operacional, um erro será retornado

no server suitable for synchronization found

Você pode usar o comando ntpdate -d AIP para visualizar.

[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
省略  

Há um prompt de "Servidor eliminado: estratos muito altos" e "estrato 16".
O intervalo normal do estrato é "0 ~ 15".
Você não precisa fazer nada, espere um pouco e tente executar o comando, ele se tornará stratum 11, precisão -20, salto 00, confiança 000. Stratum 11 é o intervalo normal e a hora é sincronizada com êxito executando ntpdate AIP.

O que devo fazer se o servidor B for sempre consistente com o servidor A?

B. Se você precisar corrigir a hora frequentemente, o crontab configura o comando ntpdate para atingir o objetivo.

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

A sincronização da hora do sistema operacional com a hora do hardware também pode definir o crontab conforme necessário. A vantagem de manter a hora do hardware consistente com a hora do sistema operacional é evitar erros causados ​​pela hora do hardware substituindo a hora do sistema após reiniciar o servidor.

A pode sincronizar a hora da rede externa enquanto atua como o servidor NTP da LAN?

Após o teste, o comando ntpdate não pode ser executado quando o serviço ntpd está em execução. Para sincronizar o horário da rede com freqüência, e também como o servidor NTP da LAN para sincronizar o horário com outros servidores, as tarefas de cronometragem crontab em A devem ser executadas na seguinte ordem

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

Acho que você gosta

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