Sharing

2012年2月6日 星期一

NTP 設定筆記

http://linux.vbird.org/linux_server/0440ntp.php

台灣常見的 NTP Server List:


  • tick.stdtime.gov.tw
  • tock.stdtime.gov.tw
  • time.stdtime.gov.tw
  • clock.stdtime.gov.tw
  • watch.stdtime.gov.tw

NTP 是使用 port 123 為連結的埠口

NTP 有階層的概念, 以用來分散流量, 以及決定時間的準確性

主要時間伺服器: http://support.ntp.org/bin/view/Servers/StratumOneTimeServers
次要時間伺服器: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers

Configuration

restrict [你的IP] mask [netmask_IP] [parameter]


其中 parameter 的參數主要有底下這些:

http://linux.die.net/man/5/ntp.conf
http://linux.die.net/man/5/ntp_acc

http://support.ntp.org/bin/view/Support/AccessRestrictions

ignore -- 拒絕所有類型的 NTP 連線;
nomodify -- 用戶端不能使用 ntpdc 與 ntpq 這兩支程式來修改伺服器的時間參數, 但用戶端仍可透過這部主機來進行網路校時的;
noquery -- 用戶端不能夠使用 ntpq, ntpdc 等指令來查詢時間伺服器,等於不提供 NTP 的網路校時囉;

不太確定鳥哥是筆誤還是年代的關係, 我看官網其實指的是 ntpdc 和 ntpq, 而不是 ntpd, 我還順便找了一下 man page 來看

http://linux.die.net/man/8/ntpdc
http://linux.die.net/man/8/ntpq

pjack@ubuntu:~$ ntpdc -p
     remote           local      st poll reach  delay   offset    disp
=======================================================================
=europium.canoni 192.168.0.3      2   64    3 0.30498  0.007932 1.98438
=211.79.171.150  192.168.0.3      3   64    3 0.05931  0.040888 1.98438
=220-133-13-3.HI 192.168.0.3      2   64    3 0.02657  0.004869 1.98438
=59-124-196-84.H 192.168.0.3      2   64    3 0.02979  0.008247 1.98438
=tock.stdtime.go 192.168.0.3      2   64    3 0.01994  0.017888 1.98438

pjack@ubuntu:~$ ntpdc -l
client    europium.canonical.com
client    211.79.171.150
client    220-133-13-3.HINET-IP.hinet.net
client    59-124-196-84.HINET-IP.hinet.net
client    tock.stdtime.gov.tw

pjack@ubuntu:~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 59-124-196-83.H 59.124.196.87    2 u   16   64    7   30.366    4.155   2.271
 220-133-13-3.HI 192.43.244.18    2 u   14   64    7   26.719    2.564   2.793
 tock.stdtime.go 59.124.196.87    2 u   13   64    7   17.852    6.259   1.371
 59-124-196-84.H 59.124.196.87    2 u   14   64    7   58.868  -17.627  10.498
 europium.canoni 193.79.237.14    2 u   11   64    7  302.951   -2.471   2.228

pjack@ubuntu:~$ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 59.124.196.83   59.124.196.87    2 u   37   64    3   30.188    2.385   0.910
 220.133.13.3    192.43.244.18    2 u   36   64    3   26.420    0.641   1.528
 220.130.158.71  59.124.196.87    2 u   34   64    3   21.191    6.301   1.981
 59.124.196.84   59.124.196.87    2 u   35   64    3   72.039  -25.230  20.354
 91.189.94.4     193.79.237.14    2 u   33   64    3  302.555   -3.432   2.041


pjack@ubuntu:~$ more /etc/ntp.conf

# Specify one or more NTP servers.

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com

# 加入要同步的 ntp server

# 加入本機, 並且設定成第十層(最大是 15)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page < http://support.ntp.org/bin/view/Support/AccessRestrictions>

# 預設先把所有的東西都關起來, 也可以寫成 
# restrict default ignore
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# 放行在同一個區網的 clinet 但不能修改
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap

# 放行自己
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

pjack@ubuntu:~$ sudo netstat -tlunp | grep ntp
[sudo] password for pjack:
udp        0      0 192.168.0.3:123         0.0.0.0:*                           1947/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1947/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1947/ntpd
udp6       0      0 ::1:123                 :::*                                1947/ntpd
udp6       0      0 fe80::20c:29ff:fe78:123 :::*                                1947/ntpd
udp6       0      0 :::123                  :::*                                1947/ntpd

pjack@ubuntu:~$ ntptime
ntp_gettime() returns code 0 (OK)
  time d2da6bc3.34d94000  Mon, Feb  6 2012  7:09:55.206, (.206440),
  maximum error 239875 us, estimated error 6508 us, TAI offset 0
ntp_adjtime() returns code 0 (OK)
  modes 0x0 (),
  offset 0.000 us, frequency 18.986 ppm, interval 1 s,
  maximum error 239875 us, estimated error 6508 us,
  status 0x1 (PLL),
  time constant 6, precision 1.000 us, tolerance 500 ppm,
pjack@ubuntu:~$ ntptrace
localhost: stratum 3, offset 0.000000, synch distance 0.017913
220.130.158.71: timed out, nothing received
***Request timed out



這個 ntpq -p 可以列出目前我們的 NTP 與相關的上層 NTP 的狀態,上頭的幾個欄位的意義為:

remote:亦即是 NTP 主機的 IP 或主機名稱囉~注意最左邊的符號
如果有『 * 』代表目前正在作用當中的上層 NTP
如果是『 + 』代表也有連上線,而且可作為下一個提供時間更新的候選者。
refid:參考的上一層 NTP 主機的位址
st:就是 stratum 階層囉!
when:幾秒鐘前曾經做過時間同步化更新的動作;
poll:下一次更新在幾秒鐘之後;
reach:已經向上層 NTP 伺服器要求更新的次數
delay:網路傳輸過程當中延遲的g時間,單位為 10^(-6) 秒
offset:時間補償的結果,單位與 10^(-3) 秒
jitter:Linux 系統時間與 BIOS 硬體時間的差異時間, 單位為 10^(-6) 秒。



pjack@ubuntu:~$ sudo service ntp stop
 * Stopping NTP server ntpd                                                                       pjack@ubuntu:~$ sudo ntpdate tick.stdtime.gov.tw
 6 Feb 07:28:08 ntpdate[2132]: adjust time server 59.124.196.83 offset -0.001831 sec



補充:
ntp org 的網址
http://www.ntp.org/
wiki 的網址, 裡面有演算法和層次
http://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_strata

英文版最清楚的設定教學

http://www.brennan.id.au/09-Network_Time_Protocol.html


英文版稍微進階一點

http://www.akadia.com/services/ntp_synchronize.html


沒有留言: