SUSE Linux (SLES12) を YaST で NTP の設定

ここでは SUSE Linux Enterprise 12 (SLES12) を使って、YaST ツールから ntpd の初期設定の手順を説明しています。 openSUSE も大体似たようなものなので参考にしてください。

- はじまりはじまり -

今回は主に GUI 版 YaST (yast2) を使って説明します。キャプチャ画面は英語ですが、これは第一言語を英語にしているからで、第一言語が日本語であれば、一応日本語メニューも出てきます。(でも何だか英語版の方が私にはほっとするんですね)一部 CUI 番 yast のキャプチャがありますが、機能は全く同じです。

ntpd のインストールは YaST を起動して、"Network Services" > "NTP Configuration" を選ぶと自動的にインストールが開始されます。

a0056607_15591361.jpg

まれに YaST メニューに "NTP Configuration" のアイコンがない場合があります。"Software Management" から "NTP" をキーワードに "Search" して "yast2-ntp-client" のチェックが入っているかどうか確認します。チェックが入っていない場合、チェックして、 NTP Configuration ツールをインストールします。もちろんここから ntp のデーモンもチェックしてインストールしても構いません。チェックを入れたら、いったん YaST を終了して、もう一度 YaST を立ち上げるとメニューに出てきます。

a0056607_16001458.jpg


インストールが終わると、設定画面が自動的に開きます。 "Start NTP Deamon" が "only Manually" となっているところを "Now and on Boot" に設定しなおします。

※ この時点で 
0.opensuse.pool.ntp.org,
1.opensuse.pool.ntp.org,
2.opensuse.pool.ntp.org, or 3.opensuse.pool.ntp.org
の3つがデフォルトで NTP ソースとして選択されるようです。

Configuring an NTP Client with YaST
https://www.suse.com/documentation/opensuse121/book_opensuse_reference/data/sec_netz_xntp_yast.html



a0056607_16011410.jpg
まず "Security Settings" タブを開いてください。"Run NTP Deamon in Chroot Jail" にデフォルトでチェックが入っているはずです。たまに入っていない事があるので、確認します。もう一度 "General Settings" タブを開きます。

a0056607_16020532.jpg

初期値には "Synchronization Type" : "Undiscriplined Local Clock" が指定されています。この画面は別なベアメタルサーバーで見た CUI 版 YaST の設定画面です。

a0056607_16025029.jpg

ここで、重要なことは、

1 - ntpd が起動する時に "Undisciplined" な "設定されていないローカル時刻" をソースとする、つまりハードウェアクロックをソースとするかどうかです。SUSE をハイパーバイザー運用のためにインストールする場合など、 ntpd が起動する前に、"Orphan 状態"、つまりネットワークに繋がっていない"孤独な状態" に使用するものです。信頼できなくてもハードウェアの CMOS クロックをもらうようなので、まだネットワークが行動していない ntpd が起動していない、あるいは、ネットワーク障害が発生している時やブート時のログには、あまり正確とはいえないまでも、ローカルクロックで立ち上がってくれるわけです。ベアハードウェア上のサーバーは、この行をとりあえず残しておきます。

Undisciplined Local Clock

IDEA! The Undisciplined Local Clock should generally no longer be used.

とある様に、将来的にはサポートされない手段になるものです。

2 - このシステムが XEN や KVM, Hyper-V などで動作する場合は、”Undisciplined Local Clock”Delete します。

openSUSE のマニュアルなのですが、

第2章 KVM の制限事項

"時刻同期"

"多くのゲストでは、時刻を正確に維持するのに追加のサポートを必要とします。 利用可能であれば、 kvm-clock を使用してください。 それ以外にも NTP やその他のネットワークベースの時刻同期プロトコルを利用し、 安定した時刻を維持することを強くお勧めします (VM ホストサーバ と VM ゲスト の 両方に対して) 。ゲスト内での NTP は、 kvm-clock を利用している場合には推奨されません。詳しくは 8.7項 「時計の設定」 をお読みください。"

とあり、仮想環境下では、ホストOSからのハードウェア時刻同期は推奨されません。暗に ntpd が推奨です(と読めます)。そこで、仮想運用する場合、タイムソース "Undisciplined Local Clock" を削除して ntpd の設定は必須の事となります。

- タイムソースの追加 -

ntpd にタイムソースを追加します。”Add” ボタンを押して "Server" を選び Next

a0056607_16040057.jpg
"Address" の右にある、"Select" リストから "Public NTP Server" を選び、地域 "Japan" にある NTP ソースのリストが出てきます。 SLES12 の用意した List の中には NICT と "jp.pool.ntp.org" のリストが出てきます。SLES11 までは、jp.pool.ntp.org と福岡大学の NTP ソースがリストされました。

a0056607_16041880.jpg

1- セレクタを使わないで、オリジナルの NTP ソースを使う場合、"Server Settings" の "Address" 欄には、直接サーバーのアドレス ”ntp.nict.jp” とか "ntp1.mylocal.net"、”192.168.1.123” のように記載できます。一応 IP 直アドレスでも構わないのですが、FQDN 名で設定すべし、という事になっています。

社内向けのDNSサーバーがある場合、DNSサーバーの CNAME に LAN内 NTP ソースとなるレコードを追加しておくのが良いでしょう。

 ※ ちなみに time.windows.com とも同期できましたが、世界何億台が参照するため、滅茶苦茶時間がかかりました。できるだけ経路の短い国内の公開サーバーか、契約先ISPが提供する NTP サーバーを利用すべきでしょう。有名だからと言って、昔、人気があった福岡大学の NTP は様々なシステム機器のデフォルトで、トラフィックと遅延問題が大きく、あまりご迷惑をかけないように利用を控えた方が良いようです。(今は学内のみ利用可能なようです)


2- 公開NTPサーバーや ISP の指定 NTP を使うのは、ローカルネットワーク内部の2~3台までとして、他のシステムやWindows などのPCはこのローカルLAN内のNTP参照をすべきでしょう。(と言っても Windows が time.windows.com をデフォルト参照先になっているのはやっぱり問題ですよね)

NICT のFAQによくまとまっています。他、mfeed.ad.jp やリングサーバープロジェクトなどに、専門家が書いた使い方が載っています。この零細出鱈目ブログよりよっぽど為になりますので一読してください。

NICT公開NTP FAQ

インターネットマルチフィード(時刻情報提供サービス for Public)

NTP service : ntp.ring.gr.jp

どうやったらpool.ntp.orgを利用出来るのでしょうか?

NTP Download (Meinberg 氏による Windows 用 ntpd のバイナリ配布先)

3- NTP のプロトコルは 123 番ポートでほぼ UDP だそうです。ただ RFC のドキュメントには UDP の記述しかないので、TCP を使っても構わないようですが、かなり希少な存在なようです。ファイアウォール屋さんと相談の上、穴をあけてください。

「NTP のポート番号と UDP か TCP かどちらか教えろ」と質問してきた信じられない自称プロトコルの専門家、ファイアウォール担当の SI 屋が居ましたが、今なら首を絞めて教えてあげたい。というか、当時は Google 先生もいないし、マニュアルにもポート番号の記述しかなく、そんなことも知らなかった私が一番悪いんですけどね。

4- NTP の問い合わせは「行って」「帰って」の経路が同じものと想定して、その時差の真ん中あたりが、NTPソースサーバーが返した時刻だと補正の判断をするそうです。だからなるべく「行って帰って」の経路が単純で短い NTP ソースを誤差なく使うべし、という事です。他の海外製ディストリビューションでは、インストールした後のデフォルトが、海外にある自社の NTP プールを指定していることが多いようですが、あまり好ましいものではないでしょう。

ここで "Test" ボタンを押して、軽快にレスポンスが返ってくれば、NTPソースとして利用可能です。

a0056607_16044994.jpg
これをタイムソースとして利用するサーバー複数個を指定します。LAN 内サーバーであれば、内部にあるNTPサーバーを複数と、予備にISP指定の NTP サーバーや、nict や mfeed などの公開NTPサーバーを指定するのが良いでしょう。

"Display Log" ボタンから、 "Advanced" > "Save Settings and Restart NTP Deamon" を選ぶと設定内容が保存され、ntpd が起動します。

a0056607_16051267.jpg
ntpd は大きな時刻ずれを検出すると minpoll 64 秒の短い間隔から "徐々に時刻を正確なものに寄せて” このチェック間隔も広げます。さもないと、スケジューラをすっ飛ばしたりするような、予期せぬ動作が起こってしまいます。

おおよそ安定してくると Stepping Mode から Slew modeとなり、デフォルトで 1024 秒間隔で時刻ずれをチェックします。このあたりの詳細は


で確認してください。

なお、SLES12 (spなしの初期版) では apparmor の不具合らしいバグがあるため ntpd の起動に失敗します。

SLES12 ntpd が Fail 起動できない <とその解決方法

簡単に修正できるので、参考にしてください。


SUSE Linux, SLES, SLED, NTP 設定方法, YaST,




[PR]
トラックバックURL : http://islandcnt.exblog.jp/tb/237777494
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by islandcenter | 2017-09-21 16:24 | SUSE | Trackback | Comments(0)