NTP服务搭建方案

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秒。

typeNTP

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命令,这样能避免因为时间跳变出现的问题。

你可能感兴趣的:(Linux)