Eu tenho duas máquinas Linux (A e B) em uma rede isolada. Eles devem estar sincronizados com o horário. A máquina A é alimentada intermitentemente e deve atender às horas, pois está conectada a uma fonte de tempo autorizada (GPS). A máquina B é energizada apenas se a máquina A estiver ligada, mas é um dispositivo linux incorporado e seu estado de energia muda com freqüência. Nenhuma máquina tem acesso a outros sistemas. É uma rede fechada.
Entendo que essa é uma tarefa bastante difícil para o NTP, pois o NTP normalmente espera ter contato com vários servidores. Estou tendo problemas para que isso funcione corretamente na Máquina B. A máquina A sincroniza perfeitamente com o GPS, e a máquina B pode alcançar a máquina A e até fazer consultas de tempo, mas a máquina A não é confiável (talvez por si só?). Depois de uma hora sólida de máquina A em funcionamento, isso mudou repentinamente e a máquina B funcionou. No entanto, quando a máquina A caiu (e, portanto, a máquina B), a máquina B novamente não consegue encontrar uma boa sincronização de tempo.
Aqui estão algumas informações sobre o ntpdate. Observe que, mesmo quando o estrato da máquina A é 1, a operação falha com a mesma saída no final.
10.10.10.1: Servidor descartado: estratos muito altos servidor 10.10.10.1, porta 123 estrato 16, precisão -19, salto 11, confiança 000 refid [10.10.10.1], atraso 0,02614, dispersão 0,00000 transmitido 4, no filtro 4 tempo de referência: 00000000.00000000 qui, 7 de fevereiro de 2036 6: 28: 16.000 carimbo de data e hora de origem: d3a9bdc4.27ebb350 qui, 12 de julho de 2012 21: 19: 00.155 carimbo de data / hora de transmissão: bc17c803.b42dfffe sáb, 1 de janeiro de 2000 0: 25: 39.703 atraso do filtro: 0,02625 0,02614 0,02618 0,02625 0,00000 0,00000 0,00000 0,00000 deslocamento do filtro: 39544160 39544160 39544160 39544160 0,000000 0,000000 0,000000 0,000000 atraso 0,02614, dispersão 0,00000 deslocamento 395441600.451568 1 Jan 00:25:39 ntpdate [677]: nenhum servidor adequado para sincronização encontrado
Meu palpite é que a máquina A simplesmente não confia em si mesma para cumprir as horas. Após 51 minutos (pode ter acontecido anteriormente, não sei) de tempo de atividade e com o relógio sincronizado com o GPS, a máquina A começou a servir corretamente a hora e a máquina B a pegou. Eu preciso que isso aconteça mais cedo. Em segundos, se possível.
Com as seguintes configurações (e muita espera), ele acaba sendo bem-sucedido.
Máquina A ntp.conf:
servidor 127.127.28.0 prefere verdadeiro minpoll 4 maxpoll 4 fudge 127.127.28.0 estrato 1 vez1 0.420 refid GPS
Máquina B ntp.conf:
servidor 10.10.10.1 prefere minpoll verdadeiro 4 maxpoll 4
ntpq -c pares na Máquina B sem correção de tempo:
refid remoto st t quando o alcance da pesquisa atrasa o jitter de deslocamento ==================================================== ============================ 10.10.10.1. STEP. 16 u 9 16 0 0,000 0,000 0,000
pares ntp1 -c na máquina B com boa correção de tempo:
refid remoto st t quando o alcance da pesquisa atrasa o jitter de deslocamento ==================================================== ============================ * 10.10.10.1 SHM (0) 2 u 7 16 17 0,669 2,597 1,808
Então, agora a pergunta se torna: como faço para que a Máquina A confie em si mesma rapidamente?
Algumas saídas de depuração da Máquina A antes e depois da máquina B decidem que a Máquina A é boa o suficiente para usar.
antes..
~ # ntpq -c rv associd = 0 status = c418 leap_alarm, sync_uhf_radio, 1 evento, no_sys_peer, version = "ntpd 4.2.6p4@1.2324 sexta-feira, 24 de fevereiro 15:01:45 UTC 2012 (1)", processador = "armv7l", sistema = "Linux / 2.6.35.14", salto = 11, estrato = 2, precisão = -19, atraso na raiz = 0,000, descoberta de raiz = 44,537, refid = SHM (0), reftime = d3ab0053.43b44780 sexta-feira, 13 de julho de 2012 20: 15: 15.264, clock = d3ab0062.e7e03154 sexta-feira, 13 de julho de 2012 20: 15: 30.905, ponto = 34819, tc = 4, mintc = 3, deslocamento = 0,000, frequência = 0,000, sys_jitter = 3,853, clk_jitter = 36.492, clk_wander = 0.000
depois de...
~ # ntpq -c rv associd = 0 status = 0415 leap_none, sync_uhf_radio, 1 evento, clock_sync, version = "ntpd 4.2.6p4@1.2324 sexta-feira, 24 de fevereiro 15:01:45 UTC 2012 (1)", processador = "armv7l", sistema = "Linux / 2.6.35.14", salto = 00, estrato = 2, precisão = -19, rootdelay = 0,000, rootdisp = 41,278, refid = SHM (0), reftime = d3ab0063.43b37856 sexta-feira, 13 de julho de 2012 20: 15: 31.264, clock = d3ab006d.9ee53ec2 sexta-feira, 13 de julho de 2012 20: 15: 41.620, ponto = 34819, tc = 4, mintc = 3, deslocamento = 0,000, frequência = 43,896, sys_jitter = 0,762, clk_jitter = 36.953, clk_wander = 0.000
ntp.conf
arquivos e a saída dentpq -p
quando a máquina B NÃO está se divertindo muito com a máquina A? Pode ser a marcação da máquina A como um código falso ou algo assim. Quando a máquina B não confia na máquina A, a máquina A está sincronizada com o GPS? (Saídantpstat
na máquina A.)