自分は、ホスト側になることはないので、設定が簡単なsystemd-timesyncdを使っている。サーバー用途でなく、普段使いのPCであればsystemd-timesyncdがいいと思う。ただ、timesyncdはまだ歴史が浅いと思うので、今後ゴタゴタがあるかもしれないのが気になるところ。
NTPを使う場合
pacmanからntpパッケージをインストールする。# pacman -S ntp
公式wikiによると、The ntp package provides a default configuration file that should make ntpd work out of the box in client mode, without requiring custom configuration.らしい。クライアントモードで使うのであれば、/etc/ntp.confのサーバーを日本のサーバーに変更するだけで良い気がする。ntpは使ってないので、設定は特に精査していない。
# vim /etc/ntp.conf # For additional information see: # - the ntp.conf man page # - http://support.ntp.org/bin/view/Support/GettingStarted # - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon # Associate to public NTP pool servers; see http://www.pool.ntp.org/ server 0.jp.pool.ntp.org iburst server 1.jp.pool.ntp.org iburst server 2.jp.pool.ntp.org iburst server 3.jp.pool.ntp.org iburst # By default, the server allows: # - all queries from the local host # - only time queries from remote hosts, protected by rate limiting and kod restrict default kod limited nomodify nopeer noquery notrap restrict 127.0.0.1 restrict ::1 # Location of drift file driftfile /var/lib/ntp/ntp.drift
設定の意味は
未指定: 制限なし(全てのNTPパケットを許可)
ignore: 全てのNTPパケットを無視
nomodify: 時刻問合せには応答するが、時刻の変更要求などは無視
notrust: 時刻問合せには応答するが、自身の時刻合わせには使用しない
nopeer: 指定ホストと相互に同期しない
noquery: NTPの実装に依存する時刻問合せを無視
設定ファイルがかけたら、デーモンを起動する。
# systemctl daemon-reload # systemctl start ntpd.service # systemctl enable ntpd.service
ntpq -pで状態を確認。
$ ntpq -p
ホストの状態は、
* 同期している
+ いつでも同期できる
x クロックが不正確なため無効
空白(スペース) 以下のような理由で使用不可となっている
・不正経路やサーバダウン等の理由でサーバと通信できない
・サーバやサーバまでの経路のファイアウォール等で123/udpのパケット受信を拒否している
・サーバが自分自身(ループ)
・単に同期に時間がかかっている(しばらく待ってみる)
timesyncdを使う場合
timesyncdを使う場合、systemdのバージョンが217以上であったほうが良い。一応、213以上であれば使えるようになっているらしいが、設定ファイルの書き方が違ったり、216より古いとsystemd-networkdを起動させないといけなかったりしてめんどくさい。systemdのバージョンの確認をする。$ pacman -Qi systemd Name : systemd Version : 217-6 Description : system and service manager Architecture : x86_64 URL : http://www.freedesktop.org/wiki/Software/systemd Licenses : GPL2 LGPL2.1 MIT Groups : None Provides : nss-myhostname systemd-tools=217 udev=217 Depends On : acl bash dbus glib2 kbd kmod hwids libcap libgcrypt libsystemd libidn lz4 pam libseccomp util-linux xz
バージョンが217以上であれば、まず、timedatectlから時刻合わせ機能を有効にする。もし、ntpとかchronyをこれまで使っていたら、systemctlから無効にしてアンインストールしておいたほうが良いと思う。
# timedatectl set-ntp true
timesyncdの設定ファイルは/etc/systemd/timesyncd.confになる。このファイルに、使いたいNTPサーバー"NTP="以下に指定する。複数指定する場合は、空白を区切りとする。予備サーバーは"FallbackNTP="以下に指定する。
# vim /etc/systemd/timesyncd.conf [Time] NTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
状態をsystemctlから確認する。こんな表示になれば動いてるはず。
$ systemctl -l status systemd-timesyncd ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled) Active: active (running) since 日 2014-11-23 18:21:04 JST; 2h 47min ago Docs: man:systemd-timesyncd.service(8) Main PID: 1142 (systemd-timesyn) Status: "Using Time Server 129.250.35.251:123 (0.arch.pool.ntp.org)." CGroup: /system.slice/systemd-timesyncd.service └─1142 /usr/lib/systemd/systemd-timesyncd 11月 23 18:21:04 Alpha systemd-timesyncd[1142]: Using NTP server 129.250.35.251:123 (0.arch.pool.ntp.org). 11月 23 18:21:04 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 64s/-0.000s/0.028s/0.000s/+0ppm 11月 23 18:22:08 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 128s/+0.000s/0.028s/0.000s/+1ppm 11月 23 18:24:16 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 256s/+0.001s/0.028s/0.000s/+2ppm 11月 23 18:28:32 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 512s/+0.001s/0.028s/0.001s/+3ppm 11月 23 18:37:05 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 1024s/+0.001s/0.029s/0.001s/+3ppm 11月 23 18:54:09 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 2048s/+0.003s/0.029s/0.001s/+4ppm 11月 23 19:28:17 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 2048s/+0.004s/0.029s/0.002s/+5ppm 11月 23 20:02:25 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 2048s/-0.001s/0.028s/0.003s/+5ppm (ignored) 11月 23 20:36:34 Alpha systemd-timesyncd[1142]: interval/delta/delay/jitter/drift 2048s/-0.005s/0.028s/0.006s/+4ppm
NTPはmonlistリクエストによるDDoS攻撃とかあるけど、systemd-timesyncdを使っている場合は問題ないんだろうか。chrootを使ったほうがいいとか、monlistのめんどくささから、timesyncdを使っているんだけど。
参考:
[1]Network Time Protocol daemon
[2]systemd-timesyncd
スポンサーリンク
0 件のコメント:
コメントを投稿