NTP服務及時間同步(CentOS6.x)

今有一小型項目,徹底自主弄,原來覺得很簡單的NTP服務,我給折騰了2個多小時才整撐頭(之前都是運維搞,沒太注意,因此這技術的東西,在簡單都須要親嘗啊),這裏記錄爲之後別再浪費時間。php

  

   目標環境,5臺linux centos 6.3, 一臺做爲NTPD服務與外部公共NTP服務同步時間,同時做爲內網的NTPD服務器,其餘機器與這臺服務作時間同步。

html

 服務器IP 角色   說明 同步方式
 192.168.1.135   NTPD服務

 一、負責與外部公共NTPD服務同步標準時間linux

 二、做爲內外網絡的NTPD服務vim

NTPD服務平滑同步centos

 192.168.1.xxx  內外NTP客戶端  內網設備與192.168.1.135同步時間 NTPD服務平滑同步
 ……   內外NTP客戶端   內網設備與192.168.1.135同步時間 NTPD服務平滑同步

  

一、NTP時間同步方式選擇服務器

   NTP同步方式在linux下通常兩種:使用ntpdate命令直接同步和使用NTPD服務平滑同步。有什麼區別呢,簡單說下,省得時間長了,概念又模糊。網絡

   現有一臺設備,系統時間是 13:00 , 真實的當前時間(在空中,也許衛星上,這裏假設是在準備同步的上級目標NTP服務器)是: 12:30  。若是咱們使用ntpdate同步(ntpdate -u 目標NTP服務器IP),操做系統的時間當即更新爲12:30,假如,咱們的系統有一個定時應用,是在天天12:40運行,那麼實際今天這個的任務已經運行過了(當前時間是13:00嘛),如今被ntpdate修改成12:30,那麼意味做10分鐘後,又會執行一次任務,這就糟糕了,這個任務只能執行一次的嘛!!我想你(實際上是我)已經懂了ntpdate時間同步的隱患,固然這個例子有些極端,但的確是有風險的,生產環境我不打算這麼幹,仍是穩妥點好。因此解決該問題的辦法就是時間平滑更改,不會讓一個時間點在一天內經歷兩次,這就是NTPD服務方式平滑同步時間,它每次同步時間的偏移量不會太陡,是慢慢來的(問:怎麼來,沒有細究,只曉得一次一點的同步,徹底同步好須要較長時間,因此通常開啓NTPD服務同步前先用ntpdate先手動同步一次)。less

 

二、安裝配置運維

CentOS 6.3系統已經自帶了NTPD服務,通常默認是按照了的,若是沒有安裝,先檢查下,而後配置好yum倉庫,yum方式安裝下就OK,具體以下:ide

# rpm -q ntp

ntp-4.2.4p8-2.el6.x86_64    // 這表示已安裝了,若是沒有安裝,這是空白。

若是沒有安裝,咱們按照下

# yum install ntp

......

按上面的安裝方式在內網每臺服務器上都安裝好NTP軟件包。

完成後,都須要配置NTP服務爲自啓動

# chkconfig ntpd on

# chkconfig --list ntpd

ntpd           0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

 

在配置前,先使用ntpdate手動同步下時間,省得本機與外部時間服務器時間差距太大,讓ntpd不能正常同步。

# ntpdate -u 202.112.10.36

22 Dec 16:52:38 ntpdate[6400]: adjust time server 202.112.10.36 offset 0.012135 sec

 

配置內網NTP-Server(192.168.1.135)

下面主要是配置內網的NPTD服務器(192.168.1.135), NTPD服務配置核心就在/etc/ntp.conf文件,配置好了就OK。網上特別是老外的文章都很簡單,我上當了,媽喲,基礎環境不同,咱們得中國特點才行。先上配置文件再說,紅色部分是個人修改,其餘的是默認。

 

# For more information about this file, see the man pages

# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

 

driftfile /var/lib/ntp/drift

 

# Permit time synchronization with our time source, but do not

# permit the source to query or modify the service on this system.

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

 

# Permit all access over the loopback interface.  This could

# be tightened as well, but to do so would effect some of

# the administrative functions.

restrict 127.0.0.1

restrict -6 ::1

 

# Hosts on local network are less restricted.

# 容許內網其餘機器同步時間

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

 

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

# 中國這邊最活躍的時間服務器 : http://www.pool.ntp.org/zone/cn

server 210.72.145.44 perfer   # 中國國家受時中心

server 202.112.10.36             # 1.cn.pool.ntp.org

server 59.124.196.83             # 0.asia.pool.ntp.org

 

#broadcast 192.168.1.255 autokey        # broadcast server

#broadcastclient                        # broadcast client

#broadcast 224.0.1.1 autokey            # multicast server

#multicastclient 224.0.1.1              # multicast client

#manycastserver 239.255.254.254         # manycast server

#manycastclient 239.255.254.254 autokey # manycast client

 

# allow update time by the upper server 

# 容許上層時間服務器主動修改本機時間

restrict 210.72.145.44 nomodify notrap noquery

restrict 202.112.10.36 nomodify notrap noquery

restrict 59.124.196.83 nomodify notrap noquery

 

# Undisciplined Local Clock. This is a fake driver intended for backup

# and when no outside source of synchronized time is available. 

# 外部時間服務器不可用時,以本地時間做爲時間服務

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

 

# Enable public key cryptography.

#crypto

 

includefile /etc/ntp/crypto/pw

 

# Key file containing the keys and key identifiers used when operating

# with symmetric key cryptography. 

keys /etc/ntp/keys

 

# Specify the key identifiers which are trusted.

#trustedkey 4 8 42

 

# Specify the key identifier to use with the ntpdc utility.

#requestkey 8

 

# Specify the key identifier to use with the ntpq utility.

#controlkey 8

 

# Enable writing of statistics records.

#statistics clockstats cryptostats loopstats peerstats

配置參數和命令簡單說明請參考:http://linux.vbird.org/linux_server/0440ntp.php#server_ntp.conf

 

配置文件修改完成,保存退出,啓動服務。

# service ntpd start

......

啓動後,通常須要5-10分鐘左右的時候才能與外部時間服務器開始同步時間。能夠經過命令查詢NTPD服務狀況。

 

查看服務鏈接和監聽

# netstat -tlunp | grep ntp      

udp        0      0 192.168.1.135:123           0.0.0.0:*                               23103/ntpd          

udp        0      0 127.0.0.1:123               0.0.0.0:*                               23103/ntpd          

udp        0      0 0.0.0.0:123                 0.0.0.0:*                               23103/ntpd          

udp        0      0 fe80::6cae:8bff:fe3d:f65:123 :::*                                    23103/ntpd          

udp        0      0 fe80::6eae:8bff:fe3d:f65:123 :::*                                    23103/ntpd          

udp        0      0 ::1:123                     :::*                                    23103/ntpd          

udp        0      0 :::123                      :::*                                    23103/ntpd  

看紅色加粗的地方,表示鏈接和監聽已正確,採用UDP方式

 

ntpq -p 查看網絡中的NTP服務器,同時顯示客戶端和每一個服務器的關係

# ntpq -p

# ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*202.112.10.36   202.112.10.60    2 u  277  128  314  201.553    9.193  17.068

+59.124.196.83   129.6.15.28      2 u   88  128  377   71.153  -25.111  14.004

 LOCAL(0)        .LOCL.          10 l   15   64  377    0.000    0.000   0.000

 

位置 標誌 含義
符號 * 響應的NTP服務器和最精確的服務器
+ 響應這個查詢請求的NTP服務器
blank(空格) 沒有響應的NTP服務器
標題 remote 響應這個請求的NTP服務器的名稱
refid NTP服務器使用的更高一級服務器的名稱
st 正在響應請求的NTP服務器的級別
when 上一次成功請求以後到如今的秒數
poll 本地和遠程服務器多少時間進行一次同步,單位秒,在一開始運行NTP的時候這個poll值會比較小,服務器同步的頻率大,能夠儘快調整到正確的時間範圍,以後poll值會逐漸增大,同步的頻率也就會相應減少
reach 用來測試可否和服務器鏈接,是一個八進制值,每成功鏈接一次它的值就會增長
delay 從本地機發送同步要求到ntp服務器的往返時間
offset 主機經過NTP時鐘同步與所同步時間源的時間偏移量,單位爲毫秒,offset越接近於0,主機和ntp服務器的時間越接近
jitter 統計了在特定個連續的鏈接數裏offset的分佈狀況。簡單地說這個數值的絕對值越小,主機的時間就越精確

 

ntpstat 命令查看時間同步狀態,這個通常須要5-10分鐘後才能成功鏈接和同步。因此,服務器啓動後須要稍等下。

剛啓動的時候,通常是:

# ntpstat 

unsynchronised

  time server re-starting

   polling server every 64 s

鏈接並同步後:

synchronised to NTP server (202.112.10.36) at stratum 3 

   time correct to within 275 ms

   polling server every 256 s

 

OK,內網的NTPD服務已經配置完成,若是全部正常後,開始配置內網的其餘設備與這臺服務器做爲時間同步服務。

 

配置內網NTP-Clients

內網其餘設備做爲NTP的客戶端配置,相對就比較簡單,並且全部設備的配置都相同。

首先須要安裝NTPD服務,而後配置爲自啓動(與NTP-Server徹底同樣)。而後找其中一臺配置/etc/ntp.conf文件,配置完成驗證經過後,拷貝到其餘客戶端機器,直接使用便可。

# yum install ntp

...

# chkconfig ntp on

# vim /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

restrict -6 ::1

 

# 配置時間服務器爲本地的時間服務器

server 192.168.1.135

 

restrict 192.168.1.135 nomodify notrap noquery

 

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

 

includefile /etc/ntp/crypto/pw

 

keys /etc/ntp/keys

 爲了簡單,這裏只列出了配置項,註釋所有清理了。

 OK,保存退出,請求服務器前,請先使用ntpdate手動同步下時間

# ntpdate -u 192.168.0.135

22 Dec 17:09:57 ntpdate[6439]: adjust time server 192.168.1.135 offset 0.004882 sec

這裏有可能出現同步失敗,通常狀況下緣由都是本地的NTPD服務器尚未正常啓動起來,通常須要幾分鐘時間後才能開始同步。

錯誤判斷請參考後面的錯誤處理。

 

# service ntpd start

....

啓動後,查看同步狀況

# ntpq -p

# ntpstat

.....

由於是內網,通常ntpstat很快就能夠同步上,幾分鐘須要等下.

OK,本機客戶端配置完成後,使用SCP拷貝/etc/ntp.conf到其餘須要同步的客戶端機器,啓動NTPD服務便可。

其餘客戶端機器上操做配置以下:

 ntpdate -u 192.168.0.135

22 Dec 17:09:57 ntpdate[6439]: adjust time server 192.168.1.135 offset 0.004882 sec

# scp 192.168.1.xxx:/etc/ntp.conf /etc/ntp.conf

# service ntpd start

 

 

三、錯誤問題處理

用於收集安裝,配置和應用中出現的問題

 

錯誤1:ntpdate -u ip ->  no server suitable for synchronization found

判斷:在ntp客戶端用ntpdate –d serverIP查看,發現有「Server dropped: strata too high」的錯誤,而且顯示「stratum 16」。而正常狀況下stratum這個值得範圍是「0~15」。

緣由:NTP server尚未和其自身或者它的server同步上。在ntp server上從新啓動ntp服務後,ntp server自身或者與其server的同步的須要一個時間段,這個過程多是5分鐘,在這個時間以內在客戶端運行ntpdate命令時會產生no server suitable for synchronization found的錯誤。

處理:等待幾分鐘後,重試通常解決。

也可使用命令 ntpq -p查看狀況

參考:http://blog.csdn.net/weidan1121/article/details/3953021

相關文章
相關標籤/搜索