시간을 수동으로 동기화할 때 ntpd에서 '서버를 찾을 수 없습니다'라는 메시지가 표시되는 이유는 무엇입니까?

시간을 수동으로 동기화할 때 ntpd에서 '서버를 찾을 수 없습니다'라는 메시지가 표시되는 이유는 무엇입니까?

내 서버는 IDC에서 호스팅됩니다. 이 IDC 서버에서는 인터넷에 액세스할 수 없기 때문에 인터넷 NTP 서버를 사용할 수 있습니다. 하지만 IDC 서비스 제공업체에는 원자시계가 있으므로 원자시계와 시간을 동기화할 수 있습니다.
원자시계의 IP는 192.168.90.118이고 내 서버의 IP는 입니다 192.168.90.18. 내 서버의 OS는 Debian 8.11이고 ntp를 설치했는데 sudo apt install ntpntpd 버전은 입니다 4.2.6p5.
서버 /etc/ntp.conf내용은 아래와 같습니다.

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 192.168.90.118 version 3
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

그리고 원자 시계와 시간을 동기화하기 위해 아래 명령을 실행하려고 시도했지만 '서버를 찾을 수 없습니다'라고 표시됩니다.

sudo service ntp stop
sudo ntpd -gq

원자시계의 IP 주소에 대해 ping을 시도했는데, 연결 가능하고 대기 시간이 짧습니다. 나는 tcpdim을 사용하여 원자 시계와 내 서버 사이의 일부 패킷을 캡처하려고 시도했습니다. 아래에 나와 있습니다.

sudo tcpdump -vvv -ni eth0 port 123

16:43:44.802334 IP (tos 0x0, ttl 126, id 12371, offset 0, flags [none], proto UDP (17), lenth 76)  
    192.168.90.118.123 > 192.168.90.18.123: [udp sum ok]NTPv3, lenth 48
        Server, Leap indicator: (0), Stratum 6 (secondary reference), poll 6 (64s), pricision -6
Root Delay: 0.000000, Root disprsion: 10.371246, Reference-ID: 95.31.153.26
            Reference Timestamp: 3843677595.431751999 (2021/10/20 08:13:15)
            Originator Timestamp: 3843708224.802159560 (2021/10/20 16:43:44)
            Receive Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
            Transmit Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
                Originator - Receive Timestamp: +97.394592739
                Originator - Transmit Timestamp: +97.394592739
16:43:46.802173 IP (tos 0x0, ttl 64, id 19514, offset 0, flags [DF], proto UDP (17), lenth 76)  
    192.168.90.18.123 > 192.168.90.118.123: [bad udp cksum -> 0x4b29!]NTPv3, lenth 48
        Client, Leap indicator: clocl unsynchornized(192), Stratum 0 (unspecified), poll 6 (64s), pricision -23
Root Delay: 0.000000, Root disprsion: 0.000091, Reference-ID: (unspec)
            Reference Timestamp: 0.000000000
            Originator Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
            Receive Timestamp: 3843708224.1802334560 (2021/10/20 16:43:44)
            Transmit Timestamp: 3843708226.802159634 (2021/10/20 16:43:46)
                Originator - Receive Timestamp: -97.394417439
                Originator - Transmit Timestamp: -95.394592365

위의 텍스트는 수동으로 입력되었습니다. 위의 결과를 보면 kernelntp 패킷을 수신한 것과 서버와 클라이언트 간의 프로토콜이 일치하는 것으로 보입니다. 하지만 내 서버의 ntpd가 패킷을 수신하지 않았거나 인식하지 못했습니다. 어떻게 해결할 수 있나요?

명령을 실행했는데 ntpq -np아래와 같습니다.

ntpq: read: Connection refused

답변1

서비스 제공업체에 문의한 결과 NTP 서버는 Windows 기반이며 프로토콜은 SNTP입니다. 데비안 8.11의 기본 NTP 소프트웨어에서는 SNTP 패킷을 받아들일 수 없습니다. 그래서 ntp 버전을 업그레이드해야 합니다.

답변2

귀하의 질문에는 (그러나 의견에는) 명시하지 않았지만 시스템이 인터넷에 액세스할 수 없으며 ntp가 포함되지 않고 sntp만 포함하는 데이터 센터의 서비스에만 액세스할 수 있다고 말합니다.

실제 NTP 서버를 사용할 수 없고 GPS 동기화의 대안을 얻을 수 없는 경우 유일한 옵션은 시스템에서 ntpd를 비활성화하고 가능하면 cron에서 sntp 클라이언트를 사용하는 것입니다.

관련 정보