手動で時間を同期すると、ntpd が「サーバーが見つかりません」とプロンプトを出すのはなぜですか?

手動で時間を同期すると、ntpd が「サーバーが見つかりません」とプロンプトを出すのはなぜですか?

私のサーバーは IDC でホストされています。この IDC サーバーはインターネットにアクセスできないため、インターネット NTP サーバーを使用できます。ただし、IDC サービス プロバイダーは原子時計を持っているため、原子時計と時間を同期できます。
原子時計の IP は で192.168.90.118、私のサーバーの IP は です192.168.90.18。私のサーバーの OS はDebian 8.11で、ntp を でインストールしましたsudo apt install ntp。ntpd のバージョンは です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 です。Debian 8.11 のデフォルトの NTP ソフトウェアでは、SNTP パケットを受け入れることができません。そのため、ntp バージョンをアップグレードする必要があります。

答え2

質問には記載されていませんが (コメントには記載されています)、システムはインターネットにアクセスできず、データ センター内のサービスにのみアクセスでき、これには ntp は含まれず sntp のみが含まれると書かれています。

実際の NTP サーバーが利用できず、GPS 同期の代替手段も利用できない場合は、システムで ntpd を無効にして、cron などの sntp クライアントを使用するしか選択肢はありません。

関連情報