菜鸟配置NTP服务器
1.实验环境:Ubuntu11.10
2.实验类型:模拟局域网
3.NTP:Network Time Protocol
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
4.NTP采用类似分级架构来处理时间的同步化,所有它使用的是类似一般的server/client的主从架构(NIS采用的是master/slave架构),NTP这个daemon是以123这个port为连接端口(使用UDP数据包)。
5.NTP的工作过程:
首先,主机当然需要启动这个daemon;
之后,client会向NTP server发送出校对时间的message;
然后NTP server会送出当前的标准时间给client;
client接收了来自server的时间后,会据以调整自己的时间,这样就实现了网络的校时。
6.所需的软件:ntp
apt-get install ntp
7.配置文件:
/etc/ntp.conf ===>>主配置文件
/usr/share/zoneinfo/ ===>>由tzdata所提供,为各时区的时间格式对应文件,example:我国的时区格式对应文件为/usr/share/zoneinfo/Asia/Shanghai
/etc/default/rcS ===>>可以设定当前时间是UTC还是local(我没有修改)
/etc/localtime ===>>本地使用的时区格式,如果要更改时区可以将对应的时区格式从/usr/share/zoneinfo/复制到该目录即可,需要配合tzselect使用
8.常用的修改时间的命令:
/bin/date:用于Linux时间的修改与显示的命令
/sbin/hwclock:用于BIOS时钟的修改与显示的命令
/usr/sbin/ntpd:主要提供NTP服务的程序,配置文件/etc/ntp.conf
/usr/sbin/ntpdate:用于客户端的时间的校正
9.主要配置文件的处理
vim /etc/ntp.conf
#利用restrict来管理权限控制
#格式:restrict [IP] [mask] [parameter]
[parameter]的参数:
ignore : 拒绝所有类型的NTP连接
nomodify : 客户端不能使用ntpc与ntpq这两个程序来修改服务器的时间参数,但是客户端可以通过这部主机进行校时
noquery : 不提供NTP网络校时
notrap :不提供trap这个远程事件的登录
notrust : 拒绝没有认证的客户端
其他:如果没有parameter参数则代表“该IP或者网段不受任何限制”
#利用server设置上层NTP服务器
server [IP or hostname] [prefer]
prefer :优先选择
#以driftfile记录时间差异
driftfile [可以被ntpd写入的目录与文件]
其他: driftfile后面接完整的路径文件名
该文件不能是连接文件
ntpd要有写入该文件的权限
该文件所记录的数值为百万分之一秒(ppm)
#keys[key_file]
通过密钥系统认证客户端的权限,跟ntp-keygen有关
10./etc/ntp.conf范例:
vim /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
server cn.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery #禁止IPV4用户
restrict -4 default kod notrap nomodify nopeer noquery #禁止IPV6用户
restrict 127.0.0.1
restrict ::1
restrict 192.168.2.0 mask 255.255.255.0 nomodify
/etc/init.d/ntp start
ntpq -p #查询当前ntp连接状态
11.客户端的时间更新方式
date hwclock
ntpdate [-dv] [NTP/hostname]
其他:
-d:进入排错模式,显示更多的有效信息
-v:显示更详细的信息
example:ntpdate cn.pool.ntp.org
date;hwclock -w
hwclock [-rw]
其他:
-r:read
-w:write
vim /etc/crontab
0 7 * * * root (/usr/sbin/ntpdate cn.pool.ntp.org && /sbin/hwclock -w) &> /dev/null