モジュール上で正しい時刻を持つことは、ログの同期やセキュリティ証明書の検証を含むあらゆる種類の活動にとって非常に重要です。リリース 15.1 から VOS は Network Time Protocol デーモン (ntpd) のポートを持って出荷されており、それを実行することを強くお勧めします。
通常、ntpdを実行するには、ネットワーク上のホストでntpdを実行しているタイムサーバのリストを提供する必要があり、リクエストがあればどのホストにも時刻を提供します。インターネット上には数多くのタイムサーバがあり、利用することができます。http://www.pool.ntp.org/en/ を参照してください。
ntpdはサーバの応答を比較することで、どのサーバを使用するのが最適かを判断しようとします。2つのサーバのみをリストアップした場合、ntpdが判断できずにどちらも使用しないことになる可能性があります。
しかし、会社のポリシーでインターネット上のタイムサーバーにアクセスできず、会社指定のタイムサーバーもない場合はどうすればいいのでしょうか?その場合、ローカルのMicrosoftWindows ドメインコントローラー(DC)やバックアップドメインコントローラー(BDC)を利用することができるかもしれない。ほとんどのDCとBDCは、タイムサービスを提供します。
だから、VOSの管理者としてどのようにローカルDCまたはBDCを見つけることができますか?最も簡単な方法は、尋ねることですが、それはあなたがパケットモニタを実行して自分で探すことができますオプションではないと仮定しています。ワークステーションとドメインコントローラの両方がUDPポート138で定期的にブロードキャストします。
コマンド
システム >system>stcp>command_library>packet_monitor -interface #INTERFACE -numeric
-time_stamp -verbose -pkt_hdr -hex_header -hex_dump -length 1500 -filter -port 138
|
図 1 - packet_monitor コマンド |
はこれらのブロードキャストを表示します(必ずINTERFACEをIPインターフェースの名前に置き換えてください)。不幸なことに、タイムサーバを見つけるためにはパケットの16進数データを見る必要がありますし、おそらくたくさんのパケットが通過するので、パケットをファイルにダンプする必要があります。私の pm.cm, コマンドマクロ (このマクロはここにあります) は自動的に out ファイルを作成し、スタートプロセスとしてトレースを実行します。out ファイルの名前は pm.(date).....(time).out です。コマンドは次のようになります
pm #INTERFACE -no_arp -no_icmp -port 138 |
図 2 - pm コマンドマクロ |
トレースを開始するにしても、15分から20分ほど走らせれば、ネットワーク上の各DCとBDCからブロードキャストを得ることができるはずです。次に、文字列 'c0 3' と 'c0 2' を含む行を探してください。この数字はオフセット c0 のバイトの上位ニブルに対応しています。そのバイトは次のようにデコードされます。
エービーシーディーエフエフジーエイチ ^^^^ ^^^^ ||||||--ホストはワークステーション ||||||...ホストはサーバー |||| ホストがSQLサーバーではありません。 |||| ホストはドメインコントローラではありません。 ||||------- ホストはバックアップドメインコントローラです。 |||-------- ホストはタイムサーバーです。 ||--------- host は Apple のホストではありません。 |---------- ホストはノベルホストではありません。 |
図3 - サーバー型バイトデコード |
このように、最初の3つか2つを検索すると、すべてのタイムサーバーを取得することはできませんが、小説やアップルの独占サイトを運営していない限り、少なくとも1つのDCかBDCを取得する必要があります。
d pm.11-02-06.17:25:06.out -match 'c0 2'
ready 17:47:13
d pm.11-02-06.17:25:06.out -match 'c0 3'
%phx_vos#m15_mas>SysAdmin>Noah_Davids>pm.11-02-06.17:25:06.out 11-02-06 17:47
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
ready 17:47:29
|
図 4 - タイムサーバとバックアップドメインコントローラに一致する packet_monitor ライン |
c0"の行を見つけるだけでは十分ではありません。パケットを送ったホストのアドレスも見つける必要があります。システム >system>gnu_library>bin ディレクトリにある grep コマンドは、複数の行にマッチします。
grep -e 'c0 3' -e 'c0 2' -e UDP pm.11-02-06.17:25:06.out
. . . .
UDP from 192.168.33.180.138 to 192.168.33.255.138 Cksum 7ca3, 220 data bytes.
UDP from 192.168.33.249.138 to 192.168.33.255.138 Cksum c89a, 209 data bytes.
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
. . . .
UDP from 192.168.33.50.138 to 192.168.33.255.138 Cksum 9526, 193 data bytes.
UDP from 192.168.33.248.138 to 192.168.33.255.138 Cksum d05f, 209 data bytes.
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
. . . .
UDP from 192.168.33.202.138 to 192.168.33.255.138 Cksum cf35, 219 data bytes.
UDP from 192.168.33.253.138 to 192.168.33.255.138 Cksum 9505, 209 data bytes.
c0 33 10 82 0 f 1 55 aa 0 3 <<U*
. . . .
UDP from 192.168.33.131.138 to 192.168.33.255.138 Cksum aa35, 222 data bytes.
UDP from 192.168.33.252.138 to 192.168.33.255.138 Cksum 7343, 209 data bytes.
c0 33 10 84 0 f 1 55 aa 0 3 <<U*
. . . . .
|
図 5 - 発見されたタイムサーバを示す packet_monitor ライン |
タイムサーバのアドレスは、"c0"行のすぐ上の行に表示されます。上の図では、192.168.33.249、192.168.33.248、192.168.33.253、192.168.33.252を確認しています。
さて、タイムサーバと名乗るホストを特定したところで、それらが動作するかどうかを確認するにはどうしたらよいでしょうか?ntpdateコマンドを使って、各タイムサーバに手動で問い合わせを行うことができます。この時点では、ntpdateにモジュールの時刻を設定させたくないので、"-q"引数を使ってタイムサーバのみを照会してください。
ntpdate -q 192.168.33.248
ホスト 192.168.33.248 とサービス ntp を探しています。
発見されたホスト : dc48.noahslab.stratus.com
server 192.168.33.248, stratum 4, offset -0.117118, delay 0.04202
2月6日 17:53:10 ntpdate[1427079382]: adjust time server 192.168.33.248 offset -0
+0.117418秒
用意ができました 17:53:10
ntpdate -q 192.168.33.249
ホスト 192.168.33.249 とサービス ntp を探しています。
発見されたホスト : dc49.noahslab.stratus.com
server 192.168.33.249, stratum 4, offset -0.038709, delay 0.04355
2月6日 17:53:25 ntpdate[1427079382]: adjust time server 192.168.33.249 offset -0
+0.038709秒
用意ができました 17:53:25
ntpdate -q 192.168.33.252
ホスト 192.168.33.252 とサービス ntp を探しています。
発見されたホスト : dc52.noahslab.stratus.com
server 192.168.33.252, stratum 3, offset 0.015733, delay 0.04216
2月6日 17:53:38 ntpdate[1427079382]: adjust time server 192.168.33.252 offset 0.
+015733秒
用意ができました 17:53:38
|
図6 - ntpdateを使用して検出されたタイムサーバのテスト - 作業サーバ |
あるサーバがファイアウォールポリシーにより、時間を通知しないように設定されている場合、ntpdateは以下のように表示されます。
ntpdate -q 192.168.33.254
ホスト 192.168.33.254 とサービス ntp を探しています。
発見されたホスト : dc54.noahslab.stratus.com
サーバー 192.168.33.254. ストラタム 0, オフセット 0.000000, ディレイ 0.00000
2月6日 17:54:00 ntpdate[1427079382]. 同期に適したサーバーがない
+d
準備完了 17:54:00
|
図7 - ntpdateを使用して検出されたタイムサーバのテスト - 非稼動サーバ |
これで、どのタイムサーバが使えるかわかったので、>system>ntp>ntp.confファイルを以下のように書きます。黒字の部分はすべてsample_ntp.conf.17.0ファイルのもので、新しい文字は 青々.server foo.bar.something.com" 行の前に追加されたコメント文字に注意してください。restrict 文は、他のホストが ntp デーモンに対して時間外の問い合わせをするのを防ぐことで、 システムのセキュリティ位置を向上させます。
# サーバのディレクティブは どこから時刻を取得するかを示します。
# ディレクティブごとにDNSやIPの値を指定することができます。
# サーバ foo.bar.somewhere.com
サーバ 192.168.33.248 バースト iburst
サーバ 192.168.33.249 バースト iburst
サーバ 192.168.33.252 バースト iburst
# logileのホーム. 良い相対パスを選ぶ - VOSのアブソリュート
# パス名が正しく解析できません。
logfile >system>ntp>ntp.logfile
# driftfileのホーム。
driftfile >system>ntp>ntp.drift
# これらのステートメントは、ローカルホスト以外のホストからの時間外の問い合わせを防止します。
デフォルトノークエリーを制限する
制限する 127.0.0.0.1
|
図 8 - 更新された >system>ntp>ntp.conf ファイル |
ntpdコマンドを起動すると(>system>ntpディレクトリにsample_start_ntpd.17.0があります)、数分後に以下のような画面が表示されるはずです。192.168.33.252の前にある"*"は、ntpdが時間をかけることを選択したサーバであることを示しています。192.168.33.248の前にある「+」は、192.168.33.252からの応答がない場合に適したサーバであることを示しています。列1の"*"のような行がある限り、モジュールの時刻がタイムサーバーと同期されることを知っています。しかし、モジュールとタイムサーバの間の初期差が大きい場合、時間が収束するのに時間がかかることを覚えておいてください。
エヌティーピーキュー
ntpq> ピア
リモートリファード時にポーリングリーチ遅延オフセットジッタ
==============================================================================
+192.168.33.248 192.168.33.252 4 u - 1024 377 1.312 -1549.3 639.489
192.168.33.249 192.168.33.252 4 u 626 1024 377 132.423 15.202 27.797
*192.168.33.252 192.168.33.51 3 u 802 1024 377 0.964 -27.486 2.993
|
図9 - ntpqを使用した時刻同期の確認 |
最後に、ntpdはクライアントとサーバの両方の役割を果たすので、一度VOSモジュール上で動作させれば、他のモジュールやネットワーク上の他のモジュールのタイムサーバとして動作させることができます。