了解Lync的同学们都知道,Lync客户端和服务器间保持时间同步有多么重要!因为客户端与服务器间要实现MTLS和TLS协议通信,需要保证两个通信节点间时间差不能大于5分钟。对于像Polycom RMX和HDX这种第三方视频会议终端来说面临的挑战更大。其实,Windows服务器实际上就是一个跑有Windows时间服务的NTP服务器,通过这个服务,就可以保持Lync服务器和Lync客户端时间同步。
域控
当一台服务器提升为域控以后,它会自动运行Windows Time Service这个服务。我们可以通过下面的命令来停止或启动这个服务:
net start w32time
net stop w32time
除了边缘服务器和反向代理以外,其他的所有属于域成员的Lync服务器都将自动配置为与域控时间同步。所以对于边缘和反向代理来说,我们应该启动Windows Time Service服务,并且通过MMC设置为自动启动。但是域控的时间又是从哪里获取来的呢?在默认情况下,它是通过BIOS上的系统时钟获取到的。通过如下命令可以看到:
w32tm -query -configuration
从上面的图片我们可以注意到,这台服务器既是一台NTP Server又是一台NTP Client。在NTPClient 下面可以看到InputProvider: 1 (Local) ,这意味着,服务器正在查询时间源,用它来同步时间。在Type 选项下我们可以看到它的值为NT5DS ,这也是域控的默认设置。这个意思就是说它获取时间源是按先后顺序的,首先在林中的PDC模拟器获取,其次是林中的其他域或者是子域PDC模拟器。PDC模拟器会自动从外网NTP服务器获取时间,例如 ntp.pool.org 。如果没有获取到才会用本地的BIOS时钟。
在下面的NTPServer 选项中,可以看到Enables的值设为了1,这个意思就是说,它允许NTP请求。NTP通过UDP 123端口来监听请求。
可以通过如下命令看到正在使用的时间源:w32tm /monitor ,执行以后会显示正在使用的时间源服务器的主机名。
配置外部可靠的时间源
因为BIOS时钟不是很可靠,所以又是我们需要手动配置PDC模拟器从外部时间源获取时间。在亚洲,我们可以用下面的时间源,http://www.pool.ntp.org/zone/asia 。下面以sg.pool.ntp.org 为例,介绍一下如何配置外部时间源,命令如下:
w32tm /config /update /manualpeerlist:sg.pool.ntp.org,0x1 /syncfromflags:MANUAL
其次,
w32tm /resync /rediscover /nowait
然后停止、重启时间服务,刚才的配置才会生效。
到此,我们应该能够在整个Lync环境中通过一个可靠的时间源同步时间了。