ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

华为华三交换机路由器时间配置与NTP同步实战指南

华为华三交换机路由器时间配置与NTP同步实战指南 搞网络运维的同仁应该都遇到过这种尴尬场面两台核心交换机上的日志时间差了半个多小时排障时对着日志怎么都对不上或者证书有效期校验突然失败业务莫名中断最后才发现是设备时钟回到了出厂时间。华为、华三的交换机路由器时间配置看着是个小活儿真到了生产环境里却能折腾出一堆幺蛾子。这篇文章我就结合自己这几年在现网的操作经验把华为VRP平台和华三Comware平台的时间配置从头到尾捋一遍包括手动设置系统时间、时区、夏令时、NTP客户端服务器模式、认证以及各种让人头大的坑怎么排。刚接手机房的新网工能照着抄配置思路被时间同步问题折磨过的老手也能从排错章节里找到些启发。1. 时间配置不是小事先搞清楚这两个层面的概念1.1 时钟错乱在现网里到底会造成什么后果很多人觉得设备时间不就是看一眼准不准的问题吗真不是。日志时间错乱是最好发现的问题也是最轻的后果。想象一下你排查一条链路故障核心交换机、出口路由器、防火墙的日志时间各差几分钟你按时间线把所有事件拉齐结果根本对不上号。本来五分钟能定位的问题硬生生耗了你两小时。更麻烦的是Syslog服务器按时间归类日志设备时间跑偏之后告警和事件会被记到错误的时间窗口里后期审计溯源基本等于抓瞎。比日志更隐蔽的是证书和认证问题。现在很多网络用802.1X做准入控制EAP-TLS认证要校验设备和服务器证书的有效期设备时间如果差了几个月甚至几年证书校验必然失败合法用户也会被拦在门外。我自己就处理过一次一台华三交换机重启之后时间回到了2000年结果全网准入全部报错用户侧的电脑、手机全都提示认证失败场面一度很混乱。类似的还有IPSec、SSL VPN这类依赖时间戳的隧道建立双方时间差超过一定阈值就直接协商失败。还有一个容易被忽略的地方SNMP Trap和网管平台的告警时间。设备上报的Trap里带的是设备本地时间网管平台默认按接收时间或Trap里的时间戳记录。设备时间不准网管平台上的告警时间就乱了值班人员看告警根本分不清先后顺序严重的时候连告警关联分析都没法做。所以时间配置不是“顺手配一下”的事它是整个网络可管理性的地基之一。1.2 手动时间与NTP同步两种手段各有分工设备上的时间体系可以分成两层看。第一层是系统本地时钟就是设备的主控板或者系统CPU维护的软件时钟。第二层是让这个本地时钟和外部时间源保持一致的机制最常见的就是NTPNetwork Time Protocol网络时间协议。本地时钟怎么来的设备上通常有RTC实时时钟芯片或者靠超级电容维持设备断电后时间能继续走。但RTC本身精度有限而且如果设备断电时间太长、电池耗尽时间就会掉回出厂值。所以生产环境里绝对不能只靠手动设置时钟必须靠NTP从可靠的时间源周期同步。手动设置时间和NTP之间也不是替代关系而是互补关系。NTP服务器不可达、设备初次上电、或者临时做实验的时候手动设置时间就是保底操作。而NTP跑起来之后本地时钟会自动被外部时间源校准。简单说手动校时是“应急方案”NTP是“长效机制”。实际配置时我习惯先手动把时间调到大致正确再配置NTP否则NTP同步过程中的跳变太大可能对依赖时间戳的业务造成瞬时影响。2. 手动校时没有时间源时的保底操作2.1 华为VRP设备手动设置系统时间的完整命令华为的设备跑的是VRP平台V5和V8在命令细节上略有差异但手动校时这条命令基本一致。先通过Console口或者SSH登录设备进到用户视图执行Huawei system-view [Huawei] clock timezone BJ add 08:00:00这条命令的作用是设置时区。clock timezone后面的参数分三段时区名称、add或minus、偏移量。中国标准时间比UTC快8小时所以用add 08:00:00。时区名可以自定义不一定要叫BJ写CST、Beijing都行关键是让日志里显示的时间看起来直观。设置完时区再设置具体的日期时间。在用户视图下执行[Huawei] quit Huawei clock datetime 10:30:00 2024-11-20华为VRP上clock datetime的格式是“时:分:秒 年-月-日”注意年月日之间是短横线。执行完以后可以用display clock验证Huawei display clock 2024-11-20 10:30:00 Thursday Time Zone (BJ) : UTC08:00看到时区正确、日期时间正确手动校时就完成了。这里有个容易踩的坑如果在系统视图下执行clock datetime部分VRP版本也接受但为了兼容性我一般习惯退到用户视图再执行。另外clock timezone只需要配一次设备会保存但clock datetime每次断电重启后如果RTC没电还是会丢。2.2 华三Comware设备手动设置系统时间的完整命令华三设备跑的是Comware平台V5和V7命令风格和华为VRP高度相似但细节上有些差异。先说时区H3C system-view [H3C] clock timezone BJ add 08:00:00这和华三的基本一致。再看日期时间设置华三的格式是“时:分:秒 年/月/日”注意日期用的是斜杠[H3C] quit H3C clock datetime 10:30:00 2024/11/20我用过的华三S5560、MSR系列都是这种写法。执行后同样用display clock确认H3C display clock 2024-11-20 10:30:00 Thursday Time Zone (BJ) : UTC08:00两家平台放在一起对比命令几乎就是一个模子刻出来的最大的区别就是日期分隔符华为用短横线华三用斜杠。这个细节如果搞混了命令会直接报错。很多被华为华三双平台折腾过的人十有八九都在这里卡过壳。2.3 时区配置千万别跳过这一步坑了不少人新手配置时间最容易犯的错就是跳过时区直接配置日期时间。结果就是设备显示的UTC时间比北京时间慢了8小时日志时间总是“不对”。实际上不是时钟没走准而是时区没设。时区的本质是告诉设备“你显示的基准时间对应哪个地区”NTP同步回来的时间戳本身是UTC格式设备需要靠时区配置转成本地时间显示。如果不配置时区设备显示的就是UTC时间和当地标准时间差出一大截。我见过有人为了省事不配置时区直接把系统时间手动拨快8小时短时间里日志时间是“对”的但NTP一同步又会跳回UTC时间反而造成更大混乱。还有一个冷门问题是夏令时。欧美很多国家有夏令时制度如果设备部署在这些地区需要在设备上配置夏令时规则。比如华为命令是clock daylight-saving-time华三也有类似的clock daylight-saving-time配置。但国内没有夏令时这部分基本用不上。我的建议是如果设备部署在中国大陆不要配置夏令时相关参数否则每年切换时间会带来额外的维护负担。如果设备在海外再按当地的夏令时规则认真配置这个后面如果有需要可以单独写一篇。提示手动校时之前最好先确认设备当前时间和真实时间差距有多大。如果设备时间落后了几年直接配NTP会导致时间跳变幅度太大可能影响依赖时间戳的进程。建议先手动拨到一个接近真实值的时间再启动NTP做精细同步。3. NTP时间同步让全网设备时间整齐划一3.1 时间源规划先决定谁当“授时中心”NTP的本质是分级授时。设备之间根据距离时间源服务器的“层数”决定优先级这个层数叫Stratum。Stratum 0是最顶层的原子钟或GPS授时源Stratum 1是直接连接Stratum 0的时间服务器Stratum 2是从Stratum 1同步的设备以此类推。普通网络设备能到Stratum 3、Stratum 4就算比较理想了。部署NTP的第一步不是敲命令而是想清楚时间源怎么规划。如果网络能访问公网直接让核心设备从阿里云、国家授时中心等公共NTP服务器同步就行。如果网络是隔离的内网没有外网权限就得选一台或者两台设备作为主时间源让它们作为“授时中心”其他设备都向它们同步。我常用的做法是在核心机房挑两台设备一台做主NTP服务器一台做备两者都指向同一个外部时间源。其他接入层交换机、路由器、防火墙全部指向核心这两台设备的地址。这样拓扑清晰不会出现全网设备各找各的NTP源、时间互相对不齐的情况。另一个要注意的点是层级不能太深。如果设备A从公网NTP同步设备B从A同步设备C从B同步C的Stratum已经高到3层甚至4层时间精度也会逐层打折。对于大多数企业网来说两层就够用了。把设备指向核心交换机核心交换机指向公网NTP是最清爽的结构。3.2 华为路由器交换机的NTP客户端配置实践华为设备配置NTP的入口通常在系统视图。以一台华为交换机向局域网内的NTP服务器192.168.10.10同步为例Huawei system-view [Huawei] ntp-service enable [Huawei] ntp-service unicast-server 192.168.10.10第一条ntp-service enable是开启NTP服务不执行这条后面的客户端配置不生效。第二条ntp-service unicast-server是让本设备以客户端身份主动向指定服务器发起时间同步请求。如果时间服务器支持多个版本个别场景下需要显式指定NTP版本号[Huawei] ntp-service unicast-server 192.168.10.10 version 3默认配置下设备会自动协商NTP版本华为和华三之间的互通一般没有问题。如果对接的是非主流设备版本协商失败指定version 3通常能解决NTPv3也是目前兼容性最广的版本。华为设备上NTP命令有两种风格老版本叫ntp-service新型号部分VRP V8平台也支持ntp前缀比如ntp enable。如果设备上敲ntp-service时报未知命令可以试试去掉-service的写法不同版本命令集有差异这属于正常现象。3.3 华三路由器交换机的NTP客户端配置实践华三设备的NTP配置思路几乎和华为一模一样。以华三交换机向192.168.10.10同步为例H3C system-view [H3C] ntp-service enable [H3C] ntp-service unicast-server 192.168.10.10华三Comware V5和V7都认这两条命令。如果时间不通或者同步状态异常也可以指定版本号[H3C] ntp-service unicast-server 192.168.10.10 version 3两家设备作为客户端互相指向只要网络可达基本都能正常同步。不过我在华三设备上遇到过一种情况设备上有多个VRF实例NTP报文的源地址落在错误的VRF里导致时间同步失败。解决方法是给NTP指定源接口这个后面会细说。如果局域网里没有外部时间源还有一种做法是把某台华三设备配置成NTP服务器其他设备都来同步它。命令是[H3C] ntp-service master 5这里的5是指定Stratum层级。ntp-service master表示本设备以本地时钟作为时间源对外提供授时服务。华为设备也有对应命令[Huawei] ntp-service master 5这个命令非常好用但一定要谨慎。设备自身的时钟如果精度不高它会把自己的“不准”传染给全网。所以把某台设备设成master之前先确认这台设备的时间已经尽可能准确否则就是大家一起错。3.4 认证和源接口让NTP更稳的两个进阶配置NTP报文本身是明文UDP如果网络里有恶意设备冒充时间服务器向全网设备广播错误时间整个网络的时间体系就会崩溃。所以可靠的NTP配置一定要加认证。华为设备的NTP认证配置[Huawei] ntp-service authentication enable [Huawei] ntp-service authentication-keyid 1 authentication-mode md5 cipher HuaweiTime [Huawei] ntp-service reliable authentication-keyid 1 [Huawei] ntp-service unicast-server 192.168.10.10 authentication-keyid 1配置分四步全局开启认证、定义一个密钥ID和密码、把这个密钥设为可信密钥、在客户端服务器配置里引用这个密钥。华三的命令几乎一致[H3C] ntp-service authentication enable [H3C] ntp-service authentication-keyid 1 authentication-mode md5 cipher H3CTime [H3C] ntp-service reliable authentication-keyid 1 [H3C] ntp-service unicast-server 192.168.10.10 authentication-keyid 1注意服务器端也要配置相同的密钥ID和密码否则认证失败设备之间无法完成时间协商。我在实际配置中经常看到有人只配了客户端没配服务器端结果display ntp-service status里一直报认证失败这个细节很值得提醒。另一个进阶配置是指定源接口。设备上可能有多个接口、多个VRF如果不指定NTP报文的源接口系统会选择最优路由对应的接口作为源地址。这在某些复杂拓扑里会导致时间服务器回包被策略拦掉。指定源接口可以让时间同步流量走固定路径[Huawei] ntp-service source-interface Vlanif 10华三的接口名习惯不同注意是Vlan-interface而不是Vlanif[H3C] ntp-service source-interface Vlan-interface 10这个差异特别容易在双平台环境中搞混华为叫Vlanif华三叫Vlan-interface本质是一个东西但名字不同。配完源接口后时间服务器的回包只会发到该接口所在网段排查起来也方便得多。4. 配置验证与疑难排错从display命令到常见问题4.1 display ntp-service命令输出怎么看配置完NTP不是就完事了必须验证同步状态。华为设备上最常用的查看命令是Huawei display ntp-service status输出会有一段关键信息我直接拿一个正常状态的例子说明clock status: synchronized clock stratum: 3 reference clock ID: 192.168.10.10 nominal frequency: 250.0000 Hz actual frequency: 250.0000 Hz clock precision: 2^16 clock offset: 0.0000 ms root delay: 15.32 ms root dispersion: 4.09 ms peer dispersion: 3.20 ms重点看三行clock status必须是synchronized如果是unsynchronized说明没同步上clock stratum正常应该比时间源高1层如果显示16代表设备认为没有可用时间源reference clock ID显示的是当前同步的时间源地址如果这个地址不是你预期的那台服务器说明设备选错源了。想看得更细可以用Huawei display ntp-service sessions这个命令列出设备当前所有NTP会话每条会话里能看到remote、local、reach、poll、offset、delay这些字段。reach是一个八进制计数器用来统计最近八次探测的响应情况。如果reach的值是0说明一次都没回应过网络基本不通如果reach变成377这种满值说明时间服务器响应正常。offset是本地时钟和时间源的差值单位毫秒正常情况下应该很小超过几百毫秒就要关注了。华三设备的查看命令别搞混Comware V5和V7的写法类似H3C display ntp-service status同样看clock status和clock stratum。华三的输出里有时会出现clock offset为0但状态不是synchronized的情况这通常是设备刚刚配置NTP还没完成第一轮协商等几分钟再看就好了。4.2 常见时间配置故障速查表我在这个表里整理了几类高频问题、排查方向和解决思路都是实际项目里反复用到的现象可能原因排查方向设备状态显示unsynchronized网络不可达或UDP 123被ACL拦截ping时间源地址检查中间设备ACL能ping通但一直同步不上NTP版本不匹配或认证失败指定version 3检查认证密钥是否一致时钟同步了但时间显示差8小时时区未配置或配置错误执行clock timezone BJ add 08:00:00重启后时间回到2000年板载RTC电池耗尽更换硬件电池启NTP自动恢复reach值不稳定或为0链路丢包或NTP报文被策略丢弃连续ping测试检查QoS策略和ACLstratum值显示16设备认为没有合法时间源确认源地址配了正确的keyid且密钥可信多个NTP源时方向混乱配置了多个服务器没规划主备只保留核心两台合理配置Stratum层级认证提示失败双方keyid或密码不匹配display ntp-service status查看认证失败计数排查时间问题时我的习惯是先看最基础的网络连通性直接ping时间源。如果ping得通再看设备上有没有ACL或安全策略挡了UDP 123端口。很多二层三层交换机之间的NTP不通不是命令写错而是中间设备的安全策略没放行NTP报文。注意NTP走的是UDP 123端口不是TCP。4.3 模拟器环境里的时间配置特殊注意事项用eNSP和HCL做实验时时间配置的坑和真机完全不一样。eNSP里的华为设备默认时间通常和宿主机一致但虚拟设备之间互相做NTP同步时有时会因为模拟器的时间推进机制和真实NTP算法不匹配出现同步很慢甚至不同步的现象。我自己在eNSP里做实验的体会是如果只是为了验证NTP配置生效可以先手动把两台设备的时间故意错开再配置NTP观察设备能否慢慢靠近。但模拟器里的clock datetime设置比较随意NTP同步可能需要几分钟甚至更久不要一看到unsynchronized就急着改配置。HCL模拟器里华三设备的表现也类似虚拟设备没有真实的RTC时间完全靠宿主机的CPU时钟模拟精度和真实设备相比差距明显。所以模拟器的定位就是验证命令语法和配置流程验证完以后关于时间精度、同步状态这些指标还是以真机为准。不要在模拟器上纠结时间差了几十毫秒那是模拟环境正常的误差。5. 我在现网折腾时间配置踩过的一些坑5.1 三个真实教训第一个教训是刚入行时候的事。一台华为交换机需要对接第三方NTP服务器我配置了服务器地址状态也显示synchronized但时间始终差了一个多小时。我排查了网络、ACL、版本折腾半天发现是NTP服务器本身是另一个时区的时间源它把本地时间当成了UTC返回给我。这不是设备的问题是时间源的问题。从那以后我每次对接新的NTP服务器都会先在一台测试设备上验证它返回的时间基准对不对再批量下发。第二个教训是华三设备的ntp-service master如果配了不设Stratum默认值会让客户端把它当成高精度源。有一次我把一台普通的接入交换机设成了master还忘了指定层级结果全网几台设备都向它同步而那台交换机的本地时钟本身就不准。第二天巡检时发现所有设备时间都慢了两分钟。这个事故之后我给自己定了个规矩不用ntp-service master做生产授时除非时间源是GPS或铷钟普通交换机做master只能是临时兜底而且必须指定Stratum为5以上。第三个教训是关于配置文件迁移的。华三Comware V5升级到V7时NTP相关命令大部分兼容但部分display命令的输出字段变了监控脚本里正则表达式没更新导致网管系统误报时间同步失败。这个不算配置错误但提醒我在升级前一定要检查监控脚本的兼容性而不只是看设备侧命令能不能敲进去。5.2 落地建议与个人习惯每次在华为和华三设备上调完时间我都会顺手在笔记本上记录一份“时间配置速查表”因为这两个平台的命令真的只有细微差别却年年有人栽跟头。我的速查表其实就是三行华为VRP的clock datetime用短横线华三Comware用斜杠两家的NTP命令都叫ntp-service开头接口名华为叫Vlanif华三叫Vlan-interface。记熟这三条双平台的时间配置基本不会出错。另外生产环境里如果暂时没有可靠的外部NTP源我会宁愿先手工把全网时间校准到同一基准也不要让每个设备各自为政。靠着“大家看起来都差不多”的想法拖一天日志和告警就会乱一天。折腾过几次因为时间对不上导致的证书和认证事故之后你就明白全网时间统一这件事真值得排在配置项的前面。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表