EndRun エンドラン タイムサーバ うるう秒に関数に関する よくある質問と回答 FAQ

情報システム営業部 - EndRun - うるう秒 FAQ - お問い合わせ-資料請求フォーム


 
EndRun Technologies
タイムベース・周波数ベースの専業メーカー エンドラン

日本時間 2017年1月1日にうるう秒が挿入されました.現在,GPS 時刻と UTC 世界時刻との差は18秒です.

Q
うるう秒は誰が決めているのですか?
A

IERSが決定し、そのブレテンで報知します.
https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html

Q
なにはともあれ,うるう秒に関して準備しておくことは?
A

GPS を時刻源とする機種(例:Sonoma D12 GPS, Meridian GPS, Tempus LX GPS)ではうるう秒は自動的に処理されます.NTP/PTPサーバー側で行うことは何もありません.

CDMA を時刻源とする機種(例:Sonoma D12 CDMA, Meridian CDMA, Tempus LX CDMA, Praecis II)では,うるう秒挿入が決まったら事前に手入力でうるう秒オフセットを設定します.CDMAタイムサーバーのうるう秒への対応については,こちらを参照ください.

いずれの場合も,NTPサーバーはうるう秒が挿入されることを NTP クライエントに通知し,うるう秒を挿入します.PTP V2サーバはうるう秒のないPTP時刻,すなわちTAI(世界原子時)を配信しますが,当日になるとうるう秒が挿入されることをスレーブに通知します.

クライエント/スレーブクロックがうるう秒を挿入するかどうかはクライエント次第です.お使いになっているクライエントソフトとOSが,うるう秒挿入にどのように対応するのか理解しておくべきです.

Q
うるう秒オフセットとは何ですか?
A GPSを基準とするタイムサーバーにおいては,モノトニックなGPS 時刻とうるう秒のある UTC 世界時刻との差を意味します.2012年7月以降 16秒,2015年7月以降 17秒,2017年1月以降 18秒となります.NTPサーバはGPS時刻を外部から受信して,内部でUTC世界時に変換して配信します.その際変換に使われるのがこの閏秒オフセットです.GPSタイムサーバーは閏秒オフセット情報もGPS衛星から受信して自動調整します.CDMAタイムサーバーは基地局からオフセット情報を受信することもできますが,この情報が必ずしも正しくないことがあるために,手入力することを強くおすすめします.いずれの場合も,クライエントに対するうるう秒の挿入は自動的に行われます.
Q
うるう秒には挿入と削除があるのですか?
A

理論的にうるう秒には挿入と削除がありえます. しかし,過去のうるう秒は全て挿入であり,削除されたことはありません.これは地球の自転速度は長い目で見た場合に遅くなりることはあっても早くなる理由がないことによります. 1度も発生したことがなく,まずありえない「うるう秒削除」は OS やシステムにサポートされているかどうかも定かではありません. 現在の1日は200年前の1日より2ms長くなっています.

Q
うるう秒に関する設定を確認する方法は?
A GPS NTP/PTPタイムサーバーは自動で設定されます.CDMA NTP/PTPタイムサーバーのうるう秒に関する設定は,Sonoma D12やMeridianやTempus LX では前面パネルの操作からでも,コマンドからでも確認できます.詳しくは各製品のマニュアルを参照ください.コマンドで確認する方法は以下の通りです.うるう秒の確認にWebインターフェースは使わないでください.
Sonoma CDMA Tempus LX CDMA 2017年1月1日9時 までに設定する場合は
-> cdmaleapmode
CDMA Leap Second Mode is USER:  Current LS = 17, Future LS = 18
うるう秒挿入後に自動的に Current LS = 18, Future LS = 18 になります.
Sonoma CDMA Tempus LX CDMA 2017年1月1日9時 以降に設定する場合は
-> cdmaleapmode
CDMA Leap Second Mode is USER:  Current LS = 18, Future LS = 18
Praecis (II/Cf/Cf/Ce/Cfr/Cfr2) では "LEAP" コマンドを使います. LEAP=17,18 と入力することで Current 17 Future 18 に設定されます.うるう秒挿入後は自動的に Current 18 Future 18 になります.
Q
うるう秒を手入力で設定する方法は?
A GPS NTP/PTPタイムサーバーは自動で設定され,手入力することは出来ません.
CDMA NTP/PTPタイムサーバーのうるう秒に関する設定は,手入力で行います.Sonoma D12やMeridianやTempus LX では前面パネルの操作からでも,コマンドからでも行うことができます.詳しくは各製品のマニュアルを参照ください.
CDMAタイムサーバーのうるう秒への対応については,こちらを参照ください.

以下は Sonoma CDMA Tempus LX CDMA を 2017年1月1日までに設定する場合です.その後は current leap second 18 future leap second 18 に設定します.
前面パネルのボタン操作
Clock Menu
Leap-Sec
を選択して、current leap second 17 future leap second 18 に設定します.
コマンドラインから
-> cdmaleapconfig UER モードを選択して,今回は Current LS = 17 Future LS = 18 を指定します (設定直後にはcdmaleapmodeで設定を確認することは出来ません)
Praecis (II/Cf/Cf/Ce/Cfr/Cfr2) では "LEAP" コマンドを使います. LEAP=17,18 と入力することで Current 17 Future 18 に設定されます.
Q
2016年12月31日に,うるう秒が挿入されると聞いたのですが?
A
日本時間 2017年1月1日午前8時59分59秒のつぎに60秒としてうるう秒が挿入されました.
日本時間 2015年7月1日午前8時59分59秒のつぎに60秒としてうるう秒が挿入されました.
日本時間 2012年7月1日午前8時59分59秒のつぎに60秒としてうるう秒が挿入されました.

GPS時刻はうるう秒を持ちませんが,NTPサーバはうるう秒が挿入されることがある協定世界時UTCを供給します.うるう秒挿入当日になると,NTPのLeap Indicator(LI)を使いNTPクライエントにそれを伝えます.うるう秒が挿入される日(UTC協定世界時)には LI1 または LI2 がセットされ,UTC翌日00:00ちょうどにリセットされます.Leap Indicator は2ビットで表現され,次の4つの状態を持ちます.

LI0 (00) 時刻は通常どおり
LI1 (01) UTC本日最後の分は61秒間になる(23時59分60秒がある)
LI2 (10) OTC本日最後の分は59秒間になる(23時59分59秒がない=これは過去に例は無く,ありえません)
LI3 (11) 時刻はGPSに同期していない=配給された時刻を使うべきではない

NTPサーバはこれらのビットをセットするだけで,59秒(ないしは00秒)を二度踏みします.これを Frozen Second “凍結された秒” と呼びます. Frozen Second については下記の同項目を参照ください. うるう秒をどう扱うかはクライエント側の機能に依存します.クライエントの動作は各OSの供給元にお問い合わせください.

GPS のエポックは1980年の1月6日であり,その時点で協定世界時UTCと同期しています.最後のうるう秒は日本時間2017年1月1日に挿入され,それがエポックから18回目(すべて+1秒)でした.うるう秒についてはこちらのサイトに平易な説明と関連サイトへのリンクがあります.
http://jjy.nict.go.jp/news/leaps.html

CDMA NTPサーバーのうるう秒の動作はこちらをご覧ください.
GPS NTPタイムサーバーのうるう秒の動作は以下のとおりです.

NTPでは、Frozen Second としてうるう秒を挿入し,うるう秒の間タイムスタンプは足踏みします.
(実際には“happened before”関係を保つために微妙にすすみます)
NTPサーバーによるうるう秒の扱いはDr. Millsによるこちらを参照ください
うるう秒に関する動作(GPSを時刻源とする場合)
NTPサーバーは
Leap Indicator 0をセットした時刻情報を配信しています.
うるう秒挿入まで24時間を切ると,Leap Indicatorをセットした時刻情報を配信しはじめます.
NTPとしては、NTP秒とLIの組み合わせでうるう秒を表現します.
具体的にはNTP秒が足踏みする間にLIビットが変化します.
UTCJSTLI
NTP 秒
23:59:5908:59:5901
3550089599
通常の進み
23:59:6008:59:6001
3550089600
Frozen Second
00:00:0009:00:0000
3550089600
通常の進み
00:00:0109:00:0100
3550089601
通常の進み

Leap Second List はftp://time.nist.gov/pub/leap-seconds.list にあります.
(LI1を受信したクライエントの動作はNTPクライエントソフトの仕様に依存します)
詳しくは各OSの供給元にお問い合わせください.
NTPタイムサーバーは
Leap Indicatorを0にセットした時刻情報を配信します.
つぎのうるう秒が発表されるまでこのまま運用します.
Q
NTPのFrozen Secondの間になんどか時刻問合せをすると同じ時刻を答えるのですか?
A それでは“happened before”の関係を保つことができないため,問合せを受ける毎に最小ステップで少しずつ先に進みます.これがNTPサーバーにおける実装です.ステップはうるう秒の前に挿入されますが,時刻を巻き戻すことはせずに凍結しつつ,必要に応じて最小限の刻みで少しずつ進めます.この方法はDr. David Millsによります.NTPによるうるう秒の扱いはDr. David Millsによるこちらを参照ください“happened before”についてはDr. Leslie LamportによるTime, Clocks, and the Ordering of Events in a Distributed System を参照ください

もし問合せがないとAのパスとなります.もし問合せがあるとBのパスになって “happened before” の関係を保とうとします.その進む量は,1秒に比べて十分に小さい値となります.

これはあくまでもNTPサーバー側の話です。NTPクライエントがこれをどのように扱うかは各OSの供給元にお問い合わせください.
Q
うるう秒の扱い方にはいろいろあるのですか?
A
うるう秒をNTPサーバーにどのように実装するかについてはいろいろな方法と議論がありますが、ntpdには上記の実装がなされています.他の方法についてはたとえばこちらの資料を参照ください.
うるう秒をNTPクライエントがどう扱うかについてはまた別の議論となります.
Q
うるう秒の扱い方にはいろいろあるのですか?
A
うるう秒をNTPサーバーにどのように実装するかについてはいろいろな方法と議論がありますが、ntpdには上記の実装がなされています.他の方法についてはたとえばこちらの資料を参照ください.
うるう秒をNTPクライエントがどう扱うかについてはまた別の議論となります.
Q
NTPサーバーに同期するクライエントのうるう秒の挙動はどうなりますか?
A
クライエントの挙動はNTPクライエントソフトとOSに依存します.詳しくは各OSのベンダーにお問い合わせください. クライエントの時刻はクライエントコンピューターの持つクロックとNTPクライエントソフトウェア(あるいはSNTP)により管理されています. NTPクライエントソフトウェアの実装だけでなく、OSカーネルの時刻の実装の影響も受けます. NTPサーバから受け取った LI の指示に従い,うるう秒を挿入するケースや,次のNTP同期で補正されるまで放置するケース,徐々に調整してあたかもうるう秒がなかったかのように振る舞うケースなどがあります. 放置したり,うるう秒がなかったように振る舞うケースでは UTC との同期ができていない期間(世界標準とはいえない時刻を使っている期間)が生じます.
Q
Solaris のクライエントにSLEWモードでうるう秒の調整をさせたいが?
A

まず,本当にSLEWモードにする必要があるのか考えるべきです. SLEWモード自分勝手な時刻を作ってしまうことを意味し, UTC との関係を担保できません. どうしてもSLEWモードにしたい場合は;

ntpd は通常 STEP モード(1秒単位の調整)でうるう秒に対応します.SLEWモード(ゆっくり調整する)でうるう秒に対応させたいのであれば ntp.conf への設定が必要になります. ntp.conf に次の2行を追加します.disable pll を省略すると,ntpデーモンは128ms以上の調整ができなくなりますので注意してください.

slewalways yes
disable pll

古い OS では SLEW モードを実装していないことがあります。

Q
Linux ではうるう秒の挿入時にどのようなログが残りますか?
A
Linux では次のようなログが残ります.

RH7/CentOS7
Jul  1 08:03:17 tyo11 chronyd[950]: System clock status set to insert leap second
Jul  1 08:59:59 tyo11 kernel: Clock: inserting leap second 23:59:60 UTC
Jul  1 09:00:25 tyo11 chronyd[950]: System clock status set to not insert/delete leap second

RH6/CentOS6
Jul  1 08:59:59 tyo1 kernel: Clock: inserting leap second 23:59:60 UTC

RH5/CentOS5
Jul  1 08:59:59 tyo2 kernel: Clock: inserting leap second 23:59:60 UTC

Clock: inserting leap second 23:59:60 UTC
Jan 1 08:59:59 TYO1 kernel: Clock: inserting leap second 23:59:60 UTC
Q
Windows でのうるう秒の扱いはどうなりますか?
A
http://support.microsoft.com/kb/909614/ja
http://support.microsoft.com/kb/2722715/ja
Windows はうるう秒を認識しません.うるう秒挿入から次のNTPサーバとの同期まで1秒の狂いが生じます.
Q
PTP を使っています.うるう秒の扱いはどうなりますか?
A

PTP V2 ではPTPマスターは故意にUTCを選択しない限り PTP Second すなわち国際原子時 ( TAI ) を配信します.TAI はモノトニックな時刻であり,GPS 時と同様にうるう秒はありません.TAI は GPS時刻 よりも19秒進んでいて、これは変わることがありません.

PTP SecondによるPTPマスターの動作は以下の通りです:

  • PTPサーバーはTAIを配信する、TAIはモノトニックである(うるう秒がない)
  • PTPサーバーもNTPサーバーと同様に現在のうるう秒オフセットとLIに相当する current_uct_offset と leap_59 と leap_61 配信する (クライエントは必要があればそれを元にうるう秒を挿入してUTCを算出)
  • leap_59 と leap_61 は挿入日当日(少なくとも挿入12時間前には)に 0 から 1 になる
  • Time traceable と Frequency traceable は True

UTC によるPTPマスターの動作は以下の通りです:

  • これは使うべきではありません(単にVer.1 スレーブとの互換性のためにある)
  • UTC を配信する UTC にはうるう秒がありモノトニックではない
  • current_uct_offset も either leap_59 も leap_61 は常にゼロであり,通知しない
  • Time traceable も Frequency traceable も False
Q
IRIG を使っています.うるう秒の扱いはどうなりますか?
A

EndRun の IRIG ポートでは常に 59 60 00 としてうるう秒が挿入されます. オリジナルの IRIG にうるう秒を事前にアナウンスする仕掛けがありません. IEEE1344 では bit 60 LSP と bit 61 LS でうるう秒の挿入を伝え,60秒として挿入します. LSP はうるう秒挿入1分前にならないとクライエントに知らされません. これは、IRIG同期の機器には特に問題とはなりません. しかしIRIGで上位と時刻同期するNTPサーバーにとっては致命的です. NTPのクライエントのポーリング間隔はしばしば1分以上になりますので,うるう秒挿入1分前(実際には30秒前位になる)から通知されたのでは、NTP サーバーからの公告が手遅れになり,NTPクライエントがうるう秒挿入を知らずに終わる可能性があります.

Q
うるう秒挿入を事前に試すには?
A

NTPd と PTPd はうるう秒を外部ファイルから読み込むことができ,この機能はテストにも使うことができます.詳しくはそれぞれの付属文書を参照ください.
Sonoma や Meridian II のうるう秒での挙動を事前に試すには,GPSシミュレーターから模擬信号を入れるのが確実な方法です.その際注意することは,正確なGPS模擬信号を用意することと,Sonoma も Meridian II もロールオーバー対策が組み込まれているので不用意に過去に戻る模擬を行ってはならないことです. GPSシミュレーターは Sonoma や Meridian II が示す時刻より未来の時刻に設定して下さい. また,GPSシミュレーターを使う前後には必ずマニュアルにある GPS シミュレーターの使用に関する手順に従いリセットを実施してください. ご不明な点は弊社までお問い合わせください.

最終更新:2020年7月3日
昌新 技術部