NTPネットワーク時間プロトコルでITシステムを同期
6102 ワード
NTPプロトコル全称ネットワーク時間プロトコル(Network Time Procotol).その目的は、国際インターネット上で統一的で標準的な時間を伝えることです.具体的な実装形態は、ネットワーク上でいくつかのクロックソースウェブサイトを指定し、ユーザに時間付与サービスを提供し、これらのウェブサイト間で互いに比較し、精度を向上させるべきである.
NTPはアメリカのDelaware大学のMills教授によって最初に設計され、1982件の最初の提出から現在まで20年近く発展し、2001年に最新のNTPv 4の精度は200ミリ秒に達した.実際の応用には,秒レベルの精度を確保するSNTP(簡単なネットワーク時間プロトコル)もある.
NTPは広域ネットワークまたはローカルエリアネットワークにまたがる複雑な同期時間プロトコルであり、通常ミリ秒レベルの精度を得ることができる.RFC 2030[Mills 1996]は、NTPのサブセットである完全なNTP実装の複雑さを必要としないホストのためのSNTP(Simple Network Time Protocol)を記述する.通常、ローカルエリアネットワーク上の複数のホストは、インターネットを介して他のNTPホストとクロックを同期させ、その後、ローカルエリアネットワーク内の他のクライアントに時間同期サービスを提供する.
NTPプロトコルは、OSIリファレンスモデルの上位プロトコルであり、UDPトランスポートプロトコルフォーマットに適合し、専用ポート123を有する.
時間が経つにつれて、コンピュータの時計はドリフトする傾向があります.ネットワークタイムプロトコル(NTP)は、クロックを正確に保つ方法です.ルータ、スイッチ、ワークステーション、サーバ間の時間同期メカニズムを提供します.したがって、NTPサーバは、時間同期が必要なITシステム環境によく適用されます.
一、サービス側の設定
Mac OS X Serverはデフォルトであるようで、Linuxの下でどのように設定するかだけを話します.
Ubuntu LinuxでのNTP Serverの適用は非常に便利です.
1.インストール
2.構成
プロファイルは/etc/ntpです.conf
a.serverの1つを見つけて、あなたの好きなTime Serverを追加します
b.権限を設定し、私のすべてのrestrictエントリは以下の通りです.
3.ntpサーバの再起動
/etc/init.d/ntp restart
4.サーバーが正常に動作しているかどうかを確認する
サーバで実行
二、ワークステーションの同期
では、テストしてみましょう.新しいサーバのIPアドレスが192.168.0.7だとします.クライアントで次のコマンドを実行します.
ntpdate -u 192.168.0.7
同期が成功すると、次のように表示されます.
6 Mar 15:44:24 ntpdate[9921]: adjust time server 192.168.0.7 offset -0.007277 sec
三、スイッチの同期
Cisco IOS
Dell 6248
四、いくつかの一般的なタイムサーバー
210.72.145.44——(国家時間割センターサーバーIPアドレス)
133.100.11.8——日本福岡大学
time-a.nist.gov 129.6.15.28 ── NIST, Gaithersburg, Maryland
time-b.nist.gov 129.6.15.29 ── NIST, Gaithersburg, Maryland
time-a.timefreq.bldrdoc.gov 132.163.4.101 ── NIST, Boulder, Colorado
time-b.timefreq.bldrdoc.gov 132.163.4.102 ── NIST, Boulder, Colorado
time-c.timefreq.bldrdoc.gov 132.163.4.103 ── NIST, Boulder, Colorado
utcnist.colorado.edu 128.138.140.44 ── University of Colorado, Boulder
time.nist.gov 192.43.244.18 ── NCAR, Boulder, Colorado
time-nw.nist.gov 131.107.1.10 ── Microsoft, Redmond, Washington
nist1.symmetricom.com 69.25.96.13 ── Symmetricom, San Jose, California
nist1-dc.glassey.com 216.200.93.8 ── Abovenet, Virginia
nist1-ny.glassey.com 208.184.49.9 ── Abovenet, New York City
nist1-sj.glassey.com 207.126.98.204 ── Abovenet, San Jose, California
nist1.aol-ca.truetime.com 207.200.81.113 ── TrueTime, AOL facility, Sunnyvale, California
nist1.aol-va.truetime.com 64.236.96.53 ── TrueTime, AOL facility, Virginia
五、Pythonスクリプトを使って時間を取得する
上のスクリプトはここにあります.http://www.nightsong.com/phr/python/setclock.py.使用方法は次のとおりです.
$ python setclock.py
Response received from ('17.151.16.23', 123)
Current time = Fri Mar 6 16:03:19 2009
NTPはアメリカのDelaware大学のMills教授によって最初に設計され、1982件の最初の提出から現在まで20年近く発展し、2001年に最新のNTPv 4の精度は200ミリ秒に達した.実際の応用には,秒レベルの精度を確保するSNTP(簡単なネットワーク時間プロトコル)もある.
NTPは広域ネットワークまたはローカルエリアネットワークにまたがる複雑な同期時間プロトコルであり、通常ミリ秒レベルの精度を得ることができる.RFC 2030[Mills 1996]は、NTPのサブセットである完全なNTP実装の複雑さを必要としないホストのためのSNTP(Simple Network Time Protocol)を記述する.通常、ローカルエリアネットワーク上の複数のホストは、インターネットを介して他のNTPホストとクロックを同期させ、その後、ローカルエリアネットワーク内の他のクライアントに時間同期サービスを提供する.
NTPプロトコルは、OSIリファレンスモデルの上位プロトコルであり、UDPトランスポートプロトコルフォーマットに適合し、専用ポート123を有する.
時間が経つにつれて、コンピュータの時計はドリフトする傾向があります.ネットワークタイムプロトコル(NTP)は、クロックを正確に保つ方法です.ルータ、スイッチ、ワークステーション、サーバ間の時間同期メカニズムを提供します.したがって、NTPサーバは、時間同期が必要なITシステム環境によく適用されます.
一、サービス側の設定
Mac OS X Serverはデフォルトであるようで、Linuxの下でどのように設定するかだけを話します.
Ubuntu LinuxでのNTP Serverの適用は非常に便利です.
1.インストール
sudo apt-get install ntp
2.構成
プロファイルは/etc/ntpです.conf
a.serverの1つを見つけて、あなたの好きなTime Serverを追加します
server time.asia.apple.com iburst dynamic
b.権限を設定し、私のすべてのrestrictエントリは以下の通りです.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust
restrict 192.168.0.0 mask 255.255.255.0
3.ntpサーバの再起動
/etc/init.d/ntp restart
4.サーバーが正常に動作しているかどうかを確認する
サーバで実行
ntpq -p
二、ワークステーションの同期
では、テストしてみましょう.新しいサーバのIPアドレスが192.168.0.7だとします.クライアントで次のコマンドを実行します.
ntpdate -u 192.168.0.7
同期が成功すると、次のように表示されます.
6 Mar 15:44:24 ntpdate[9921]: adjust time server 192.168.0.7 offset -0.007277 sec
三、スイッチの同期
Cisco IOS
ciscorouter> enable
password: *********
ciscorouter# config t
ciscorouter(config)# ntp update-calendar
ciscorouter(config)# ntp server 192.168.0.4
ciscorouter(config)# ntp server 192.168.0.7
ciscorouter(config)# exit
ciscorouter# wr mem
Dell 6248
dell6248-corner>en
dell6248-corner#configure
dell6248-corner(config)#sntp server 192.168.0.7
dell6248-corner(config)#
四、いくつかの一般的なタイムサーバー
210.72.145.44——(国家時間割センターサーバーIPアドレス)
133.100.11.8——日本福岡大学
time-a.nist.gov 129.6.15.28 ── NIST, Gaithersburg, Maryland
time-b.nist.gov 129.6.15.29 ── NIST, Gaithersburg, Maryland
time-a.timefreq.bldrdoc.gov 132.163.4.101 ── NIST, Boulder, Colorado
time-b.timefreq.bldrdoc.gov 132.163.4.102 ── NIST, Boulder, Colorado
time-c.timefreq.bldrdoc.gov 132.163.4.103 ── NIST, Boulder, Colorado
utcnist.colorado.edu 128.138.140.44 ── University of Colorado, Boulder
time.nist.gov 192.43.244.18 ── NCAR, Boulder, Colorado
time-nw.nist.gov 131.107.1.10 ── Microsoft, Redmond, Washington
nist1.symmetricom.com 69.25.96.13 ── Symmetricom, San Jose, California
nist1-dc.glassey.com 216.200.93.8 ── Abovenet, Virginia
nist1-ny.glassey.com 208.184.49.9 ── Abovenet, New York City
nist1-sj.glassey.com 207.126.98.204 ── Abovenet, San Jose, California
nist1.aol-ca.truetime.com 207.200.81.113 ── TrueTime, AOL facility, Sunnyvale, California
nist1.aol-va.truetime.com 64.236.96.53 ── TrueTime, AOL facility, Virginia
五、Pythonスクリプトを使って時間を取得する
#!/usr/bin/python
from socket import *
import struct,os,time,sys
# Script to set Linux hardware clock (/usr/sbin/hwclock) from an NTP
# time server. Run as "setclock.py" to simply print the time from
# the NTP server. Run as "setclock.py --set" to set the Linux
# hardware clock (as the super user, of course).
# Based on Simon Foster's simple SNTP client from ASPN Python cookbook.
# Adapted by Paul Rubin; this script lives at:
# http://www.nightsong.com/phr/python/setclock.py
time_server = ('time.apple.com', 123)
# time.apple.com is a stratum 2 time server. (123 is the SNTP port number).
# More servers info can be found at
#
# http://www.eecis.udel.edu/~mills/ntp/servers.htm
#
# Note it's considered antisocial to use a stratum 1 server (like NIST)
# for purposes like this which don't need extreme accuracy (i.e. syncing
# your own big NTP network). See www.ntp.org for more info.
#
# You could also use time.windows.com (Microsoft server) which syncs
# all Windows XP machines everywhere, so it can presumably handle lots
# of clients.
# number of seconds between NTP epoch (1900) and Unix epoch (1970).
TIME1970 = 2208988800L # Thanks to F.Lundh
client = socket( AF_INET, SOCK_DGRAM )
data = '\x1b' + 47 * '\0'
client.sendto(data, time_server)
data, address = client.recvfrom( 1024 )
if data:
print 'Response received from', address,'
'
t = struct.unpack( '!12I', data )[10]
if t == 0:
raise 'invalid response'
ct = time.ctime(t - TIME1970)
print 'Current time = %s
' % ct
if len(sys.argv) > 1 and sys.argv[1] == "--set":
os.system("/usr/sbin/hwclock --set '--date=%s'"% ct)
else:
raise 'no data returned'
上のスクリプトはここにあります.http://www.nightsong.com/phr/python/setclock.py.使用方法は次のとおりです.
$ python setclock.py
Response received from ('17.151.16.23', 123)
Current time = Fri Mar 6 16:03:19 2009