Estrato da fonte de rede de falsificação de NTP

9

É possível configurar ntpdpara alterar o nível de estrato de uma fonte de rede?

À primeira vista, achei que a fudgediretiva poderia fazer isso; no entanto, depois de navegar nas ntp.conf(5)páginas do manual, descobri que essa diretiva se aplica apenas aos relógios de referência.

Alguns detalhes:

Eu tenho um servidor local em execução ntpdcomo fonte de tempo principal para clientes na LAN. Este servidor está apontado para o pool ntp.org e geralmente mantém o nível 3 do estrato.

Além do meu servidor principal, eu tenho um dispositivo de rede de terceiros cujo trabalho principal é sincronizar relógios de parede sem fio via. Transmissão de RF. A especificação do dispositivo diz que é um "Time Server compatível com RFC2030", mas, caso contrário, é praticamente uma caixa preta. Eu configurei o dispositivo para usar meu servidor principal, pois é apenas a fonte de tempo:

configuração da caixa preta http://www.freeimagehosting.net/uploads/21bafb12bd.png

Meu problema surgiu quando eu configurei ntpdno meu computador pessoal para usar o meu servidor NTP principal e o transmissor sem fio como fontes de tempo. Ao consultar meu ntpd local, notei que a "caixa preta" (10.xxZ) era a fonte de tempo preferida:

$ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
x10.x.x.X        69.164.222.108   3 u   48   64  177    0.501  370.029   1.530
*10.x.x.Z        10.x.x.Z         2 u   50   64  377    1.354  -23.681  14.179

Como 10.x.x.Za única fonte de tempo do servidor é o servidor 10.x.x.X(que é o estrato 3), ele deve ser o estrato 4. Acredito que o fabricante codificou seu nível de estrato.

Existe alguma maneira de fazer a minha máquina favorecer o servidor "bom" (10.xxX), apesar do seu nível de estrato mais alto? Eu também tentei a preferdiretiva no meu ntp.confarquivo local , mas sem sucesso, a pequena caixa preta sempre vence: /

Pelo que vale a pena, minha máquina local está executando o Mac OS X 10.6.

$ ntpq -c rv | grep version
version="ntpd [email protected] Mon May 18 19:38:25 UTC 2009 (1)",
joxl
fonte
Esta pergunta é suficientemente esotérica que eu recomendaria perguntar no grupo de notícias USENET comp.protocols.time.ntp ou equivalente na lista de discussão de perguntas em lists.ntp.org . Eles provavelmente sugerem que você adicione mais servidores, pois os clientes terão problemas para decidir entre dois servidores. Além disso, não tenho certeza de qual resposta eles terão sobre a manipulação de estratos.
precisa saber é o seguinte

Respostas:

6

Depois de mais algumas pesquisas, parece "enganar" o nível de estrato de uma fonte de rede não é possível. Então segui em frente e tentei a resposta de dtoubeli . Para minha surpresa, simplesmente fazer do meu servidor de horário local um nível de estrato 2 (igual ao dispositivo de terceiros) nem sempre fazia com que ele fosse a fonte de horário preferida. Meu ntpd local ainda os governaria como "ticks falsos". Por alguma razão, não tenho certeza, mas acho que eram as únicas duas fontes de tempo e seus tempos estavam muito distantes.

O maior problema aqui é o fato de que meu dispositivo de terceiros não parece ter um tempo muito consistente; na verdade, ele flutua muito. A solução para o meu problema foi adicionar várias outras fontes de tempo precisas (pool.ntp.org) ao meu /etc/ntp.conf. Agora, meu servidor local é sempre escolhido como a fonte de tempo preferida, muitas vezes apesar de ter um nível de estrato mais alto do que alguns dos servidores no pool.

joxl
fonte
4

Você pode tentar executar o ntpd local no estrato 2. Em vez de apontá-lo para pool.ntp.org, crie uma lista de 5-7 servidores do estrato 1 e adicione-os diretamente à configuração. Com o servidor de referência no estrato 1, o seu estará executando no estrato 2. Então sua preferopção pode funcionar.

Contudo, pela minha experiência, o nível do estrato nem sempre é o fator vencedor na eleição da fonte primária. Eu acho que latência e instabilidade também têm influência significativa. Eu havia notado em várias ocasiões que o servidor de menor nível de estrato foi eleito como fonte primária, embora houvesse vários servidores de mais alto nível disponíveis apenas por apresentar a menor latência. É por isso que não posso garantir que a abordagem sugerida funcione.

dtoubelis
fonte
2

Eu tenho uma fonte de tempo GPS de hardware de "alto estrato (10)" em nossa rede local que me fornece um status de falsetick (x) no ntpq. Descobri que usar server [x.x.x.x] true(x = endereço IP) no ntp.conf ignorará a verificação do falssetick, permitindo que seja um possível candidato. Parece que o número do estrato nem sempre significa prioridade mais alta.

Tomofumi
fonte
1

Se você não gosta deste servidor 10.xxZ como referência, deve fazer o truque:

server 10.x.x.Z noselect 

Isso é útil se o servidor deve ser usado apenas por motivos de monitoramento. Como alternativa, você também pode configurar:

server 10.x.x.X prefer

Portanto, 10.xxZ não será usado se 10.xxX estiver disponível.

Hans
fonte
0

Uma razão pela qual é preferível é que seu outro servidor de horas esteja inacessível recentemente. Veja a coluna de alcance?

dfc
fonte