240 likes | 465 Views
15. 時間伺服器: NTP 伺服器. 什麼是時區?全球有多少時區? GMT 在那個時區 ? 因為地球是圓的,所以同一個時刻,在地球的一邊是白天,一邊是黑夜。而因為人類 使用 一天 24 小時的制度,所以,在地球對角的兩邊就應該差了 12 個小時才對。由於同一個 時間 點上面,整個地球表面的時間應該都不一樣,為了解決這個問題,所以可以想見的, 地球就 被分成 24 個時區了!
E N D
15 • 時間伺服器:NTP 伺服器
什麼是時區?全球有多少時區?GMT 在那個時區? • 因為地球是圓的,所以同一個時刻,在地球的一邊是白天,一邊是黑夜。而因為人類使用一天 24 小時的制度,所以,在地球對角的兩邊就應該差了 12 個小時才對。由於同一個時間點上面,整個地球表面的時間應該都不一樣,為了解決這個問題,所以可以想見的,地球就被分成 24 個時區了! • 那麼這 24 個時區是依據什麼來劃分的呢?由於地球被人類以『經緯度』座標來進行定位,而經度為零的地點在英國『格林威治』這個城市所在的縱剖面上,(註:所謂的縱剖面就是由南極切到北極的直線,而橫切面就是與赤道平行的切線),如下圖所示: • P.15-2 請參閱書籍
因為繞地球一圈是 360 度角,這 360 度角共分為 24 個時區,當然一個時區就是 15 度角啦!又由於是以格林威治時間為標準時間 (Greenwich Mean Time, GMT 時間),加上地球自轉的關係,因此,在格林威治以東的區域時間是比較快的(+小時),而以西的地方當然就是較慢囉! • P.15-2~3 請參閱書籍
NTP 通訊協定 • 軟體時鐘:由 Linux 作業系統根據 1970/01/01 開始計算的總秒數; • 硬體時鐘:主機硬體系統上面的時鐘,例如 BIOS 記錄的時間; • P.15-5 請參閱書籍
到底 NTP 這個 daemon 是如何讓 Server 與 Client 同步他們的時間呢? • 首先,主機當然需要啟動這個 daemon ,之後, • Client 會向 NTP Server 發送出調校時間的 message , • 然後 NTP Server 會送出目前的標準時間給 Client , • Client 接收了來自 Server 的時間後,會據以調整自己的時間,就達成了網路校時咯! • P.15-6 請參閱書籍
台灣常見的 Time Server 有 (註 3): • tick.stdtime.gov.tw • tock.stdtime.gov.tw • time.stdtime.gov.tw • clock.stdtime.gov.tw • watch.stdtime.gov.tw • 至於 ntp這個 daemon 是以 port 123 為連結的埠口 (使用 UDP 封包),所以我們要利用 Time server 來進行時間的同步更新時,就得要使用 NTP 軟體提供的 ntpdate來進行 port 123 的連線喔!關於網路校時更多的說明,可以到 NTP 的官方網站 (註 4) 上察看喔! • P.15-6 請參閱書籍
NTP 伺服器的安裝與設定 • 所需軟體與軟體結構 • ntp:就是 NTP 伺服器的主要軟體啦,包括設定檔以及執行檔等等。 • tzdata:軟體名稱為『 Time Zone data 』的縮寫,提供各時區對應的顯示格式。 • P.15-8 請參閱書籍
/etc/ntp.conf:就是 NTP 伺服器的主要設定檔,也是唯一的一個; • /usr/share/zoneinfo/:由 tzdata所提供,為各時區的時間格式對應檔。例如台灣地區的時區格式對應檔案在 /usr/share/zoneinfo/Asia/Taipei 就是了!這個目錄裡面的檔案與底下要談的兩個檔案 (clock 與 localtime) 是有關係的喔! • /etc/sysconfig/clock:設定時區與是否使用 UTC 時間鐘的設定檔。每次開機後 Linux 會自動的讀取這個檔案來設定自己系統所預設要顯示的時間說!舉個例子來說,在我 們 台 灣 地 區 的 本 地 時 間 設 定 中 , 這 個 檔 案 內 應 該 會 出 現 一 行『 ZONE=“Asia/Taipei” 』 的 字 樣 , 這 表 示 我 們 的 時 間 設 定 檔 案 『 要 取 用 /usr/share/zoneinfo/Asia/Taipei 那個檔案』的意思! • P.15-8 請參閱書籍
/etc/localtime:這個檔案就是『本地端的時間設定檔』啦!剛剛那個 clock 檔案裡面規定了使用的時間設定檔 (ZONE) 為 /usr/share/zoneinfo/Asia/Taipei ,所以說這就是本 地 端 的 時 間 了 , 此 時 Linux 系 統 就 會 將 Taipei 那 個 檔 案 複 製 一 份 成 為 /etc/localtime,所以未來我們的時間顯示就會以 Taipei 那個時間設定檔案為準。 • P.15-8 請參閱書籍
我的上層 NTP 伺服器共有 tock.stdtime.gov.tw, tick.stdtime.gov.tw, time.stdtime.gov.tw 三部,其中以 tock.stdtime.gov.tw 最優先使用 (prefer); • 不對 Internet 提供服務,僅允許來自內部網域 192.168.100.0/24 的查詢而已; • 偵測一些 BIOS 時鐘與 Linux 系統時間的差異並寫入 /var/lib/ntp/drift 檔案當中。 • P.15-9 請參閱書籍
利用 restrict 來管理權限控制 • 在 ntp.conf檔案內可以利用『 restrict 』來控管權限,這個參數的設定方式為: • 其中 parameter 的參數主要有底下這些: • ignore:拒絕所有類型的 NTP 連線; • nomodify:用戶端不能使用 ntpc與 ntpq這兩支程式來修改伺服器的時間參數,但用戶端仍可透過這部主機來進行網路校時的; • noquery:用戶端不能夠使用 ntpq, ntpc等指令來查詢時間伺服器,等於不提供 NTP 的網路校時囉; • notrap:不提供 trap 這個遠端事件登錄 (remote event logging) 的功能。 • notrust:拒絕沒有認證的用戶端。 • P.15-10 請參閱書籍
利用 server 設定上層 NTP 伺服器 • 上層 NTP 伺服器的設定方式為: • 以 driftfile記錄時間差異 • 設定的方式如下: • P.15-10 請參閱書籍
P.15-11 請參閱書籍
這樣就表示我們的 NTP 伺服器已經啟動了,不過要與上層 NTP 伺服器連線則還需要一些時間,通常啟動 NTP 後約在 15 分鐘內才會和上層 NTP 伺服器順利連接上。那要如何確認我們的 NTP 伺服器有順利的更新自己的時間呢?你可以使用底下幾個指令來查閱喔 (請自行等待數分鐘後再以下列指令查閱): • P.15-12 請參閱書籍
P.15-12 請參閱書籍
要讓你的 NTP Server/Client 真的能運作,在上述的動作中得注意: • 上述的 ntpstat以及 ntpq -p 的輸出結果中,你的 NTP 伺服器真的要能夠連結上層 NTP 才行喔!否則你的用戶端將無法對你的 NTP 伺服器進行同步更新的!重要重要! • 你的 NTP 伺服器時間不可與上層差異太多。舉例來說,鳥哥測試 NTP 伺服器約在 2011/7/28 下午,如果我的伺服器時間原本是錯誤的 2010/7/28,足足差了一年,那麼上層伺服器恐怕就不會將正確的時間傳給我!這時就會造成困擾了! • 伺服器防火牆在 UDP port 123 有沒有開啊?要特別注意的呢! • 等待的時間夠不夠長?鳥哥設定 NTP 等過最久的時間大約是一小時!你有等這麼久過否? • P.15-13 請參閱書籍
安全性設定 • P.15-14 請參閱書籍
用戶端的時間更新方式 • Linux 手動校時工作:date, hwclock • P.15-14~15 請參閱書籍
Linux 的網路校時 • P.15-15~16 請參閱書籍