一、工作组下的计算机与TENKNET时间同步

我们经常会发现计算机的时钟(日期和时间)不正确了。这种情况有时候是人为现象,有时候是计算机的问题。对于工作组下的PC机,时钟的偏差可能影响不大,经常关机而又日久年深的CMOS上的电池没电就是一种时钟产生偏差的原因。计算机在启动时,特别是台式机由于有了外部电源供电对于常年不关机的服务器不会存在此类现象。计算时间有了偏差,只要我们设置了与INTELNET时间服务器定期同步,我们的计算机也会在一定时间内与INTELNET上的时间服务器同步。如下图1.1

(图1.1

刚才虽然说了PC机的时间虽然产生偏差影响不大,但是总是会有影响的,如果让我说一个例子,那恐怕就是MSN因为时间问题造成无法登录最让我记忆犹新了。

 

二、域环境下域控与成员计算机的时间一致性

当计算机网络成为域环境下的时候,必须要保证域内的所有计算机在时间上保持一致性。即使有个别计算机的时钟出现了偏差除非W32TIME服务不工作或者异常,域内的计算机会在一个时间段内自动同步时间,保持一致。

   有一些朋友可能会感觉到不理解,为什么要让域中所有的计算机时间保持一致?这是因为通常情况下,ADDS域成员都会启动windows time (w32time)服务,w32time服务通过NTP协议访问目标时钟服务器的123端口进行实践同步。它会自动与域DC进行时间同步,无需人为干涉。而保持域内时间的同步是kerberos认证协议的一个基本要求,如果域成员客户机与DC的时间相差太大的话,它的登录将不能成功。我们设想一下,如果一个用户被设置为在2013191800时因为密码到期而被禁用。如果DC与域成员计算机的时钟存在偏差,一个事现在19:00,另一个事17:00 那么到底以谁的为准呢?这个用户究竟是可不可以登录呢?不光是登录问题,时间的不一致性也会造成例如计划任务等依靠时间才能正确完成的所有任务。同时,时间一致性也是为了防止重放攻击的一种手段。关于重放攻击,请参考百度百科:http://baike.baidu.com/view/1569933.htm

   现在我们来谈第二个问题,在一个域中如果存在多个DC,那么我们究竟以哪台DC作为时间一致性的基准呢?答案就是操作主机中扮演PDC角色的那台主机。

让我们了解一下时间一致性的时钟同步过程吧:

1).客户端与DC做时钟同步;

2).DC与本域PDC做时钟同步;

3).PDC与林根域PDC同步时钟;

4).域或林的PDC与外部时钟源同步时钟;

有了这样一个顺序的过程,正常情况下,域成员服务器会定期与域控制器做时间同步,保持时间的一致性,而林的PDC与外部时钟源做同步,保持世界时间的一致性。

 

三、域成员计算机与域控制器如何做到时钟同步

1、首先无论是DC还是域成员计算机都会启动windows time服务来保持时间和日期的同步,如下图3.1.1
(图3.1.1
 
上面截图中实际上来自2台计算机左边是域控的服务截图,右边是一台成员服务器的截图。从服务的描述中我们可以看出维护的是客户端和服务器端的时间同步,那么如此看来时间同步实际上也是基于C/S模式的,客户端要与服务器端的时间同步,按照这个理论左边的DC就是NTPSERVER端,而右边的成员服务器就是NTPCLIENT端。我们如何来验证这个结论呢,别着急,我们在注册表中有一个值能证明,如下图3.1.2
(图3.1.2
 
我现在说一下这个值的注册表完整路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
NtpServer
内的「Enabled」设定为1,打开NTP服务器功能
因为默认情况下,WINDOWS SERVER 是作为NTP客户端工作的 ,所以右边的Enabled」设定为0,而右边恰恰是一台成员服务器。而左边「Enabled」设定为1,成为了NTP服务器,恰恰这个是一台DC,而且这台DC还是PDC。查看PDC的方法如下图3.1.3
(图3.1.3
 
因为我这里是一个很简单的单域环境,所有的操作主机都在一台DC上,所以这台DC也扮演PDC的角色,根据PDC的功能之一就是做时间同步,所以域内的计算机时间最后都会与这台DC进行时间同步。关于操作主机PDC,可以参考宋SIR的文章:http://angerfire.blog.51cto.com/198455/211943/
那么我们最后再说一下林PDC是如何与外部时钟源做同步呢?这个问题我们还要通过DC中的注册表中来查看。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config下的AnnounceFlags5.该设定强制主机将它自身宣布为可靠的时间源,但是如果是默认的10,就证明采用外面的时间服务器。如下图3.1.4
(图3.1.4
而在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\ParametersNtpServer的值指明了外部时钟源服务器的地址,如下图3.1.5
(图3.1.5
 
这样域成员计算机通过与DC同步时间,DC与PDC的DC同步时间,林PDC的DC与外部时间源同一时间,就形成了一套完整的域环境下时间一致性的机制。