1.實驗環境:Ubuntu11.10html
2.實驗類型:模擬局域網算法
3.NTP:Network Time Protocolubuntu
Network Time Protocol(NTP)是用來使計算機時間同步化的一種協議,它能夠使計算機對其服務器或時鐘源(如石英鐘,GPS等等)作同步化,它能夠提供高精準度的時間校訂(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。
NTP提供準確時間,首先要有準確的時間來源,這一時間應該是國際標準時間UTC。 NTP得到UTC的時間來源能夠是原子鐘、天文臺、衛星,也能夠從Internet上獲取。這樣就有了準確而可靠的時間源。時間按NTP服務器的等級傳播。按照離外部UTC 源的遠近將全部服務器納入不一樣的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15之內。全部這些服務器在邏輯上造成階梯式的架構相互鏈接,而Stratum-1的時間服務器是整個系統的基礎。計算機主機通常同多個時間服務器鏈接, 利用統計學的算法過濾來自不一樣服務器的時間,以選擇最佳的路徑和來源來校訂主機時間。即便主機在長時間沒法與某一時間服務器相聯繫的狀況下,NTP服務依然有效運轉。爲防止對時間服務器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的信息是不是真正來自所宣稱的服務器並檢查資料的返回路徑,以提供對抗干擾的保護機制。vim
4.NTP採用相似分級架構來處理時間的同步化,全部它使用的是相似通常的server/client的主從架構(NIS採用的是master/slave架構),NTP這個daemon是以123這個port爲鏈接端口(使用UDP數據包)。
5.NTP的工做過程:
首先,主機固然須要啓動這個daemon;
以後,client會向NTP server發送出校對時間的message;
而後NTP server會送出當前的標準時間給client;
client接收了來自server的時間後,會據以調整本身的時間,這樣就實現了網絡的校時。
6.所需的軟件:ntp
apt-get install ntp
7.配置文件:
/etc/ntp.conf ===>>主配置文件
/usr/share/zoneinfo/ ===>>由tzdata所提供,爲各時區的時間格式對應文件,example:我國的時區格式對應文件爲/usr/share/zoneinfo/Asia/Shanghai
/etc/default/rcS ===>>能夠設定當前時間是UTC仍是local(我沒有修改)
/etc/localtime ===>>本地使用的時區格式,若是要更改時區能夠將對應的時區格式從/usr/share/zoneinfo/複製到該目錄便可,須要配合
tzselect使用
8.經常使用的修改時間的命令:
/bin/date:用於Linux時間的修改與顯示的命令
/sbin/hwclock:用於BIOS時鐘的修改與顯示的命令
/usr/sbin/ntpd:主要提供NTP服務的程序,配置文件/etc/ntp.conf
/usr/sbin/ntpdate:用於客戶端的時間的校訂
9.主要配置文件的處理
vim /etc/ntp.conf
#利用restrict來管理權限控制
#格式:restrict [IP] [mask] [parameter]
[parameter]的參數:
ignore : 拒絕全部類型的NTP鏈接
nomodify : 客戶端不能使用ntpc與ntpq這兩個程序來修改服務器的時間參數,可是客戶端能夠經過這部主機進行校時
noquery : 不提供NTP網絡校時
notrap :不提供trap這個遠程事件的登陸
notrust : 拒絕沒有認證的客戶端
其餘:若是沒有parameter參數則表明「該IP或者網段不受任何限制」
#利用server設置上層NTP服務器
server [IP or hostname] [prefer]
prefer :優先選擇
#以driftfile記錄時間差別
driftfile [能夠被ntpd寫入的目錄與文件]
其餘: driftfile後面接完整的路徑文件名
該文件不能是鏈接文件
ntpd要有寫入該文件的權限
該文件所記錄的數值爲百萬分之一秒(ppm)
#keys[key_file]
經過密鑰系統認證客戶端的權限,跟ntp-keygen有關
10./etc/ntp.conf範例:
vim /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
server cn.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery #禁止IPV4用戶
restrict -4 default kod notrap nomodify nopeer noquery #禁止IPV6用戶
restrict 127.0.0.1
restrict ::1
restrict 192.168.2.0 mask 255.255.255.0 nomodify
/etc/init.d/ntp start
ntpq -p #查詢當前ntp鏈接狀態
11.客戶端的時間更新方式
date hwclock
ntpdate [-dv] [NTP/hostname]
其餘:
-d:進入排錯模式,顯示更多的有效信息
-v:顯示更詳細的信息
example:ntpdate cn.pool.ntp.org
date;hwclock -w
hwclock [-rw]
其餘:
-r:read
-w:write
vim /etc/crontab
0 7 * * * root (/usr/sbin/ntpdate cn.pool.ntp.org && /sbin/hwclock -w) &> /dev/null