DZ先生怪談國標28181之大型監控組網ntpd校時方案

1. 自述
還記得之前DZ先生講過如何利用crontab做中小型校時方案嗎?不記得的可以打開連接瞭解下https://blog.csdn.net/dzxs_gb28181/article/details/87019888 今天DZ先生主要講的是大型監控方案中的ntpd方案,那麼這兩種有什麼區別嗎?
(1)安全性
ntpdate的設置依賴於ntp服務器的安全性,攻擊者可以利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。由於ntpdate採用的方式是跳變,跟隨它的服務器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以服務器爲準)。

(2)精確
對於update,一旦ntp服務器宕機,跟隨它的服務器也就會無法同步時間。

NTPD在和時間服務器的同步過程中,會把BIOS計時器的振盪頻率偏差——或者說Local Clock的自然漂移(drift)——記錄下來。
這樣即使網絡有問題,本機仍然能維持一個相當精確的走時。

注意: ntpdate和ntpd不能同時使用

2. 組網方案
某運營商監控組網中有40臺存儲掛在在SCC下,信令服務器SCC爲整套監控系統的核心。同時也是幾萬路前端的接入平臺。

3.施工步驟
1) 將SCC及40臺存儲的時區都調整爲Asia/Shanghai, linux裏是沒有beijing的。如果默認是Asia/Shanghai則無需調整
 vi /etc/sysconfig/clock  
 ZONE="Asia/Shanghai"  ---將時區調整爲Shanghai

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime   ----將shanghai的配置文件拷貝下
[root@CENTOS ~]# date -R
Sun, 17 Feb 2019 16:12:58 +0800  ---可以看到我們已經在東8區了

[root@CENTOS ~]# date
Sun Feb 17 16:13:35 CST 2019     ----CST表示爲 中國標準時間

2)利用date -s 和hwclock -w  先將SCC調整爲正確的時間,在將存儲時間調整至距離SCC時間很靠近的時間
例:  date -s "2019-2-17 12:00:00"; hwclock -w    ---將系統時間同步至硬件時間(bios時間)

3) 配置ntp.conf

SCC NTP server端配置:
[root@CENTOS ~]# vi /etc/ntp.conf 

# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap    ------放行存儲段,允許client來同步,但拒絕他們來修改時間

# 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  ------------將本地的stratum設置爲默認的10,將前面的#去掉

啓動NTP服務
service ntpd start
chkconfig ntpd on  ---開機自己啓動

防火牆放行NTP 的udp 端口 123
iptables -I INPUT -p udp --dport 123 -j ACCEPT    ---放行udp 123端口

ntp開啓命令和開機自啓動命令
service ntp start

 

存儲 NTP sclient端配置:

# Hosts on local network are less restricted.
restrict 192.168.1.203    --------放行上層NTP服務地址,實驗證明這邊不加也行,爲了規範最好加下

#server 2.centos.pool.ntp.org
server 192.168.1.203 prefer  ----將SCC服務器192.168.1.203置爲最優先的ntp服務器校時源
fudge  192.168.1.203 stratum 10 --將上層ntp服務器層級置爲10


防火牆放行NTP 的udp 端口 123
iptables -I INPUT -p udp --dport 123 -j ACCEPT    ---放行udp 123端口

客戶端設置同步硬件時間
ntp服務,默認只會同步系統時間,但各個系統不一樣,有的會自動同步,有的不會,centos6.7版本的是會自動同步的。如果想要讓ntp同時同步硬件時間,可以設置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】這樣,就可以讓硬件時間與系統時間一起同步。

[root@CENTOS ~]# #vi  /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes   --------後加的
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
[root@CENTOS ~]# 

重啓NTP服務
service ntpd restart

業務檢查命令:
ntpq -p    ---查看ntp同步詳細信息


remote:亦即是 NTP 主機的 IP 或主機名囉~注意最左邊的符號
                如果有『 * 』代表目前正在作用當中的上層 NTP
                如果是『 + 』代表也有連上線,而且可作爲下一個提供時間更新的候選者。
refid:   參考的上一層 NTP 主機的地址
st     :  就是 stratum 階層囉!
when: 幾秒鐘前曾經做過時間同步化更新的動作;
poll:   下一次更新在幾秒鐘之後;
reach:已經向上層 NTP 服務器要求更新的次數
delay:網絡傳輸過程當中延遲的時間,單位爲 10^(-6) 秒
offset:時間補償的結果,單位與 10^(-3) 秒
jitter  :Linux 系統時間與 BIOS 硬件時間的差異時間, 單位爲 10^(-6) 秒。

ntpstat  ---查看是否同步,一般需要5-10分鐘纔會同步好,需要多點耐心

4. 擴展知識

===restrict選項格式===
restrict [ 客戶端IP ]  mask  [ IP掩碼 ]  [參數]

“客戶端IP” 和 “IP掩碼” 指定了對網絡中哪些範圍的計算機進行控制,如果使用default關鍵字,則表示對所有的計算機進行控制,參數指定了具體的限制內容,常見的參數如下:
ignore  : 拒絕所有類型的 NTP 聯機;
nomodify: 客戶端不能使用 ntpc 與 ntpq 這兩支程序來修改服務器的時間參數, 但客戶端仍可透過這部主機來進行網絡校時的;
noquery : 客戶端不能夠使用 ntpq, ntpc 等指令來查詢時間服務器,等於不提供 NTP 的網絡校時囉;
notrap  : 不提供 trap 這個遠程事件登錄 (remote event logging) 的功能。
notrust : 拒絕沒有認證的客戶端。
nopeer  : 提供時間服務,但不作爲對等體。
kod     : 向不安全的訪問者發送Kiss-Of-Death報文。

/etc/ntp.conf 文件中的driftfile /var/lib/ntp/drift 代表啥?
每個主機的bios頻率都不一樣,就會導致各個計算機的時間不一樣,drift主要記錄本主機和上層NTP主機之間的bios頻率差。




***關注DZ君,讓監控變得更簡單***


 

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