locked
Linuxからの時刻同期 RRS feed

  • 質問

  • 以下の構成での時刻同期についてご教授ください。

    ■A)外部NTPサーバ:time.windows.com

        ↑

    ■B)内部NTPサーバ:Windows Server 2008

        ↑

    ■C)NTPクライアント:RedHatEnterpriseLinux 6.3

    BからAに対しては正常に同期されています。CからBに対して同期がとれていない状況です。

    内部NTPサーバの設定を見直すことで、Linuxサーバから同期させることは可能でしょうか。

    よろしくお願いいたします。

    2014年3月6日 4:17

回答

  • チャブーンです。

    状況から、Windows Server 2008はワークグループ端末であると認識しています(違う場合はお知らせください)

    ワークグループ端末でNTPサーバをセットアップする場合、以下の作業が必要です。

    1. NTPサーバ機能をONにする
      デフォルトではOFFになっているため、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer\Enabledを1に設定します。
    2. 時刻同期間隔を調整する
      デフォルトの時刻同期間隔は長すぎる(長すぎると不適格なNTPサーバとして動作しません)ので、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollIntervalに86400より小さい値(秒数です)を設定します。この後Windows Timeサービスの再起動が必要です。
    3. Windowsファイアウォールの設定を変更する
      Windowsファイアウォールで、ローカルポート・リモートポート共、123/udpの通信を外部から受け付ける設定に変更する必要があります。

    うえの具体的な操作方法や注意点については、したのページに書いてあるようですので、参考にしてください。

    http://www.atmarkit.co.jp/ait/articles/1301/24/news105.html

    • 回答の候補に設定 佐伯玲 2014年3月10日 1:06
    • 回答としてマーク 29da4ma 2014年3月12日 13:38
    2014年3月6日 6:24
  • チャブーンです。

    Linuxの場合は、上記Windowsの設定ではNGでしたので、以下を実施したところ同期可能となりました。

    ・NTPサーバの同期モードを0x8に変更
    ・時刻同期間隔: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
      MinPollIntervalを6に変更
      MaxPollIntervalを10に変更

    はい。この方がよりよいと思います(推奨です)。ただ、私が検証した限り、Windowsが「一定間隔で時刻同期が必要な場合」の設定になっていた場合(同期モードが0x9/同期間隔は120秒)も、Linuxサーバのntp.confに既定で必要な値の他に、以下の一行を加えれば、ntpdとして同期を行うようになりました。

    restrict <ntpサーバ名> mask 255.255.255.255 nomodify notrap noquery

    あと、Windows Server 2008 R2以降の場合、Windows Timeサービスはタスクスケジューラで1週に1度ずつ起動する設定になっているため、この設定を無効化して常時起動させる必要があります。方法については、したのMSの資料をご覧になってください。

    http://support.microsoft.com/kb/2385818/ja


    2014年3月12日 12:50

すべての返信

  • チャブーンです。

    状況から、Windows Server 2008はワークグループ端末であると認識しています(違う場合はお知らせください)

    ワークグループ端末でNTPサーバをセットアップする場合、以下の作業が必要です。

    1. NTPサーバ機能をONにする
      デフォルトではOFFになっているため、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer\Enabledを1に設定します。
    2. 時刻同期間隔を調整する
      デフォルトの時刻同期間隔は長すぎる(長すぎると不適格なNTPサーバとして動作しません)ので、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollIntervalに86400より小さい値(秒数です)を設定します。この後Windows Timeサービスの再起動が必要です。
    3. Windowsファイアウォールの設定を変更する
      Windowsファイアウォールで、ローカルポート・リモートポート共、123/udpの通信を外部から受け付ける設定に変更する必要があります。

    うえの具体的な操作方法や注意点については、したのページに書いてあるようですので、参考にしてください。

    http://www.atmarkit.co.jp/ait/articles/1301/24/news105.html

    • 回答の候補に設定 佐伯玲 2014年3月10日 1:06
    • 回答としてマーク 29da4ma 2014年3月12日 13:38
    2014年3月6日 6:24
  • 情報提供ありがとうございます。

    ご推察の通り、ワークグループ環境です。

    「1.NTPサーバ機能をON」にするだけは、Linuxサーバから同期できていません。

    http://www.atmarkit.co.jp/ait/articles/1301/24/news105.html

    上記URLに記載がある「NTPサーバの動作モードの変更」は必須になりますでしょうか。

    また、NTPクライアントがWindowsとLinuxの混在環境での考慮事項などありましたら情報展開いただきたく。

    よろしくお願いいたします。

    2014年3月6日 6:45
  • チャブーンです。

    1の操作だけでは、ムリです。2と3の操作も行ってください。2を行う際には2種類の選択肢がありますが、RFC1305の挙動の理解が困難だったり、ワークグループ環境の[日付と時刻のプロパティ]-[インターネット時刻]から操作したい場合、「一定間隔での時刻同期が必要な場合」を選択してください。(その前提で2のレジストリ情報を書いています)。

    あと念のため伺いますが、OSはWindows Server 2008 「R2」だったりしませんか?R2の場合、Windows Timeサービスの動作に関する設定を一部追加変更する必要があります。


    2014年3月9日 10:50
  • NTPクライアントは、RedHatEnterpriseLinux 6.3とWindows Server 2008 R2を想定しています。

    Windowsの場合は、NTPサーバ機能の有効化、時刻同期間隔の調整により正常に同期が可能になります。

    Linuxの場合は、上記Windowsの設定ではNGでしたので、以下を実施したところ同期可能となりました。

    ・NTPサーバの同期モードを0x8に変更

    ・時刻同期間隔:

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\

      MinPollIntervalを6に変更

      MaxPollIntervalを10に変更

    ちなみに、内部NTPサーバはWindows Server 2008です。R2ではありません。

    参考までR2の場合はどのような設定が追加変更になりますでしょうか。

    2014年3月11日 9:07
  • チャブーンです。

    Linuxの場合は、上記Windowsの設定ではNGでしたので、以下を実施したところ同期可能となりました。

    ・NTPサーバの同期モードを0x8に変更
    ・時刻同期間隔: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
      MinPollIntervalを6に変更
      MaxPollIntervalを10に変更

    はい。この方がよりよいと思います(推奨です)。ただ、私が検証した限り、Windowsが「一定間隔で時刻同期が必要な場合」の設定になっていた場合(同期モードが0x9/同期間隔は120秒)も、Linuxサーバのntp.confに既定で必要な値の他に、以下の一行を加えれば、ntpdとして同期を行うようになりました。

    restrict <ntpサーバ名> mask 255.255.255.255 nomodify notrap noquery

    あと、Windows Server 2008 R2以降の場合、Windows Timeサービスはタスクスケジューラで1週に1度ずつ起動する設定になっているため、この設定を無効化して常時起動させる必要があります。方法については、したのMSの資料をご覧になってください。

    http://support.microsoft.com/kb/2385818/ja


    2014年3月12日 12:50
  • NTPの同期について理解が深まり、とても参考になりました。

    ありがとうございました。


    2014年3月12日 13:36