コンピューター・システムの時刻とネットワーク時刻同期

Similar documents
2 つの遅延 マスターとスレーブの遅延とスレーブとマスターの遅延を計算しなければなりません まずマスターとスレーブの差を計算します : 最初に送られるタイムスタンプは T1 です T1 はマスターがその Ethernet のポートに Sync message を送った時刻であり Follow-up

マスターからスレーブと スレーブからマスターへの 2 つの経路について時間差を計算する必要があります まずマスターからスレーブへの経路について時刻の差を算出します : 最初のタイムスタンプは T1 です マスターが Sync メッセージを送信した正確な時刻であり Sync メッセージがイーサネットポ

TS-2520/TS-2530/TS-2540うるう秒動作資料

うるう秒動作解説資料

目次 はじめに 背景 時刻同期の種類 / 方法 IEEE1588 とは 概要 適用分野 Linux の IEEE1588 対応 Linux の対応状況 PTPd による時刻同期 PTPdの概要 PTPdの実施例 まとめ わかったこと 今後 1

SII PPT-template Blue-j

4 概要 GPS のケーブル遅延設定が反映されない不具合を修正 GPS 同期状態で GPS ケーブル遅延値が 16nsec 以内の場合 時刻に補正値が反映されない場合がある不具合を修正

Time Server Pro. TS-2910 リリースノート お客様各位 2019/09/13 セイコーソリューションズ株式会社 Time Server Pro.(TS-2910/TS-2912) システムソフトウェアリリースノート Ver2.1.1 V2.2 変更点 Version 2.2 (

富士通製サーバ「SPARC M10/PRIMERGY」とMicrosemi製NTPネットワークタイムサーバ との接続検証報告

Copyright INTEROP TOKYO 2015 ShowNet NOC Team 2 Agenda ShowNetとは? 高精度な時刻を得るための手法と課題 課題解決手法 PTPとは? PTP 相互接続実証実験 (PTP Interoperability Testing / IOT) PT

クエリの作成が楽になるUDF

030403.インターネット問題

PIM-SSMマルチキャストネットワーク

GPSのPPS信号を使った Stratum-1 NTPサーバの作り方

アライドテレシス・コアスイッチ AT-x900 シリーズ で実現するエンタープライズ・VRRPネットワーク

スライド 1

TFTP serverの実装

ヤマハDante機器と他社AES67機器の接続ガイド

インターネット,LAN,ネットワークに関する知識

PowerPoint プレゼンテーション

Software-Defined Tester(SDT) を用いた高精度遅延測定による SDN/NFV 品質向上 富士通アドバンストテクノロジ株式会社システム技術統括部大久保克彦 0 Copyright 2017 FUJITSU AD

2.5 トランスポート層 147

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

PowerPoint プレゼンテーション

Quad port LANカード(10GBASE) 取扱説明書

MIB サポートの設定

ic3_lo_p29-58_0109.indd

スケジュールによるメール送信イベントの設定方法 ( ファームウエア v6.5x 以降 ) はじめに 本ドキュメントでは Axis ネットワークカメラのファームウエア v6.5x 以降で 指定された曜日と時間帯に 画像を添付したメールを送信するための設定方法を説明します 設定手順 手順 1:Axis

ASTRO-H 衛星におけるSpaceWire を利用した時刻情報配信の精度検証

山添.pptx

PowerPoint Presentation

スライド 1

NGN IPv6 ISP接続<トンネル方式>用 アダプタガイドライン概要

コンバージドファブリック仕様一覧

2. Save をクリックします 3. System Options - Network - TCP/IP - Advanced を開き Primary DNS server と Secondary DNS Server に AXIS ネットワークカメラ / ビデオエンコーダが参照できる DNS サ

1 TCP/IPがインストールされていて正常に動作している場合は ループバックアドレィング5.3 ネットワークのトラブルシューティング スでリプライが返ってきます リプライが返ってこない場合 なんらかの原因でサービスが無効になっていたり TCP/IPプロトコルが壊れていたりする可能性があります 2

アライドテレシス ディストリビューション・スイッチ AT-x600シリーズで実現するMicrosoft® NAP

6„”“ƒ„û−G33

RADIUS サーバを使用して NT のパスワード期限切れ機能をサポートするための Cisco VPN 3000 シリーズ コンセントレータの設定

P_SyugojutakuKenzai_H14.pdf

MIRACLE LoadBalancerを使用したネットワーク構成と注意点

設定手順

情報通信の基礎

Microsoft PowerPoint - OSS運用管理勉強会資料_ a.pptx

オペレーティング システムでの traceroute コマンドの使用

パブリック6to4リレールータに おけるトラフィックの概略

AirStationPro初期設定

コア・スイッチAT-SBx908シリーズとデータセンタースイッチAT-DC2552XSシリーズで実現する10Gデータセンターネットワーク

ポート拡張オプション(10GBASE-T×2)

Cisco HyperFlex セットアップ概要

NTP運用ガイド for Oracle Solaris

初めてのBFD

富士通製サーバ「PRIMERGY」とNapatech製パケットキャプチャーボードとMicrosemi製PTP ネットワークタイムサーバとの接続検証報告

NTP for NORTi ユーザーズガイド

アライドテレシス ディストリビューションスイッチ x610シリーズで実現するVRF-Lite + Tagging + EPSR for x610

Microsoft PowerPoint network9.pptx

HULFT の通信をよりセキュアに HULFT と SSH Tectia を組み合わせたセキュアで強力なファイル転送 Compatibility Note 2008 年 9 月 株式会社セゾン情報システムズの企業内 企業間通信ミドルウェアである HULFT は ファイル転送のアプリケーションとして

[技術資料] PRIMERGY サーバブレードのLAN 冗長化

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

GenieATM 6300-T / 6200-T シリーズ 1. 基本的な機器オペレーションのために 1-1. 機器への接続 機器への接続方法は 以下の 2 通りがあります シリアルポートを使用してログインする LAN 経由で Telnet または SSH を使用して仮想 Interface からロ

HULFT-WebConnectサービス仕様書

アドバンスト・フォーマットディスクのパフォーマンス

スライド 1

Microsoft PowerPoint - Android+TPMによるセキュアブート_KDDI研_後日配布用

p_network-management_old-access_ras_faq_radius2.xlsx

Viewgo波形の連続格納ソフト

Transcription:

コンピューター システムの時刻と ネットワーク時刻同期 ~ うるう秒は OS 内部でどのように扱われるか ~ 倉田岩本 陽介哲也 0

目次 第 1 部コンピュータークロックとうるう秒 1. コンピューターの時刻って? 2. TZ Database 3. うるう秒と UNIX time 第 2 部ネットワーク時刻同期 1. 時刻同期プロトコル 2. T 1 -T 4 方式 3. NTP と PTP の違い第 3 部うるう秒対応プラクティス 1. うるう秒実施予測 2. OSS によるテスト実施方法 1

第 1 部 コンピュータークロックとうるう秒 2

コンピューターの時刻って? (1) 問 : そもそもコンピューターにおける時間って何でしょう? えっ! そこから?? でも 必要な抽象化なんです! (POSIX.1 A.4.16, ITU-T G.810, IEEE1588-2008 etc.) 答 : 連続的に真に単調増加する値であって ジャンプしたり 逆戻りしないもの 3

コンピューターの時刻って? (2) Epoch からの経過時間で計る Epoch 経過時間を計る起点 UNIX では 1970 年 1 月 1 日 0:00:00 (UTC) 経過時間 Epoch からの経過時間は SI 秒で計り取る SI 秒 セシウム原子のある変化時間を元に決めた物理量 4

コンピューターの時刻って? (3) だから コンピューター (OS) は 本当は暦を認識していない 問 : 暦ってなんでしょう? 答 : 我々が 2019 年 1 月 24 日ってな感じで普段使ってるヤツ 問 : 我々が普段使ってる暦って? 答 : グレゴリオ暦 5

コンピューターの時刻って? (4) でも でも kurata@ubuntu1604:~$ date 2019 年 1 月 24 日木曜日 14:40:35 JST って ほらちゃんと暦認識してるよ! 答 : OS の時間を暦 ( カレンダー時間 ) に変換して見せてくれる賢い奴 (tz database) のおかげ 6

コンピューターの時刻って? (5) OS が認識している時間は kurata@ubuntu1604:~$ date +%s 1548308435 というわけで 2019 年 1 月 24 日木曜日 14:40:35 JST = 1548308435( 秒 ) (1970 年 1 月 1 日 0:00:00(UTC) から 1548308435 秒経過したところである ) これを UNIX time(posix time) と呼ぶ Epoch からの経過時間が基本! 7

TZ Database (1) 多くの UNIX 系 OS の暦解釈は tz database による UNIX time をカレンダー時間に変換する 発振器駆動 H/W カウンタ Linux (OS) UNIX time 保持変数 tz database (User land) 2019 年 1 月 定期的 or 要求時に読取り UNIX time に加算する UNIX time 1548308435 日本標準時 (JST) 2019 年 1 月 24 日 14:40:35 8

TZ Database (2) 各地域の標準時に解釈する ( これが tz database の本来の仕事 ) 2019 年 1 月 日本標準時 (JST) 2019 年 1 月 24 日 14:40:35 Linux (OS) UNIX time 保持変数 tz database (User land) 2019 年 1 月 グリニッジ標準時 (GMT) 2019 年 1 月 24 日 05:40:35 UNIX time 1548308435 2019 年 1 月 東部標準時 (EST) 2019 年 1 月 24 日 00:40:35 9

TZ Database (3) 夏時間 ( サマータイム ) を正しく扱える UNIX time 1520751598 1520751599 1520751600 1520751601 東部標準時 : : 2018 年 2 月 11 日 (Sun) 01:59:58 (EST) 2018 年 2 月 11 日 (Sun) 01:59:59 (EST) 2018 年 2 月 11 日 (Sun) 03:00:00 (EDT) 2018 年 2 月 11 日 (Sun) 03:00:01 (EDT) : : 1541311198 1541311199 1541311200 1541311201 : : 2018 年 11 月 4 日 (Sun) 01:59:58 (EDT) 2018 年 11 月 4 日 (Sun) 01:59:59 (EDT) 2018 年 11 月 4 日 (Sun) 01:00:00 (EST) 2018 年 11 月 4 日 (Sun) 01:00:01 (EST) 重要 : UNIX time にはジャンプがない!( 連続している ) 10

うるう秒と UNIX time(1) 問 : うるう秒もサマータイムと同じじゃないんですか? 答 : うるう秒は基本的には tz database では扱わないうるう秒は OS が直接取り扱う UNIX time の連続性に影響がある 11

うるう秒と UNIX time(2) 問 : 1972 年 7 月 1 日 0:00:00 (UTC) は UNIX time でいくらでしょうか? 答 :( 計算で求まる ) 78796800 1970 年はうるう年でない (86400 秒 365 日 ) 31536000 秒 1971 年はうるう年でない 31536000 秒 年始から1972 年 7 月 1 日まで (86400 秒 (31 日 3+30 日 2+29 日 )) 15724800 秒 31536000 2+15724800 = 78796800 12

うるう秒と UNIX time(3) 1972 年 6 月 30 日 24 時は世界初のうるう秒 (+1 秒 ) 実施日 UNIX time 78796798 78796799???? 78796800 78796801 UTC 1972 年 6 月 30 日 23:59:58 1972 年 6 月 30 日 23:59:59 1972 年 6 月 30 日 23:59:60 1972 年 7 月 1 日 00:00:00 1972 年 7 月 1 日 00:00:01???? に 適切な 整数がない A) 78796799 をもう 1 回やる B) 事前に値の増加速度 ( 歩度 ) を変えてごまかす のどちらかしか ( 現実的な ) 方法がない特に A) は時間の連続性が崩れる 13

うるう秒と UNIX time(4) うるう秒のキーポイント : UTC に合わせて生活している上では避けられない 実施日が不定期 将来の実施日が不明 UNIX time の計算から除外されている コンピューター時間の連続性定義に反する 不連続が時間差の計算を直撃する 未対策のコンピュータープログラムは影響を受ける うるう秒の事前テストが重要です! 14

第 2 部 ネットワーク時刻同期 15

UTC の取得と設定 時刻 (UTC) を OS に設定する方法 手で設定する date コマンド 誤差が大きい 時刻源 (GNSS 標準電波 テレホン JJY etc) から直接情報をもらう 専用の装置がないと無理 IP 上のネットワークプロトコルでもらう ほとんどの装置で可能 誤差も小さい 16

時刻同期プロトコル 概要 Network Time Protocol (NTP) 皆さんご存知 RFC 5905 Precision Time Protocol (PTP) 適用する業界ごとにプロトコル (Profile) が異なる 最も標準的な規格が IEEE Std. 1588-2008 問 : ネットワーク的に遠いと同期誤差は大きくなる? 答 : 理論的には距離は誤差に影響しない 17

時刻同期プロトコル 原理 (T 1 -T 4 方式 ) NTP も PTP も考え方は同じ (T 1 -T 4 方式 ) サーバとクライアントで時刻が違っても伝送遅延時間は分かる クライアント時間 t 1 クライアント要求パケット サーバ時間 往復遅延時間 = T 2 t 1 + t 4 T 3 = t 4 t 1 (T 4 T 3 ) t 4 時間の流れ サーバ応答パケット T 2 T 3 片方向遅延時間推定 = 往復遅延時間 2 = t 4 t 1 (T 3 T 2 ) 2 T 4 = T 3 + 片方向遅延時間推移が t 4 の ( あるべき ) 正しい時間である 18

T 1 -T 4 方式の問題点 (1) 伝送距離は問題にならないが 上り 下りの伝送遅延時間の非対称性には弱い t 1 t 1 上り :600ms T 2 上り :60ms T 2 下り :600ms T 3 下り :30ms T 3 t 4 t 4 片方向遅延推定 =600ms 実際の下り時間と一致 遠くとも正しく同期 片方向遅延推定 =45ms 実際の下り時間と 15ms もの誤差 近いのに 15ms もずれる 19

T 1 -T 4 方式の問題点 (2) 上り下りの伝送遅延時間差を小さくすれば高精度に同期する 非対称の原因は? 装置内部 タイムスタンプの打刻位置ずれ中継装置滞留時間の非対称性 物理リンク 上りと下りのケーブル長の違い同一光ファイバー内の波長の非対称性 通信経路 そもそもパケットの通過経路が上り下りで異なる 20

T 1 -T 4 方式の問題点 (3) 問 : そうはいっても非対称って無視できるほど小さくないですか? 答 : それは必要とされる精度によります Server L2 S/W Router L2 S/W Client 上下遅延差 : 10μs 上下遅延差 : 0.5μs 上下遅延差 : 500μs 上下遅延差 : 1.5μs 上下遅延差 : 20μs 伝送遅延差合計 :532μs 推定誤差 :266μs この 266μs を大きいと見るか小さいと見るか? 21

PTP は NTP に比べてなぜ高精度なのか? 遅延差 / 揺らぎ有り PTP は伝送遅延の誤差要因を可能な限り排除する仕組みになっている 対策 (1): 装置内部の遅延 揺らぎ対策 対策 (2): 中継装置の遅延 揺らぎ対策 TCP/UDP IP NIC Driver MAC PHY NTP Pkt. 専用 H/W クロックでタイムスタンプ打刻 PTP Pkt. システムクロックでタイムスタンプ打刻 Router L2 S/W BC Boundary Clock PTP を終端し自装置内で高精度クロックを生成したのちにそれを再配信する TC これらの仕組みを全く利用しないと NTP と同程度の精度専用装置がなくとも精度向上の工夫ポイントはありそうですね Transparent Clock PTP パケットの装置滞留時間を当該パケットに書込み転送する 22

その他の高精度化のための工夫 NTP にはインターネット上での時刻同期精度を高めるための種々の工夫が盛り込まれている Clock Filter Algorithm Select Algorithm Cluster Algorithm Combine Algorithm PTP にはこういった工夫は規定されていない ( 各機器メーカーの独自実装に委ねられている ) 23

うるう秒再び NTP と PTP プロトコルのタイムスケール NTP UTC 時系 Epoch: 1900 年 1 月 1 日 0:00:00(UTC) からの経過時間 うるう秒処理がプロトコル上も必要 PTP TAI( 国際原子時 ) 時系 Epoch: 1970 年 1 月 1 日 0:00:00(UTC) からの経過時間 うるう秒がない ( うるう秒情報なしではカレンダー時間が分からない ) UTCとの時差情報を管理し配信する 24

第 3 部 うるう秒対応プラクティス 25

第 28 回うるう秒実施予測 2019 年 7 月未実施が決定済み 2020 年 1 月 IERS 予測では差異約 -0.3 秒実施可能性あり 2020 年 7 月前回実施時と同等差異と予想実施最有力!? IERS, "Earth orientation data", https://www.iers.org/iers/en/dataproducts/earthorientationdata/eop.html 26

UTC - TAI (s) うるう秒テスト (1) OSS 機能の利用で うるう秒テスト が可能です -36.8-37.0-37.2-37.4-37.6-37.8-38.0-38.2 7:50 8:00 8:10 8:20 8:30 8:40 8:50 9:00 Time 27

うるう秒テスト (2) NTP Project サーバソフト Undisciplined Local Clock システムクロックをそのまま時刻配信する Reference Clock Leap Smear うるう秒実施時に配信時刻を漸次調整する機能 --enable-leap-smear 指定で configure で有効化 Leap Seconds List うるう秒実施日と UTC オフセットが列挙されたファイル テストしたい実施日 /UTC オフセットを追加 28

うるう秒テスト (3) Leap Seconds List #$ 3676924800 #@ 3802291200 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 2335219200 13 # 1 Jan 1974 2366755200 14 # 1 Jan 1975 2398291200 15 # 1 Jan 1976 2429913600 16 # 1 Jan 1977 2461449600 17 # 1 Jan 1978 2492985600 18 # 1 Jan 1979 2524521600 19 # 1 Jan 1980 2571782400 20 # 1 Jul 1981 2603318400 21 # 1 Jul 1982 2634854400 22 # 1 Jul 1983 2698012800 23 # 1 Jul 1985 2776982400 24 # 1 Jan 1988... 3550089600 35 # 1 Jul 2012 3644697600 36 # 1 Jul 2015 3692217600 37 # 1 Jan 2017 3786825600 38 # 1 Jan 2020 #h a602db50 ea9d0c66 28242d25 bf45adc2 b0ac5eb5 ntp.conf server 127.127.1.0 minpoll 4 maxpoll 4 # Local Clock 指定 fudge 127.127.1.0 stratum 5 leapfile /tmp/leap-seconds.list # Leap Seconds Listファイル leapsmearinterval 3600 # うるう秒調整期間 ( 秒 )... 29