每一個 ntp server 都會說明他的時間的 "源頭".
源頭可以是 GPS, 原子鐘等硬體。
也可以是另一台 ntp server.
根據時間的取得來源,代表ntp server 的時間是第一手(直接的硬體 GPS, 原子中..),
或是第二手 (令一個 ntp server).
ntp server 有一個參數叫 stratum
stratum = 1 就是第一手。
2 就是第二手。
在 ntp.conf 裡。
要設定 時間的 "源頭"..
一般都是設定 "上一手" 的 ntp server.
所以就是用 server 列出:
server 0.debian.pool.ntp.org iburst server 1.debian.pool.ntp.org iburst server 2.debian.pool.ntp.org iburst server 3.debian.pool.ntp.org iburst這個範例列出他的上游 ntp server 有四個。
ntp daemon 會自動找出最適合的 server 來同步。
另外,如果要使用自己的hw clock, 就要用:
server 127.127.1.0說明跟自己拿時間。
又因為這樣就沒有說明是第幾手,所以要加令一個command:
fudge 127.127.1.0 stratum 10說明自己hw color 是第 10 手。
ntp daemon 基本上會去一一詢問這些 server, 然後決定使用那一個 server 的資料。
同時詢問 server 的 stratum (第幾手) number.
好決定自己的 stratum number.
像上游stratum 是 2, 自己就是 3.
ntp.conf 設好以後, service ntp restart 就可以重新啟動 ntp server
ntp server package 提供一個 tool 來看 ntp server 資料。
$ ntpq -pn remote refid st t when poll reach delay offset jitter ============================================================================== 91.189.89.199 .STEP. 16 u - 1024 0 0.000 0.000 0.000 *192.168.144.248 59.124.29.241 3 u 16 64 377 0.115 48.283 12.243 127.127.1.0 .LOCL. 10 l 4 64 377 0.000 0.000 0.001
-p 是 peer -n 是 show ip address.
可以看到 remote 列出在 ntp.conf 中 server 的列表。
refid 是他的上游 ntp server.
所以 .LOCAL. 就是自己的 hw clock.
.STEP 好像是 sync fail
st 是 stratum ,可以看到 sync fail 的, stratum 是 16
第二個 server 前面有一個 * 符號。
代表 ntp server 決定使用這一個 server 的資料。-- (所以自己的 stratum 就是 4)
當 ntp service 剛剛啟動,* 不會出現,大約需要 5 ~ 10 min 才會決定。
當有 * 出現時, ntp server 才會正常回應 ntp client 的 要求。
測試
可以用 ntpdate 來測試。
$ ntpdate -q 127.0.0.1 server 127.0.0.1, stratum 4, offset -0.000003, delay 0.02562 19 May 17:45:59 ntpdate[4599]: adjust time server 127.0.0.1 offset -0.000003 sec問自己..
要是出問題,可以用 -dv 列出debug information
ref:
- http://markelov.org/wiki/index.php/NTP._Server_dropped:_strata_too_high
- http://docs.oracle.com/cd/E26996_01/E18548/html/manager_ntpconfig.html
- http://en.linuxreviews.org/NTP_-_Howto_make_the_clock_show_the_correct_time
- http://www.geego.com.tw/technical-discussion-forum/tech-tips-centos-ntp-server-%E6%9E%B6%E8%A8%AD%E5%BF%83%E5%BE%97
client
client 只要安裝 ntpdate .
他同時會修改 /etc/network/if-up.d/ntpdate
這樣在network up 時,會自動執行 ntpdate 更改時間。
沒有留言:
張貼留言