1. 程式人生 > >Linux 環境下NTP 服務搭建

Linux 環境下NTP 服務搭建

between 1.2 但是 var 陷阱 def 導致 con red hat

##################################################################################

實驗環境:Red Hat 6.8

vmware workstation 12.5

NTP Server Name:ocbsap01

NTP client Name: ocbsweb01

實驗目的:架設一臺ntp服務器,使用internet中的ntp服務器進行網絡校時,

並允許子網192.168.10.0/24中的客戶機通過該服務器進行網絡校時

實驗外網NTP地址: cn.pool.ntp.org

###################################################################################

NTP服務器Network Time Protocol(NTP)是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。

協議使用的UDP 123端口


#####################Server 端操作#####################################

1、檢查ntp軟件是否安裝,這裏安裝的是系統自帶版本ntp-4.2.6p5-10.el6.x86_64

[root@ocbsap01 /]# rpm -qa | grep ntp-
ntp-4.2.6p5-10.el6.x86_64
ntpdate-4.2.6p5-10.el6.x86_64


2、編輯NTP配置文件/etc/ntp.conf,先備份一下,然後echo > /etc/ntp.conf清空文件復制如下配置

restrict 參數解釋:

restrict 控制相關權限。

語法為: restrict IP地址 mask 子網掩碼 參數

其中IP地址也可以是default ,default 就是指所有的IP、


參數有以下幾個:

ignore :關閉所有的 NTP 聯機服務

nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時。

notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網

noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp服務器

notrap : 不提供trap遠端登陸:拒絕為匹配的主機提供模式,控制消息陷阱服務。陷阱服務是ntpdq 控制消息協議的子系統,用於遠程事件日誌記錄程序。

nopeer : 用於阻止主機嘗試與服務器對等,並允許欺詐性服務器控制時鐘

kod : 訪問違規時發送 KoD 包。

restrict -6 表示IPV6地址的權限設置。


註意:如果參數沒有設定,那就表示該 IP (或子網)沒有任何限制!


2.1 配置文件內容如下:

driftfile /var/lib/ntp/drift
#默認是拒絕所有的的服務器
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#添加同步ntp clent的網段,這裏允許 192.168.10.0 網段的客戶機進行時間同步
restrict 192.168.10.0    mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1 
restrict -6 ::1
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
#添加外網同步地址,也就是上一級服務器
server  cn.pool.ntp.org  minpoll 4 maxpoll 4 perfer
#server 127.127.1.0
fudge  127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
#指定日誌文件位置
logfile /var/log/ntp
logconfig all
statistics clockstats cryptostats loopstats peerstats


3、啟動ntp服務

[root@ocbsap01 etc]# service ntpd start

正在啟動 ntpd: [確定]


4、查看ntp Server狀態

[root@ocbsap01 ~]# ntpq -p

remote refid st t when poll reach delay offset jitter

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

*time6.aliyun.co 10.137.38.86 2 u 5 16 1 48.348 43.397 0.000


相關參數解釋:

remote: 指最先響應這個請求的NTP服務器的名稱

refid: 指給本地NTP服務器提供時間同步的上級NTP服務器源。

st: 該值用來表示上級NTP服務器源的層級別。由於NTP是層型結構,有頂端的服務器,多層的NTP服務器源,再到客戶端。所以服務器從高到低級別可以設定為1-16。為了減緩負荷和網絡堵塞,原則上應該避免直接連接到層級別為1的服務器上。

t: 該值用來表示遠程服務器的類型,有如下類型:u代表單播或多播的客戶端,b代表廣播或組播服務器,l代表本地(參考時鐘),s代表同級NTP服務器, A代表多播服務器,B代表廣播服務器,M代表組播服務器

when: 該值為自上次接收到數據包的時間距離當前的時間值

poll: 該值為本地NTP服務器和上級NTP服務器源的輪詢間隔,即雙方每過多久同步一次(單位為秒)。在NTP剛開始運行時,poll值會比較小,此時和上級NTP服務器源同步的頻率就會增加,因此可以盡快調整到正確的時間範圍內。之後poll值就會逐漸增大,同步的頻率也就會相應減小。

reach:這是一個八進制值,用來測試能否和服務器連接.每成功連接一次它的值就會增加

delay:該值為本地NTP服務器和上級NTP服務器源的NTP報文的往返時延。

offset:該值為本地NTP服務器和上級NTP服務器源的時間差值。該值越接近0,我們和上級NTP服務器源的時間就越準確。(日常關註這條)

jitter:該值是用來統計在特定個連續的連接數裏面offset(時間差值)的分布情況。該數值的絕對值越小,我們和上級NTP服務器源的時間就越準確。



#####################Client 端操作#####################################

1、使用ntpdate命令,檢查命令是否安裝如果沒有安裝rpm安裝一下

[root@ocbsweb01 ~]# rpm -qa | grep ntpdate
ntpdate-4.2.6p5-10.el6.x86_64


測試修改目前clent端的時間。

[root@ocbsweb01 ~]# date -s 2014/05/05

2014年 05月 05日 星期一 00:00:00 CST

[root@ocbsweb01 ~]# date

2014年 05月 05日 星期一 00:00:01 CST


2、client端從server端同步時間

[root@ocbsweb01 ~]# ntpdate 192.168.10.128
12 Jan 11:17:37 ntpdate[6694]: adjust time server 192.168.10.128 offset 0.004131 sec

備註:註意防火墻關閉,ntpd啟動後客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。


3、client 自動同步時間,編輯/etc/ntp.conf,chkconfig ntpd --level 35 on

註銷如下行

#server 0.rhel.pool.ntp.org iburst

#server 1.rhel.pool.ntp.org iburst

#server 2.rhel.pool.ntp.org iburst

#server 3.rhel.pool.ntp.org iburst

添加server 192.168.10.128 minpoll 4 maxpoll 4 perfer 或主機名即可 即可


#########################Client端驗證操作#############################

1、查看ntp服務器有無和上層ntp連通,這裏能看到NTP Server的IP,如下顯示說明clent和ntp server之前通訊沒有問題

[root@ocbsweb01 ~]# ntpstat 
synchronised to NTP server (192.168.10.128) at stratum 4 
   time correct to within 333 ms
   polling server every 16 s


2、使用ntpdate -d 192.168.10.128 進行時間服務驗證,並查看同步詳細信息

[root@ocbsweb01 ~]# ntpdate -d 192.168.10.128
12 Jan 11:27:51 ntpdate[6722]: ntpdate [email protected] Tue Jan 26 13:50:53 UTC 2016 (1)
Looking for host 192.168.10.128 and service ntp
host found : ocbsap01
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
server 192.168.10.128, port 123
stratum 3, precision -24, leap 00, trust 000
refid [192.168.10.128], delay 0.02585, dispersion 0.00017
transmitted 4, in filter 4
reference time:    de02a7b8.6b274a2a  Fri, Jan 12 2018 11:19:20.418
originate timestamp: de02a9b7.417bb6cb  Fri, Jan 12 2018 11:27:51.255
transmit timestamp:  de02a9b7.40d639fc  Fri, Jan 12 2018 11:27:51.253
filter delay:  0.02629  0.02661  0.02585  0.02655 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.001500 0.001742 0.001690 0.001996
         0.000000 0.000000 0.000000 0.000000
delay 0.02585, dispersion 0.00017
offset 0.001690
12 Jan 11:27:51 ntpdate[6722]: adjust time server 192.168.10.128 offset 0.001690 sec


####################################常見報錯#####################################################

1、當用ntpdate -d 來查詢時會發現導致 no server suitable for synchronization found

錯誤1.Server dropped: Strata too high

在ntp客戶端運行ntpdate serverIP,出現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.conf中定義的server都不可用時,將使用local時間作為ntp服務提供給ntp客戶端。

server 127.127.1.0

fudge 127.127.1.0 stratum 8


在ntp server上重新啟動ntp服務後,ntp server自身或者與其server的同步的需要一個時間段,

這個過程可能是5分鐘,在這個時間之內在客戶端運行ntpdate命令時會產生no server suitable for synchronization found的錯誤。

那麽如何知道何時ntp server完成了和自身同步的過程呢?



錯誤2.Server dropped: no data

從客戶端執行netdate -d時有錯誤信息如下:

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Server dropped: no data

server 192.168.30.22, port 123

.....

28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found


出現這個問題的原因可能是:


檢查ntp的版本,如果你使用的是ntp4.2(包括4.2)之後的版本,在restrict的定義中使用了notrust的話,會導致以上錯誤。


使用以下命令檢查ntp的版本:

# ntpq -c version

下面是來自ntp官方網站的說明:

The behavior of notrust changed between versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd


解決:

把notrust去掉。


Linux 環境下NTP 服務搭建