GPSが普及した今でもNTPが必要な理由
GPS受信機は非常に正確な時刻を提供しますが、ノートパソコンや屋内のスマートフォン、IoTセンサー、データセンター内のサーバーなど、身の回りの機器の多くはGPS受信機を内蔵しておらず、そもそも衛星が見える環境にもありません。そこでストラータム階層の出番です。GPSや原子時計に接続されたごく少数のストラータム1サーバーが、公開・組織内の膨大な数のNTPサーバー群を通じて時刻を配信することで、自前の基準時計を持たないほぼすべてのインターネット接続機器にまで正確な時刻が行き渡ります。
補足:NTPの精度にも限界がある
一般的なNTPの同期精度は数ミリ秒から数十ミリ秒程度で、ウェブ閲覧や認証、通常のログ記録には十分すぎるほどです。一方、金融取引システムや通信ネットワーク、マイクロ秒・ナノ秒単位の精度が必要な科学機器では、オープンなインターネットではなく制御された低遅延ネットワーク向けに設計された、より厳密な規格であるPTP(Precision Time Protocol)が使われます。要件にミリ秒未満のタイミング精度が含まれる場合、NTP単体では通常不十分です。
時計がずれたときの確認と対処
Windowsでは日付と時刻の設定で自動設定がオンか確認し、コマンドw32tm /query /statusで同期元と最後の同期時刻を確認できます。Linuxではtimedatectlで同期済みかどうかが分かり、chronyを使っているならchronyc trackingで現在のずれを見られます。同期できない場合は、外向きのUDP 123番ポートが開いているか、時刻サーバー名をDNSで解決できるか、ハードウェア時計が極端にずれていないかを確認してください。仮想マシンではホストとゲストが時刻を取り合うことがあるため、同期の方法は1つに絞ります。自分で管理するネットワークでは、すべての機器を同じ社内サーバーに向けると、各機器のログの時刻が揃います。
2036年問題への備え
NTPは1900年を起点とした32ビットの秒カウンターを使っており、この値は2036年に一巡します。プロトコルにはエラ(era)という番号による対処が用意されており、最近の実装は現在の日付に近い時刻と解釈して曖昧さを解決します。ただし更新できない古い組み込み機器は誤動作する可能性があるため、産業用コントローラーなど長く使う機器は早めに洗い出しておくとよいでしょう。UNIX時刻の2038年問題と似ていますが、別の問題です。
よくある質問
コンピューターの時計がずれると、実際にどんな問題が起きますか?
代表的な例としては、正常なHTTPSサイトにアクセスしているのに証明書エラーが表示される、2段階認証(OTP)のコードが何度入力しても無効と判定される、複数サーバーのログを正しい時系列順に比較しづらくなる、といった問題が挙げられます。
スマートフォンもNTPで時刻を合わせていますか?
はい。ほとんどのスマートフォンは、設定で「ネットワーク提供の時刻を使用」のようなオプションを有効にしておくと、通信キャリアのネットワークやインターネットを通じて自動的に時刻を同期します。このオプションをオフにすると端末自身の時計だけに頼ることになり、時間とともに少しずつずれていく可能性があります。
NTPの増幅攻撃は今も問題ですか?
よく知られた事例は、ntpdの古いmonlistコマンドが直近のクライアントの長い一覧を返したことによるもので、後のバージョンで修正されています。更新済みで、想定したクライアントにだけ応答するよう設定されたサーバーは、攻撃者にとってあまり役に立ちません。リスクが残るのは、更新されないままインターネットに公開された古い機器です。
スマートフォンが通信キャリアから受け取る時刻とNTPは別のものですか?
携帯電話網でも時刻が配信されており、端末は設定に応じてそちらかNTP方式のインターネット同期を使います。どちらも同じUTCを基準にしていますが、キャリアの時刻は精度が粗いことがあり、細かい精度が必要な場合はインターネット同期が使われます。
クライアントは何台のサーバーを指定すべきですか?
独立した3〜4台以上を指定すると、1台が間違っていてもそれを見抜いて除外できます。1台だけでは単一障害点になり、2台だと食い違ったときにどちらが正しいか判断できません。