mori22554
2022年9月12日 18時43分
お世話になっております。森です。
起動時の時刻同期について質問させてください。
実機は、Armadillo G3L(RTCなし)を使用しております。
実機起動後、debian9の環境では起動時に時刻同期がされていましたが、Debian10では時刻が2019年のままになってました。
https://armadillo.atmark-techno.com/index.php/forum/armadillo/7142
を拝読し、/etc/network/if-up.dの中を確認しました。
debian9ではデフォルトでntpdateファイルがありましたがdebian10ではありませんでした。
これはデフォルトの動作がdebian10では起動時に時刻設定行わないように変更になったということでしょうか?
その場合、debian10で起動時に時刻同期を行うための設定方法はわかりますでしょうか?
ユーザランドは下記を参照いたしました。
debian9環境:debian-stretch-armhf_aiotg3l_20220829.tar.gz
debian10環境:debian-buster-armhf_aiotg3l_20220829.tar.gz
よろしくお願いいたします。
コメント
mori22554
> 森さん。
>
> お世話になっています。
> アットマークテクノのマルティネです。
>
> > 実機起動後、debian9の環境では起動時に時刻同期がされていましたが、Debian10では時刻が2019年のままになってました。
> > https://armadillo.atmark-techno.com/index.php/forum/armadillo/7142
> > を拝読し、/etc/network/if-up.dの中を確認しました。
> > debian9ではデフォルトでntpdateファイルがありましたがdebian10ではありませんでした。
> > これはデフォルトの動作がdebian10では起動時に時刻設定行わないように変更になったということでしょうか?
> > その場合、debian10で起動時に時刻同期を行うための設定方法はわかりますでしょうか?
>
> 以前調べた時のメモですが、debian 10 では二つの方法で時間を取得するはずです:
> * systemd-timesyncd のサービスでいずれ時間を取得する(ネットワークの知識がなさそうですので、時間がかかる可能性が高いです)
> * dhcp のフックとして、/etc/dhcp/dhclient-exit-hooks.d/ntpdate で ntpdate を実行します
>
> なので static IP か dhcp を使わない環境(LTEなど)で設定された場合確かに効率が悪いですね。
> もしかしたら森さんのArmadilloではそうでしょうか?
おっしゃる通り、時刻同期要のネットワークはLTEのみを想定しており、起動時に実施したいと思ってます。
ネットワークを固定したいのでできれば弊社クラウドの時刻を同期したいと思ってますが、時刻が数か月ずれてるとTLSハンドシェークで証明書エラーが出てしまうため、ntpでdebian10でLTE接続時に時刻同期する方法を質問させていただいてます。
<時刻がずれた状態で接続した場合 → 証明書エラー>
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: certificate is not yet valid
* Curl_http_done: called premature == 1
* stopped the pause stream!
* Closing connection 0
curl: (60) SSL certificate problem: certificate is not yet valid
More details here: https://curl.haxx.se/docs/sslcerts.html
>
> その場合は以前同様に if-up.d か interfaces ファイルの post-up でそのままのコンフィグを使えますので、それがいいかもしれません。
> 担当の者に相談してみます。
>
お手数をおかけしますが、よろしくお願いいたします。
at_keitaro.takahashi
アットマークテクノ高橋です。
以下のようなスクリプトを/etc/NetworkManager/dispatcher.d/に配置することで、ネットワークへの接続時すぐに時刻同期が可能です。
#! /usr/bin/bash [ -n "$CONNECTION_UUID" ] || exit INTERFACE=$1 ACTION=$2 case $ACTION in up | vpn-up | dhcp4-change | dhcp6-change) systemctl restart systemd-timesyncd ;; esac
配置後、以下のように実行権限を付与してください。(スクリプト名は例です)
chmod 755 /etc/NetworkManager/dispatcher.d/10-update-timesyncd
今後のアップデートで同様の機能を標準で実装予定です。
mori22554
at_dominique.m…
2022年9月13日 8時12分
森さん。
お世話になっています。
アットマークテクノのマルティネです。
> 実機起動後、debian9の環境では起動時に時刻同期がされていましたが、Debian10では時刻が2019年のままになってました。
> https://armadillo.atmark-techno.com/index.php/forum/armadillo/7142
> を拝読し、/etc/network/if-up.dの中を確認しました。
> debian9ではデフォルトでntpdateファイルがありましたがdebian10ではありませんでした。
> これはデフォルトの動作がdebian10では起動時に時刻設定行わないように変更になったということでしょうか?
> その場合、debian10で起動時に時刻同期を行うための設定方法はわかりますでしょうか?
以前調べた時のメモですが、debian 10 では二つの方法で時間を取得するはずです:
* systemd-timesyncd のサービスでいずれ時間を取得する(ネットワークの知識がなさそうですので、時間がかかる可能性が高いです)
* dhcp のフックとして、/etc/dhcp/dhclient-exit-hooks.d/ntpdate で ntpdate を実行します
なので static IP か dhcp を使わない環境(LTEなど)で設定された場合確かに効率が悪いですね。
もしかしたら森さんのArmadilloではそうでしょうか?
その場合は以前同様に if-up.d か interfaces ファイルの post-up でそのままのコンフィグを使えますので、それがいいかもしれません。
担当の者に相談してみます。
よろしくお願いします。