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