質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.60%

NTPサーバーと同期がとれない

解決済

回答 4

投稿

  • 評価
  • クリップ 1
  • VIEW 14K+

score 13

同一セグメント上に以下のコンピュータがあります。

コンピュータA  IPアドレス:XXX.XXX.XXX.100  OS:Windows10  
コンピュータB  IPアドレス:XXX.XXX.XXX.101  OS:CentOS7    

今回、コンピュータBをNTPサーバのあるコンピュータAに同期させようとしたのですがうまくいきません

# chronyc sources

210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? XXX.XXX.XXX.100               0   7     0     -     +0ns[   +0ns] +/-    0ns

/etc/chronyc.confには以下のように記述しています。

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server XXX.XXX.XXX.100 iburst
.
.
# Allow NTP client access from local network.
allow XXX.XXX.XXX.0/24

コンピュータBのfirewall、SELinuxは無効にしています。
そのため、サーバ側(コンピュータA)の設定が悪いのか疑いコンピュータC(IPアドレス:XXX.XXX.XXX.102  OS:Windows7)からコンピュータAにNTP同期を試したところ成功しました。
また、コンピュータBもntp.nict.jpとは同期がとれることを確認しています。

どのような設定をしたらコンピュータBがコンピュータAのNTPサーバと同期がとれるようになるのか教えていただきたいです。よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • giftend

    2019/02/13 16:37

    試してみたところタイムアウトしてしまいつながりませんでした。ここら辺が怪しそうです。
    ただコンピュータBからntp.nict.jpに同期がとれることから123番ポートがあいていると思っていたのですがこれは認識が間違っているでしょうか?コンピュータCからコンピュータAに同期がとれたのでファイアーウォールの設定も正しいと思うのですが、、

    キャンセル

  • otn

    2019/02/13 16:43

    ntpはUDPなので、telnetで繋がらなくて正常です。

    キャンセル

  • giftend

    2019/02/13 17:32

    疑問に答えていただきありがとうございます。
    回答にあるようにwindowsとlinuxの親和性に問題がありそうなのでもう少し調べてみようと思います。

    キャンセル

回答 4

+1

Windowsで提供するNTPサービスは、Linux系OSからの同期に対しては親和性がありません。
いろいろとパラメータを調整する必要があります。
「Linux Windows NTP」または「Cisco Windows NTP」で検索すればご期待のサイトが見つかると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/13 16:26

    回答ありがとうございます。windowsとlinuxでいろいろ違うのですね。それらのワードで調べてみようと思います。

    キャンセル

check解決した方法

0

今日確認してみると同期が成功していました。特に何も設定を変えた訳ではないですが、思い当たることといえばwindows側を再起動したことくらいです。
https://ips.nekotype.com/1498/
こちらのサイトにも時間が解決したと書いてあるのでそういうものなのでしょうか、、
あまりすっきりとした回答ではないですが以上が自己解決の方法でした。
回答してくださったみなさま、ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

Chronyを参照したところ、Reachが0になっているため
CentOSからWindows10へのNTP同期通信に失敗しているようです。
pingは通るとのことですので、NTPサービス周りの設定がおかしいと思います。

Windows7からWindows10へのNTP同期は出来たとおっしゃっていますが、
こちらはどのようにして確認されたのでしょうか。

Windows10でNTPサービスを有効にするにはレジストリの[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]をEnableにしなければいけませんがこちらは実施されましたか?

追記

overさんが回答されている通り、WindowsのNTPサービスについては色々と特殊な設定が必要なようです。
(レジストリを複数編集)参考
どうしてもWindowsをNTPサーバにしたいという理由がなければCentOSをNTPサーバとして使用するのが良いと思われます。
なお、調べてみたところWindows10より前はNTPサービスの精度がそもそも悪かったようです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/13 16:23

    回答ありがとうございます。
    https://www.eaton-daitron.jp/techblog/5751.html
    こちらのサイトを参考にNTPサーバをたてました。
    その過程で[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]の値を1に変更しています。
    よろしくお願いします。

    キャンセル

  • 2019/02/13 17:36

    回答ありがとうございます。自分も参考に上げているサイトを発見しregeditの以下を変更したのですが解決しませんでした。
    ******************************************************
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
    NtpServer time.windows.com,0x9 > time.windows.com,0x8

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
    LocalClockDispersion a > 0
    AnnounceFlags a > 5
    MinPollInterval a > 6
    MaxPollInterval f > a

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
    Enabled 0 > 1
    ******************************************************
    もう少し頑張ってみて、それでもうまくいかなかった場合はあきらめてCentOSをNTPサーバーにしようと思います。

    キャンセル

0

NTPクライアント(CentOS7.2 + Chrony3.4)からNTPサーバ(Windows10)に
同期させようとしたのですが、私の場合もうまくいかず、対策を調査して
いたらこのページにたどり着きました。おかげさまで、原因と対策が
わかったので、報告したいと思います。

Windows NTPサーバは、[インターネット時刻サーバと同期する]設定が OFF の
場合、内部クロックの精度を[LocalClockDispersion]レジストリの値を
"Root Dispersion"(ゆらぎ/精度)として、NTP クライアントに提供している(*1)
ようです。

NTP クライアントは、"Root Dispersion"を以下のコマンドで確認できます。

# chronyc ntpdata
...
  Root dispersion : 10.000061 seconds
...


[LocalClockDispersion]レジストリのデフォルト値は"10"、つまり10秒なので、
NTP クライアント側でも、"Root Dispersion"は近い値になるようです。

NTP クライアントである Crony は、"Root Dispersion"が[maxdistance]の
デフォルト値3秒を超える場合、NTP サーバと同期しない(*2*3)ため、
結果として、Windows NTP サーバと同期できないという問題が発生していました。

解決方法は2つあります。
以下いずれの方法でも、うまく同期することを確認しました。

  • 方法1  Windows NTP サーバの設定を変更する
    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config"レジストリキーの[LocalClockDispersion]レジストリの値を"0"に設定し、[Windows Time]サービス(W32Time)を再起動します。

  • 方法2  NTP クライアントの設定を変更する
    "/etc/chrony.conf"に、"maxdistance 20"という行を追加し、
    "systemctl restart chronyd"コマンドにより NTP クライアントを再起動
    します。[maxdistance]パラメータに指定する値は、"chronyc ntpdata"
    コマンドで表示された"Root dispersion"よりも大きめの値を指定します。

なお、Windows NTP サーバにて、Windows10 のデフォルトのインターネット
時刻サーバである"time.windows.com"を設定したところ、NTP クライアント
では、"Root dispersion : 7.789963 seconds"と表示されました。
これも、3秒以上なので、Chrony では同期できません。
おそらくこれが、over様のおっしゃる"親和性がない"理由なのでしょう。

逆に言えば、同じ Windows 同士なら、この程度のずれは許容範囲のようで、giftend様が報告しているように Windows7 からは問題なく同期できるのでしょう。

そのため、giftend様がNTPサーバの参考にされた下記サイトのように、
https://www.eaton-daitron.jp/techblog/5751.html
[LocalClockDispersion]レジストリについての説明がないため、Linux NTP 
クライアントから Windows NTP サーバを利用したい方は、
この問題に陥りやすいのでしょう。

giftend様は、そのあと、このレジストリの値を"0"にしてコンピュータを
再起動したので、うまく同期がとれるようになったということだと思います。

*1 https://docs.microsoft.com/ja-jp/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings
*2 https://chrony.tuxfamily.org/faq.html#_using_a_windows_ntp_server
*3 https://unix.stackexchange.com/questions/404046/chrony-3-1-refuses-to-sync-with-ntp-server

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る