TIME: 2080630  BY: 王刚

一、需求的提出

1.     现有系统中的服务器均未连接到外部互联网,且内网环境中没有NTP服务器;

2.     运维过程中发现服务器之间时间不同步,为避免因为时间同步问题出现的系统异常,现需要在内网中搭建一台NTP服务器。

二、现有环境介绍

1.     现有内网环境为封闭的环境,无法连接到外部互联网;

2.     现服务器有Windows Server(2003、2008)、LinuxServer(NeoKylin 、CentOS);

3.     部分服务器运行在VM上,通过 vcenter管理。

三、NTP服务建思路计划(C/S架构)

1.     在一台Linux服务器上安装NTP提供时间同步服务;

2.     其他Linux应用服务器亦需要安装NTP作为客户机,同步NTP服务器提供的时间;

3.     Windows客户机通过修改时间服务器地址,同步NTP服务器提供的时间;

4.     为NTP服务器配置指定的域名,然后通过DNS解析NTP服务器的域名来实现时间同步。例如:time.windows.com-->NTP服务器

四、NTP服务器配置要求

1.     硬件配置要求:低配置服务器即可,但最好是物理机,避免出现宿主机与虚拟机之间时间互相同步的异常现象;

2.     防火墙配置要求:由于ntp服务需要使用到UDP端口号为123,所以当系统的防火墙(iptables)启动的情况下,必须开放UDP端口号123
[root@node10 ~] iptables -I INPUT -p udp -m udp --sport 123-j ACCEPT #对外开放123端口
五、实施步骤

1、NTP Server端配置步骤 <>

1)    首先NTP Server无法连接到互联网,我们要为其手动配置准确的时间(如果有条件可以购买硬件NTP服务器,来确保时间来源准确)
[root@node10 ~] date -s '2018-06-30 01:01:01' #2018-06-30 01:01:01为将要设定的时间
[root@node10 ~] hwclock -w #设定好系统时间后,把准确的系统时间同步到本机硬件

2)    一般Linux安装的时候默认已安装NTP服务,安装前检查是否已安装
[root@node10 ~]# rpm -qa|grep ntp ntpdate-4.2.6p5-5.el6.x86_64
ntp-4.2.6p5-5.el6.x86_64 fontpackages-filesystem-1.41-1.1.el6.noarch
3)    如果没有安装,则执行以下步骤进行安装
[root@node10 ~]#yum -y install ntp
4)    备份默认配置文件,修改配置文件注释默认server,配置本机为时间同步服务器,为其他客户机提供时间同步服务
[root@node10 ~]# cp /etc/ntp.conf{,.back} [root@node10 ~]# vim /etc/ntp.conf
... #内网环境中,注销默认Server #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
127.127.1.0# local clock fudge 127.127.1.0 stratum 10 #配置客户端授权,给指定的客户端设置访问NTP
Server的权限 restrict 192.168.4.0 mask 255.255.255.0 nomodify notrap ....
5)    其他授权配置参数:


ignore  

 拒绝所有类型的ntp连接


nomodify  

 客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数


noquery  

 客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时


notrap  

 不提供trap这个远程时间登录的功能


notrust  

 拒绝没有认证的客户端


nopeer  

 不与其他同一层的ntp服务器进行时间同步

6)    启动NTP服务,并添加为开机启动项。如果有防火墙,需要开放udp的123端口
[root@node10 ~]# service ntpd start #启动ntpd时间服务器 [root@node10 ~]# chkconfig
ntpd on #开机自启动
2、NTP在Linux Client端的配置步骤

1)    Linux客户端安装NTP,一般都已默认安装。如果没有安装则执行以下步骤安装NTP
[root@node11 ~]# yum -y install ntp
2)    备份默认配置文件,修改配置文件注释默认server,配置已搭建的NTP Server为本机的时间同步服务器
[root@node11 ~]# cp /etc/ntp.conf{,.back} [root@node11 ~]# vim /etc/ntp.conf
... #内网环境中,注销默认Server #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 #使用本地搭建的NTP Server同步时间 server 192.168.4.10 iburst
minpoll 3maxpoll 4 #minpoll 3表示2的3次方,也就是最短8秒钟后主动与上层NTP服务器同步一次,maxpoll
4表示2的4次方,也就是最长16秒钟后主动与上层NTP服务器同步一次.
3)    启动ntp服务,并添加为开机启动项
[root@node10 ~]# service ntpd start #启动ntpd时间服务器 [root@node10 ~]# chkconfig
ntpd on #开机自启动4)    测试NTP Client与NTP Server之间时间同步情况[root@node11 ~]# ntpdc -c
loopinfo offset: 0.000000 s #数字越小,时间同步效果越好 frequency: 0.000 ppm poll adjust: 0
watchdog timer: 56 s [root@node11 ~]# ntpq -p remote refid st t when poll reach
delay offset jitter
==============================================================================
*192.168.4.10 LOCAL(0) 11 u 61 64 7 0.403 -10.194 0.025 #这里出现*192.168.4.10表示NTP
Client与NTP Server自动同步时间#192.168.4.10前面的*表示正在使用的NTP
Server,如果配置多个,还有出现+开头的,表示候选的NTP Server
5)    当ntp自动同步有问题时,可以在crontab中加入如下命令(每5分钟同步一次时间)
[root@node11 ~]# crontab -e */5****/usr/sbin/ntpdate -u 192.168.4.10
3、NTP在Windows Client端的配置步骤

1)    Windows Server(2003、2008)设置同步NTP服务器时间

2)    运行services.msc启用Remote Procedure Call (RPC)、Windows Time服务;

3)    运行gpedit.msc修改组策略管理模板->系统->Windows时间服务,首先启用全局配置,

然后配置NTP客户端,修改NtpServer为我们上面配置的NTP服务器IP或者域名。

注意:几个重要参数介绍

specialPollInterval:轮询间隔,单位为秒,我设置为10分钟,即600秒。

type:NTP

4、NTP在 VMClient端的配置步骤

虚拟机的配置可以通过在vcenter控制台配置宿主的时间同步设置实现,vmtools会把宿主的时间同步到虚拟机

六、后期巡检方法

1、Linux 客户端巡检方法

执行ntpq -p关注offset和jitter的值,其值越小越好
[root@node11 ~]# ntpq -p remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.4.10 LOCAL(0) 11 u 61 64 7 0.403 -10.194 0.025 #这里出现*192.168.4.10表示NTP
Client与NTP Server自动同步时间#192.168.4.10前面的*表示正在使用的NTP
Server,如果配置多个,还有出现+开头的,表示候选的NTP Server
2.Windows客户端巡检方法

              手动检查时间同步情况

七、存在的问题

1、没有准确的时间来源,Linux NTP服务器运行一段时间后,可能会出现所有服务器的时间与外部准确时间不一致的情况(整体变快或者变慢)。

后期解决方案:这个是所以隔离网络共同存在的问题,可以通过购买硬件NTP服务器来解决(3-5万)

2、NTP Client时间与NTPServer之间时差过大时,NTP
Client不会同步NTPSever提供的时间。这是为了避免时差过大,直接调整后影响系统进而出现故障。

后期解决方案:Linux NTP Client在配置文件里面添加tinkerpanic 600
这句话的意思是在时间差大于600秒的情况下,ntpd进程自动关闭,ntpd退出时会向/var/log/messages中写入log。

在时间差过大时,应该由用户手动设置系统时间或者调用ntpdate命令,这样能避免因为时间跳变出现的问题。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信