ローカルネットワークで時刻合わせが必要な場合にネットワーク内にNTPサーバーが必要となります。
そこで、設定方法、運用方法をまとめておきます。
NTPサーバーの構成
NTPサーバーが必要となる場合とは、
ローカルネットワークがインターネットに接続できない、またはFA機器のIPグループでインターネットへの接続ができない環境でFA機器の時刻合わせが必要な時です。
必要に応じては、上位IPアドレスとローカルIPアドレスそれぞれを設定する必要がありますが、WindowsPCの場合はIPアドレス追加設定が可能です。
NTPサーバー設定
サーバー設定とは、特定のPCをNTP(ネットワーク時刻プロトコル)サーバー機能を追加することになります。
レジストリ設定、サーバーの再起動、ファイヤーウォールの設定が必要です。
レジストリ設定
検索でregeditと入力(レジストリエディターを起動します。
レジストリ設定は失敗すると二度とPC起動できなくなるので、自己責任で行ってください。
下記の設定を5とします。
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
NTPサーバーをEnable=1とします。
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
UNIX系サーバとの同期する場合にはLocalClockDispersionを「0」に設定する必要があります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config\LocalClockDispersion
サービス再起動
NTPサーバーを再起動します。
Windowsシステムツールから、コマンドプロンプトを管理者権限(その他から選択)で実行します。
Net stop w32time
Net start w32time
Windowsファイヤーウォール設定
次にWindowsのファイヤーウォールの設定をします。
ここで設定しないとファイヤーウォールで接続できません。
コントロールパネルからWindows Defenderファイアウォールを開きます。
受信の規則で追加します。新しい規則ポートを選択します。
UDPで123ポート番号を設定します。
接続はすべて設定しておきます。
受信の規則にわかりやすい名称を付けて完了します。
クライアント側での設定
コントロールパネル
日付と時刻
インターネット時刻でサーバーにNTPサーバーを設定したIPアドレスを設定します。
今すぐ更新で同期ができれば、設定ができたことを確認できます。
PLCの場合
PLCの場合はパラメータで設定します。
Windows-NTPコマンド設定
Windows NTPクライアント設定(w32tmコマンド)
w32tmコマンドとは
w32tmコマンドは、Windows Timeサービスの設定や時刻同期の状態確認、設定変更、手動同期を行うことができるコマンドです。
w32tmコマンドは、NTP(SNTP)プロトコルによって同期を行います。
現在のNTP設定を確認する
Windowsにおいて、現在どのNTPサーバーを参照しているのか確認するには、以下のコマンドを実行します。
> w32tm /query /source
> w32tm /query /peers
NTPクライアントに構成されたNTPサーバーを表示させるには、以下のコマンドを実行します。
> w32tm /query /configuration
通信先のNTPサーバを設定する
w32timeサービスを有効化(ここでは遅延起動に設定)し、起動します。
サービスが無効となっている場合には、w32tmコマンドが実行できません。
> sc config w32time start= delayed-auto
> net start w32time
w32tmコマンドでNTPサーバを指定します。
> w32tm /update /manualpeerlist:192.168.24.33 /syncfromflags:manual
複数NTPサーバ(IPアドレス)を設定する場合には、ダブルクォートでくくる必要があります。
w32tm /config /update /manualpeerlist:”192.168.11.1 192.168.11.2 192.168.11.3″ /syncfromflags:manual
w32timeサービスを再起動して、設定を反映させます。
> net stop w32time
> net start w32time
NTPサーバに同期させる
ローカルマシンとNTPサーバで時刻同期を行うために、再同期(resync)を実行します。
同期処理を試みるため、若干の待ち合わせが発生します。
> w32tm /resync
再同期(resync)を待ち合わせることなく即時に(nowait)実行する場合には、
下記オプションを指定します。
>w32tm /resync /nowait
NTP設定を確認する
Windowsにおいて、現在どのNTPサーバーを参照しているのか確認するには、以下のコマンドを実行します。
> w32tm /query /source
> w32tm /query /peers
NTPクライアントに構成されたNTPサーバーを表示させるには、以下のコマンドを実行します。
> w32tm /query /configuration
レジストリ情報を確認する場合、「regedit.exe」から以下のレジストリを確認します。
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Windows NTPクライアント設定(net timeコマンド)
WindowsにおけるNTPクライアントの設定には、「net time」コマンドを利用することも可能です。
net timeコマンドは、Windows OSネットワーク独自の同期用プロトコルを利用しているため、参照するタイム・サーバがWindows OSで運用されている必要があります。(または、Sambaサービスを実行しているUNIX系OSでも同期は可能です。)
net timeコマンドは将来的に廃止される可能性があります。
例えば、Windows Server 2008 R2では「net time /query」コマンドオプションが機能として削除されています。
NTPサーバを設定する
「Y/N」の確認メッセージが不要であれば、以下のように「/yes」を付けて実行すると、すぐに同期させることができます。
> net time ¥¥サーバ名 /set /yes
NTP設定に関するレジストリをクリアする
サービスを停止してから、「unregister」オプションを指定してw32tmコマンドを実行します。
> net stop w32time
> W32tm /unregister
その後、下記コマンドを実行することで設定が初期化されます。
> W32tm /register
まとめ
FA機器は、時間合わせが必要です。
IOTやビックデータの活用でも、ロギングしたデータのタイムスタンプがずれていたら、役にたたないです。
ぜひ参考にしてください。
追記:自動起動設定について
NTP サーバーを設定したパソコンを再起動するとNTPサーバーとして機能してくれない場合があります。都度起動コマンドを実行する場合、管理者権限でコマンドを実行う必要があります。
そこで、NTPサーバー起動のバッチファイルを作成します。
テキストエディタで net start w32time と記述して Batファイルとして保存します。
次にコントロールパネル>管理ツール>タスクスケジューラ タスク作成でBatファイルを実行します。最上位の特権で実行 トリガ ログオン時とします。
こうすることで簡単に再起動時にNTPサーバーとして動作するようにできました。
コメント