NTP服務器時鍾校准的基本流程:
(1):NTP客戶端向NTP服務器發出一個時間請求包(UDP包),其中包含了該包離開客戶端時的時間戳。
(2):當服務器接收到該包時。填入包到達時的時間戳、包離開時的時間戳等信息,然后立即把包返回給客戶端
(3):客戶端在接收到響應包時再填入包返回時的時間戳,然后利用這些時間參數計算出兩個關參數,即包往返的延遲、客戶端與服務器之間的時鍾偏移
(4):客戶端使用時鍾偏移來調整本地時鍾,以使其時間與服務器時間一致
CentOS中,NTP服務由ntp軟件提供,可以直接yum install ntp即可。另外,tzdata軟件(Time Zone Data)提供各時區的對應顯示格式。
軟件相關配置文件:
- /etc/ntp.conf ntp服務的住配置文件,ntp服務只有這一個配置文件。
- /usr/share/zoneinfo/ tzdata提供,包含各時區對應的文件格式。/usr/share/zoneinfo/Asia/Shanghai
- /etc/sysconfig/clock 設置時區配置文件。每次Linux開機啟動后,都會自動讀取該配置文件來設置默認顯示時間。ZONE="Asia/Chongqing"
- /etc/localtime 本地端的時間配置文件。通過clock設置時區,將/usr/share/zoneinfo中對應文件復制一份成為/etc/localtime
關於時間服務器的相關命令:
- /bin/data 用戶Linux時間(軟件時鍾)的修改和查看
- /sbin/hwclock 用於BIOS(硬件時鍾)的修改與顯示
- /usr/sbin/ntpd 提供ntp服務的程序。
- /usr/sbin/ntpdate 客戶端時間的矯正。
NTP服務配置:
通過步驟1、2 即可完成一個基本時鍾服務器的配置。
1. 通過restrict限制客戶端的訪問
在ntp.conf配置文件中,可以通過restrict來控制權限
restrict [-6] [IP] mask [netmask] [parameter]
-6 如果增加-6后邊跟的是IPv6信息。
parameter的主要參數:
-
-
- ignore 默認拒絕所有ntp連接
- nomodify 客戶端不用使用ntpc 與ntpq 修改服務器時間,但是客戶端可以進行校准
- noquery 不能使用ntpq、ntpc查詢時間服務器,等於不提供ntp服務
- notrap 不提供trap遠程事件登陸(remote event logging)功能
- notrust 拒絕沒有認證的客戶端
-
如果在parameter位置沒有任何參數,表明該IP段不受任何限制
2. 利用server設置上層NTP服務器(服務器進程向上同步的服務器)
server [IP or hostname ] [perfer]
server后可以跟IP地址或域名,perfer表明要優先使用
3. driftfile記錄時間差異
driftfile [可以被ntpd寫入的文件]
NTP服務會自動計算跟上層server的誤差,然后記錄到driftfile后邊的文件。
該文件要設置啟動ntp的用戶(ntp)具有寫入權限。具體可以通過/etc/sysconfig/ntpd查看。
4. keys [key_file] 除了restrict可以限制用戶連接以外,還可以通過密鑰系統對客戶端認證。在這不做詳細的說明
NTP服務的啟動:
service ntpd start
chkconfig ntpd on
NTP服務默認采用UDP的123端口,NTP服務啟動后約15分鍾才會和上層NTP服務器自動同步。
可以通過ntpstat查看與上層Server的同步情況
[root@Server~]# ntpstat unsynchronised polling server every 64 s
ntpq -p 可以查看當前NTP與上層Server的狀態
[root@Server~]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +ntp3.itcomplian 5.103.128.88 3 u 42 64 3 449.289 -13.724 10.157 -61-216-153-105. 211.22.103.157 3 u 69 64 26 135.770 -71.024 32.294 +ntp3.flashdance 194.58.203.20 2 u 27 64 17 362.206 -39.495 33.853 *59.46.44.253 202.118.1.48 2 u 1 64 37 25.273 -35.954 3.390
remote 源在 ntp.conf 中定義。‘*’ 表示當前使用的,也是最好的源;‘+’ 表示這些源可作為 NTP 源;‘-’ 標記的源是不可用的。
refid 用於和本地時鍾同步的遠程服務器的 IP 地址。
st Stratum(階層)
t 類型。 'u' 表示單播(unicast)。其它值包括本地(local)、多播(multicast)、廣播(broadcast)
when 自從上次和服務器交互后經過的時間(以秒數計)。
poll 下次更新在幾秒之后,以秒數計。
reach 已經向上次服務器請求次數
delay 網絡傳輸的時間。10^-6次方秒
offset 時間補償。10^-3秒
jitter Linux系統時間與BIOS硬件時間差異。10^-6次方秒
NTP客戶端配置:
1. 采用ntpdate手動進行校准,然后將命令放入crontab自動執行
ntpdate 0.centos.pool.ntp.org
2. 采用ntp服務進行自動校准。
將/etc/ntp.conf中serer配置注釋
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
restrict 192.168.0.1 #要去同步的時鍾server
server 192.168.0.1
如果在內網環境,服務器作為Server向自己同步方法:
server 127.0.0.1
fudge 127.0.0.1 stratum 10
fudge 127.0.0.1 stratum 10 為服務器的層次,0為頂級,如果要向其他服務器同步,不要設置為0.
ntp允許所有地址訪問:
restrict 0.0.0.0
配置實例:
1. NTP Server向自己進行同步
2. 開放192.168.0.0/24網段,允許該網段同步
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.0.0.1
fudge 127.0.0.1 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
華為交換機NTP配置:
1. 時區設置 <S8505>clock timezone cst add 8 2. ntp server配置(server 192.168.10.25) [S8505]ntp-service unicast-server 192.168.10.25 vpn-instance ChinaNet 3. 如果配置了vpn,配置source地址,並指定vpn [S8505]ntp-service unicast-server 1.1.1.1 source-interface Vlanif 200 vpn-instance ChinaNet 4. 查看ntp server狀態
[S8505]display ntp-service status
clock status: unsynchronized #沒有正常同步
clock stratum: 16
reference clock ID: none
nominal frequency: 60.0002 Hz
actual frequency: 60.0002 Hz
clock precision: 2^18
clock offset: 0.0000 ms
root delay: 0.00 ms
root dispersion: 0.00 ms
peer dispersion: 0.00 ms
reference time: 00:00:00.000 UTC Jan 1 1900(00000000.00000000)
5. 查看Session連接狀態
[S8505]dis ntp-service sessions
其他配置:
ntp-service authentication enable
ntp-service authentication-keyid 42 authentication-mode md5 CIPER-NTP
ntp-service reliable authentication-keyid 42
ntp-service unicast-server 2.2.2.2 authentication-keyid 42