O que é um servidor ToD, "Hora do dia" (não NTP)

13

Eu recebi uma tarefa simples: Configurar um servidor ToD ... Não é NTP. Ele roda na porta 37. Parece estar incluído no inetd ou no xinetd.

Deve ser instalado no Debian ou CentOS. Alternativamente FreeBSD (roteador pfsense).

Alguma dica de como proceder? Dois links de iniciação onde, depois que eu fiquei preso:

Também é muito apreciado se houver uma maneira de testar se o servidor ToD já está em execução. Tenho vários servidores em execução, mas não sei se algum deles já possui o serviço ToD em execução.

Motivo: Estou prestes a configurar uma solução com banda larga sobre cabos COAX usando um CMTS e modems a cabo usando um padrão chamado DOCSIS 3. Para fazer isso, os modems a cabo precisam receber um horário de um servidor ToD (hora do dia).

ATUALIZAÇÃO / Solução

O tempo é RFC 868 e quase não é mais usado, já que o NTP e outros são melhores. Mas o antigo RFC 868 Time over port 37 é necessário para alguns sistemas - por exemplo, a Internet através do COAX usando CMTS e modems a cabo precisa de um servidor de horário de trabalho (na documentação do DOCSIS chamada Time of Day server = ToD server). O xinetd que pode ser instalado para o Debian inclui um servidor de horário. Ele só precisa ser ativado em etc / xinetd.d / time (disable = no para TCP e / ou UDP)

Tillebeck
fonte
2
Veja aqui um pouco sobre os servidores ToD e o protocolo TIME . A sinopse do NIST diz: #the time format (as specified in RFC-868) has poor error-handling capabilities in general, and many of the client programs that use this format are poorly written and may not handle network errors properly. Therefore users are strongly encouraged to switch to the Network Time Protocol (NTP), which is more robust and provides greater accuracy. We eventually intend to phase out support for the TIME format on all servers.
HopelessN00b
1
A minha pergunta mais velha tem alguma informação sobre isso também: serverfault.com/questions/156715/...
Stefan Lasiewski

Respostas:

20

Se você estiver usando o Debian, o xinetd vem com um daemon ToD. Se você alterar o "disable = yes", como em /etc/xinetd.d/time, para "disable = no" e reiniciar o xinetd, deverá conseguir telnetar para o servidor na porta 37 e verificar se recebe algo retornado. Você pode usar algo como:

nc $IP 37 | hexdump

e você verá que o valor hexadecimal aumenta a cada segundo.

Edd
fonte
Obrigado. Ótima maneira de testar. Feito isso para alguns servidores públicos. Ainda não é possível executar o tempo no meu próprio servidor. Mas será, eventualmente.
Tillebeck
Está bem. Entendi trabalhando agora. Eu só preciso do UDP da época. Mas nc $ IP 37 usa TCP. Então, depois de ativar os dois, ele funciona! Ótimo. Obrigado.
Tillebeck
10

Um servidor "Hora do dia" é um termo bastante vago - não sei se isso se refere a um serviço real chamado "ToD" ou se é apenas uma documentação ruim. O protocolo Time (RFC 868) é tão antigo que poucas coisas o utilizam, exceto por um pequeno número de firmwares incorporados (como o OpenWRT ), dispositivos e dispositivos com pouca memória. O NTP requer mais memória que o protocolo Time.

Quase todos os dispositivos modernos podem usar o NTP (Network Time Protocol), que substituiu o antigo protocolo Time, que é melhor e provavelmente mais seguro que o antigo protocolo de horário. Portanto, dedique algum tempo agora para ver se o seu dispositivo usa suporte NTP.

Acredite ou não, o artigo da Wikipedia para xinetdcontém um único exemplo de configuração e é para um servidor de horário RFC 868.

Veja http://en.wikipedia.org/wiki/Xinetd#Configuration

Um arquivo de configuração de exemplo para o servidor de horário RFC 868 :

# default: off
# description: An RFC 868 time server. This protocol provides a
# site-independent, machine readable date and time. The Time service sends back
# to the originating source the time in seconds since midnight on January first
# 1900.
# This is the tcp version.
service time
{
        disable         = yes
        type            = INTERNAL
        id              = time-stream
        socket_type     = stream
        protocol        = tcp
        user            = root
        wait            = no
}

# This is the udp version.
service time
{
        disable         = yes
        type            = INTERNAL
        id              = time-dgram
        socket_type     = dgram
        protocol        = udp
        user            = root
        wait            = yes
}
Stefan Lasiewski
fonte
Obrigado. Fiquei paralisado porque o inetd e o xinetd estão listados como parte das instalações padrão do linux. Acabei de configurar um novo debian e nenhum deles foi instalado. Depois de instalar o xinetd, tenho o arquivo e posso prosseguir a partir daqui. Obrigado.
Tillebeck
2
"hora do dia" ou "ToD" é o nome que o RFC 868 é chamado na documentação do DOCSIS. DOCSIS é para modems CMTS e a cabo ao fornecer internet junto com TV por cabos COAX. Fico feliz que todos vocês possam me ajudar, afinal.
Tillebeck
5

Time.nist.gov suporta os antigos protocolos de hora e dia. Observe que, tanto quanto me lembro, esses protocolos presumem que não há problemas de rede.

Jim B
fonte
Obrigado. Eu usei um dos servidores públicos para testar. E vejo que eles respondem bem com o tempo. Agora eu preciso do meu próprio servidor para fazer o mesmo
Tillebeck