2007年11月5日 星期一

NTP Server



國家時間與頻率標準實驗室接受經濟部標準檢驗局委託,
負責維持頻率及時刻之國家標準,並推廣標準時頻之應用。
目前與國際度量衡局(BIPM)下46個國家時頻實驗室共同維持 "世界協調時"(UTC)。

以上內容截取於 國家時間與頻率標準實驗室 .



像我們公司有二三台 Database Server , 另外還有 HTTP , Mail , FTP 等 Server ,
還有一堆的使用者電腦 , 這麼多台電腦若是每台電腦的時間都不同 , 有時是會有些困擾的 ,
尤其是 Database Server 的時間若是不對 , 那依時間點存取資料就會有問題 .
這時可以用網路校時的方法 , 把每台電腦的時間同步 , 就没問題了 .
國家時間與頻率標準實驗室 就有提供 NTP Server(時間伺服器) 來服務大眾 .


但若是公司內每台電腦都連向國家級的 Time Server 來校時 , 那這 Server 的 loading 會很重 ,
且公司內每一台電腦都往 Internet 去校時 , 似呼也滿浪費頻寬的 .
其實我們也可以自己架設一台 NTP Server , 讓這台 Server 向外校時 ,
而其它台電腦就直接向這台 Server 校時就可以了 .




Fedora Linux Core 6 內建就有 NTP(Network Time Protocol) 的 rpm 套件了 .
其它的 Linux Distribution 就請自行找找了 .
其主要設定檔為 /etc/ntp.conf

來看看其內容 :


就只有七行而已 , 其它的都是說明 .


其中 :
restrict  開頭是權限設定的參數 ,
        第一行就設定了預設權限 , 把 Client 的訪問全拒絕了 .
        第二行才允許了本機迴路來詢問 .(127.0.0.1 後面沒有參數表示不設限)
        第三行又允許了 192.168.10.0 整個網段的 Client 可以來校時 , 但不能修改主機參數 .
server 開頭的就是指向上層 NTP server , 這台 Server 要向哪台 NTP Server 校時 .
fudge 開頭的那行是要改變 NTP server 的參數 .
driftfile 是指定本地時間與上層主機時間差的記錄檔 .
keys 後面跟著的是存放 keys 資訊的檔案 .(Client 向 Server 連結的時候 , 可用 key 認證)
( 這裡不討論 key 的使用 ,
有興趣者可參考 國立高雄第一科技大學 林燈利同學的碩士論文 RSA公鑰系統在TSA及NTP上的應用)



基本上 , 我們只要把第三行的 192.168.10.0 及其 netmask 改成自己公司的內部網段 ,
就可以啟動 NTP Server 來服務其它電腦了 .
執行
service  ntpd  start
來啟動 NTP 服務 .



好了 , 其它電腦都可以來這台 NTP Server 校時了 .


NTP Client for Linux
NTP Client for Windows


大家都來跟這台 NTP Server 校時 , 大家的時間都跟這台 NTP Server 的時間一樣 ,
但若是這台 NTP Server 的時間是錯的 , 大家就跟著一起錯 ...................
( 至少大家錯的都一樣啊 ! ............... >_<||| ..... )


因為預設的 ntp.conf 檔內指向的 NTP Server 是 127.127.1.0 ,
這裏是指本機的意思 , 也就是說它自己就是最上層的 NTP Server 了 ,
若是你所在的網路沒有 Internet 線路 , 但你又必須要把兩台以上電腦的時間同步 ,
你就可以使用這預設的設定 .


如果有 Internet 線路 , 要求的時間又一定要 "國家標準時間" .
那就必須要修改 ntp.conf 內的設定值 , 在 ntp.conf 檔加上下面幾行 :


server  tick.stdtime.gov.tw  prefer
server  tock.stdtime.gov.tw  prefer
server  time.stdtime.gov.tw  prefer
server  clock.stdtime.gov.tw
server  watch.stdtime.gov.tw



這五台 NTP Server 是由 "國家時間與頻率標準實驗室" 所提供 ,
其中前三台 Server 的最後面多了 prefer 這個參數 , 是指 "優先" 的意思 ,


改完後 , 直接啟動或重新啟動就可以用了.


service  ntpd  start
or
service ntpd  restart





它都秀 "OK" , 是指它啟動沒問題 , 但不表示它有連到上層 NTP Server ,
可用 ntpstat 指令了解它往上層校時的狀況 .



unsynchronised 就表示它還沒有連到上層去校時 .
再過一回兒 .................................................. (long time).............. >_<|||


再執行一次 ntpstat 看看 .




看到 synchronised 就表示它有跟上層 Server 溝通過了哦 !
time correct to within 949 ms 是說有校正時間 949 個 ms 單位 .
polling server every 64 s 是說每 64 秒會去校時一次 .


然後我們就可以讓其它台電腦(ntp client)上來校時了 .


NTP Client for Linux
NTP Client for Windows










相關資料 :
國家時間與頻率標準實驗室
世界協調時
國家標準時間
時間伺服器
台灣大學網路時間協定伺服器(Network Time Protocol Server)說明
鳥哥的 Linux 私房菜 -- NTP 時間伺服器
國立高雄第一科技大學 -- RSA公鑰系統在TSA及NTP上的應用












沒有留言: