NTP服務器搭建

上次說到如何調整Linux系統時間。項目中,我們常會遇到分析系統問題的時候需要查看系統日誌。此時,若是一個Cluster集羣或HA應用的話,會發現時間對於定位問題發生的先後和原因是非常重要的。所以,我們希望能有方法保證兩服務器時間一樣,最好可以做到是標準時間。這就是搭建NTP服務器意義!
一、原理
 NTP是用來使系統和一個精確的時間源保持時間同步的協議。建議大家在自己管理的網絡中建立至少一臺時間服務器來同步本地時間,這樣可以使得在不同的系統上處理和收集日誌和管理更加容易,而且不會出錯。
 官方網站是:http://www.ntp.org/
 從上面我們可以獲得Linux下的源代碼,以及互聯網上的公開的NTP服務器,其地址列表如下:
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
http://ntp.isc.org/bin/view/Servers/WebHome
 NTP協議是通過Server和Client的方式進行的,通訊的過程是:
1.首先,主機需要啓動這個NTP服務
2.Client 會向 NTP Server 發送出調校時間的 message
3.然後 NTP Server 會送出目前的標準時間給 Client
4.Client 接收了來自 Server 的時間後,會據以調整自己的時間,以實現網絡校時。
 雖然網絡上有很多公開的NTP服務器,但在使用的時候需要注意。由於網絡傳輸是有延時的,當Client對一個延時比較厲害的服務器發送請求後,直到最後Client獲得時間,期間可能會出現一個由於網絡延時導致的的時間差。所以,建議大家選擇離自己最近的NTP服務器作爲校驗的標準。
☆系統環境:紅旗DC Server 5.0 for x86
二、配置
 安裝我就不說了,紅旗DC Server服務器在最大化安裝的時候就已經安裝有NTP的服務端和客戶端套件。下面我們就只講如何配置NTP服務端,以及客戶端如何做時間同步。
◎規劃
 很多時候,作爲提供數據應用的服務器都不能直接聯通互聯網。此時,我們就需要在局域網內部署一臺專用於時間同步的機器(通常是網管機),這樣,服務器通過局域網對網管機進行時間同步即可。當然,如果你只要保證多臺服務器之間的時間一致,那可以更簡單,只要其中一臺服務器爲基準,然後其他服務器對它做同步,那是最簡單的。
1、配置服務端
 NTP服務端的配置比較簡單,只有一個配置文件:/etc/ntp.conf。而且文件中已經有很多例子可以參考,描述一下:
→語法1:
 

引用
restrict IP mask 掩碼 參數
IP是允許或不允許訪問的地址,配合掩碼可以對一段網段使用;
參數包括:
ignore:關閉所有NTP聯網服務
nomodify:客戶端不能修改服務端的時間,但可以作爲客戶端的校正服務器
notrust:除通過認證外,否則指定的網段爲不信任網段
noquery:不提供時間查詢


(若不設置參數,表示對該IP或網段沒有任何限制)
 而配置文件中有幾個是默認設置好的,包括:
 

引用
restrict default nomodify notrap noquery
#default就是0.0.0.0,也就是關閉所有
restrict 127.0.0.1
#這是允許本級查詢


→語法2:
 

引用
server [IP|FQDN] [prefer]
IP|FQDN就是給出作爲你服務端同步的基準NTP服務器
prefer是用於指定主次服務器的,有標識的就是主要服務器咯


而配置文件默認的包括了:
 

引用
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org


這些都是比較公開的、常用的NTP服務器,也可以改爲你指定的服務器,如:
 

引用
server cn.pool.ntp.org prefer


→其他:
 

引用
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008


要注意的就是driftfile定義,driftfile 規定我們的主機在與Time Server溝通時所花費的時間,時間記錄在 driftfile 後面接的文件內
→添加:
這裏就添加上允許訪問這臺服務器的IP或網段,在配置文件上增加:
 

引用
restrict 192.168.228.0 mask 255.255.255.0 nomodify


這樣,在192.168.228.0/24網段內的服務器就可以通過這臺NTP Server進行時間同步了!
※留意:
爲了方便配置,這裏是已經配置好的文件,可以下載使用:點擊
2、啓動NTP服務端
 在啓動NTP服務前,先對提供服務的這臺主機手動的校正一次時間咯。(因爲啓動服務器,端口會被服務端佔用,就不能手動同步時間了)
 

# ntpdate cn.pool.ntp.org
25 Apr 14:33:51 ntpdate[8310]: step time server 80.85.129.2 offset 6.655976 sec


 然後,啓動ntpd服務:
 

# service ntpd start


 查看端口:
 

# netstat -ln|grep 123
udp        0      0 192.168.228.153:123         0.0.0.0:*    
udp        0      0 127.0.0.1:123               0.0.0.0:*            
udp        0      0 0.0.0.0:123                 0.0.0.0:*            
udp        0      0 :::123                      :::*  


3、設置客戶端
 NTP的客戶端可以是Linux,也可以是通過軟件在Windows上實現。
Linux客戶端
 同步的方法非常簡單,運行一個命令即可:
# ntpdate 192.168.228.153
 當然,這只是修改系統時間,你需要用hwclock -w把系統時間寫入硬件時間中。也可以用計劃任務做定時更新:
# crontab -e
0 0 * * * /usr/sbin/ntpdate 192.168.228.153;/sbin/hwclock -w;
Windows XP professional客戶端
可以用下面的命令進行:
 

NET TIME /SETSNTP:192.168.228.153
NET TIME /QUERYSNTP
NET START w32time


第一行是配置同步的服務器,第二行是察看設置結果,第三行是啓動“Windows Time”服務。Windows Time服務默認是自動啓動的,並會定時
同步指定的服務器。
若系統是Home版等,可以通過日期/時間屬性裏面的Internet同步服務器,指定服務器地址爲192.168.228.153即可。
三、可能出現的問題
 雖然NTP服務的配置非常的簡單,但總是可能出現問題的,可以從下面幾方面入手:
1、相關命令
 

# ntptrace 服務器IP
可以最終NTP服務器的通訊路徑
# ntpq -p
檢查時間服務器同步的狀態


2、檢查配置文件
 保證配置文件中沒有使用ignore參數,如沒有restrict default ignore等。
3、檢查防火牆配置
 由於NTP服務是使用UDP 123端口的,有防火牆的話,需要打開該端口。
4、常見錯誤
 

引用
25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found


 其實,這不是一個錯誤。而是由於每次重啓NTP服務器之後大約要3-5分鐘客戶端才能與server建立正常的通訊連接。當此時用客戶端連接服務端就會報這樣的信息。一般等待幾分鐘就可以了!若之後還有問題,則纔是真正有故障咯!

相關日誌
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章