数日前から、毎朝届くFreeBSD の日時レポートに、
「fetch: https://www.ietf.org/timezones/data/leap-seconds.list: Not Found」
という一行が含まれるようになってきました。
先日、うるう秒廃止予定と知りましたけど、まだ先だったはず。
手動で試してみました。
> wget "https://www.ietf.org/timezones/data/leap-seconds.list" --2023-12-01 12:58:03-- https://www.ietf.org/timezones/data/leap-seconds.list www.ietf.org (www.ietf.org) をDNSに問いあわせています... 104.16.44.99, 104.16.45.99, 2606:4700::6810:2d63, ... www.ietf.org (www.ietf.org)|104.16.44.99|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 404 Not Found 2023-12-01 12:58:04 エラー 404: Not Found。
コマンドには成功しているけど、ファイルにアクセスできない。
# service ntpd fetch fetch: https://www.ietf.org/timezones/data/leap-seconds.list: Not Found
あれま、本当に無いわ。
放置でいいのかな?私が口を出せるレベルの話じゃないので、放置するしかないけど、しばらく観察してみましょう。
2024/01/23 追記
藤川さんからコメントをいただきました。
私自身は、leap-second を放置していても、サーバーの運用に影響ないので、どこかで更新されるだろう。くらいにしか考えておらず調査もしていなかったのですが、コメントをいただいたのでそれに沿って調べてみました。
Checking for rejected mail hosts: fetch: https://www.ietf.org/timezones/data/leap-seconds.list: Not Found
まず、現時点で、このURLのファイルはどうなっているの?と「https://www.ietf.org/timezones/data/leap-seconds.list」を叩いてみたところ、なんと、Not Found ではなく、「ietf.org is no longer serving this file. Use https://data.iana.org/time-zones/data/leap-seconds.list instead.」というテキストファイルが表示されました。
leap-seconds.list の管理が、ietf.org から、iana.org に移動したみたい。
背景は知る由もありませんが、指定のURLをアクセスしてみたところ、しっかりと、leap-seconds.list が置いてある。これを参照するように修正すれば復活することは間違いありませんが、どのサーバーを参照するのかはOS管理部分だから、本来なら、freebsd-update での更新時に修正されるべきです。(変なファイルを取ってきたらまずいでしょ。)
とはいえ、毎日 not found レポートが届くのもうれしくない。ということで、そもそもデイリーレポートのスクリプトが leap-seconds-list のURLとしてどこの情報を使用しているのか追跡してみたところ、、、、、、あっちを見たり、こっちを見たりで、結局、
/etc/default/rc.conf 中の、
ntp_leapfile_sources="https://www.ietf.org/timezones/data/leap-seconds.list" # Source from which to fetch leapfile
だと判明。
なんだ、/etc/rc.conf で編集可能なのか!ということで、/etc/rc.conf の ntpd に関するスイッチの下に一行追加。
ntpd_enable="YES"
ntp_leapfile_sources="https://data.iana.org/time-zones/data/leap-seconds.list"
一台のサーバーに設定して手動でテスト(service ntpd fetch)してみたところ
etc/rc.d # ll /etc/ntp/leap-seconds -rw-r--r-- 1 root wheel 10666 Jan 7 23:12 /etc/ntp/leap-seconds
となっていて、タイムスタンプが今年のものとなり、更新された模様。ただし、情報自体に変化はない(近日中のうるう秒は予定されていない)ため、ファイルの中身は同じ。(あとで、ntpd は/etc/ntp ディレクトリのファイルを参照しておらず、/var/db/ntpd.leap-seconds.list’ を参照していると判明。)
後ほど、本番サーバーにも設定予定。本番コンフィグレーションが更新された時に気が付かないので一台くらいは未設定のホストも残しておかないといけませんね。
2024/01/25 追記
service ntpd fetch でダウンロードされたファイルは /etc/ntp ではなく、/var/db 下にコピーされています。
Jan 23 17:11:43 db1 ntpd[64790]: leapsecond file ('/var/db/ntpd.leap-seconds.list'): good hash signature Jan 23 17:11:43 db1 ntpd[64790]: leapsecond file ('/var/db/ntpd.leap-seconds.list'): loaded, expire=2024-06-28T00:00:00Z last=2017-01-01T00:00:00Z of
OSが更新されるまでの暫定的な設定方法は、上記追記メモの通り。
ietf.org is no longer serving this file.
Use https://data.iana.org/time-zones/data/leap-seconds.list instead.
だそうです。
情報をありがとうございました。
記述を元に、仮復旧させる方法を本文中に追記しました。