NTP
RouterOS 的 NTP 文档涵盖客户端和服务器配置,包括启用的模式、支持 IPv4/IPv6 的服务器列表、VRF 设置、身份验证密钥,以及频率漂移和已同步 stratum 等状态监控。它还警告不要将本地时钟用于精确计时,并列出了 NTP 日志消息。
NTP
RouterOS 主软件包包含网络时间协议(NTP)客户端和服务器功能,基于 RFC5905。
NTP 客户端属性
客户端配置位于 /system/ntp/client
| 属性 | 描述 |
|---|---|
| enabled (yes, no default: no) | 启用 NTP 客户端进行时间同步 |
| mode (broadcast, manycast, multicast, unicast) | NTP 客户端将运行的运行模式 |
| NTP servers | NTP 服务器列表。可以添加静态条目。接受以下格式: - FQDN(如果地址被解析,"Resolved Address" 将出现在 "Servers" 窗口的相应列中)或可以使用 IP 地址。如果 DHCP-Client 属性 use-peer-ntp=yes - 由 DHCP 通告的动态条目 - ipv4 - ipv4@vrf - ipv6 - ipv6@vrf - ipv6-linklocal%interface |
| vrf (default: main) | 虚拟路由和转发 |
| Servers (Button/Section) | 动态和静态添加的 NTP 服务器的详细表(Address、Resolved address、Min Poll、Max Poll、iBurst、Auth. Key)。要使用其 FQDN 设置 NTP 服务器。每次发送 NTP 请求时都会解析域名。路由器必须配置 /ip/dns。 |
| Peers | 当前参数值 [admin@ntp-example_v7] > /system/ntp/monitor-peers``type="ucast-client" address=x.x.x.x refid="y.y.y.y" stratum=3 hpoll=10 ppoll=10 root-delay=28.869 ms root-disp=50.994 ms``offset=-0.973 ms delay=0.522 ms disp=15.032 ms jitter=0.521 ms``-- [Q quit D dump C-z pause] |
| Keys | NTP 对称密钥,用于 NTP 客户端和服务器之间的身份验证。Key Identifier (Key ID) - 标识用于生成消息认证码的加密密钥的整数。 |
状态
- synchronized, stopped, waiting, using-local-clock - NTP 客户端的当前状态。
- Frequency drift - 单位时间内的分数频率漂移。
- synced-server - NTP 服务器的 IP 地址。
- synced-stratum - 每个服务器的准确性由一个称为 stratum 的数字定义,最顶层(主服务器)分配为 1,层级中向下的每一级(辅助服务器)分配为比上一级大 1。
- system-offset - 这是一个有符号定点数,表示 NTP 服务器时钟相对于本地时钟的偏移,单位为秒。
NTP 客户端服务器属性
客户端配置位于 /system/ntp/client/servers
| 属性 | 描述 |
|---|---|
| enabled (yes | no; Default: yes) | 启用 NTP 客户端服务器。 |
| comment (string; Default: ) | 条目的描述性名称。 |
| address (IPv4 address [IPv4], IPv6 address [IPv6], Domain name; Default: ) | NTP 服务器的 IP 地址或域名。 |
| resolved-address (IPv4 address [IPv4], IPv6 address [IPv6]; Default: ) | 域名解析后获得的 NTP 服务器实际 IP 地址。 |
| min-poll (integer: 3..17; Default: 6) | 确定 NTP 查询之间的最短间隔(以秒为单位的 2 的幂)。更详细的信息可在 RFC5905 中找到。 |
| max-poll (integer: 3..17; Default: 10) | 确定 NTP 查询之间的最长间隔(以秒为单位的 2 的幂)。更详细的信息可在 RFC5905 中找到。 |
| iburst(yes | no; Default: yes) | 确定初始突发是禁用还是启用。IBurst 告诉 NTP 客户端仅在启动时发送快速的数据包突发。更详细的信息可在 RFC5905 中找到。 |
| auth-key (default value: none) | NTP 对称密钥,用于 NTP 客户端和服务器之间的身份验证。Key Identifier (Key ID) - 标识用于生成消息认证码的加密密钥的整数。 |
NTP 服务器设置
服务器配置位于 /system/ntp/server
| 属性 | 描述 |
|---|---|
| enabled (yes or no; default value: no) | 启用 NTP 服务器 |
| broadcast (yes or no; default value: no) | 启用某个 NTP 服务器模式,要使此模式工作,您必须设置 broadcast-addresses 字段 |
| multicast (yes or no; default value: no) | 启用某个 NTP 服务器模式 |
| manycast (yes or no; default value: no) | 启用某个 NTP 服务器模式 |
| broadcast-addresses (IP address; default value: ) | 设置用于 NTP 服务器广播模式的广播地址 |
| vrf (default: main) | 虚拟路由和转发 |
| use-local-clock (yes or no; default value: no) | 如果没有其他可用时间源,服务器将提供其本地系统时间作为有效时间。 |
| local-clock-stratum | 如果 use-local-clock=yes,则手动设置 stratum |
| auth-key (default value: none) | NTP 对称密钥,用于 NTP 客户端和服务器之间的身份验证。Key Identifier (Key ID) - 标识用于生成消息认证码的加密密钥的整数。 |
危险
如果使用 use-local-clock,请注意路由器的内部 CPU 时钟不是用于精确计时操作的可靠时间源,因为其频率可能因电源管理、温度条件和硬件差异而变化,即使型号相同也是如此。这种变化是预期内的,不影响路由器的正常运行。为获得准确计时,建议使用基于网络的时间同步,例如 NTP(Network Time Protocol)。
日志消息
SNTP 客户端可以产生以下日志消息。请参阅文章 "log" 了解如何设置日志以及如何检查日志。
- ntp,debug 按 OFFS 逐步调整。
- ntp,debug 按 OFFS 立即调整。
- ntp,debug 等待 N 秒后再发送下一条消息。
- ntp,debug 等待 N 秒后重启。
- ntp,debug,packet 数据包收到错误,正在重启。
- ntp,debug,packet 收到 PKT。
- ntp,debug,packet 忽略收到的 PKT。
- ntp,debug,packet 发送到 IP 时出错,正在重启。
- ntp,debug,packet 发送到 IP PKT。
日志消息字段说明
- OFFS - 两个 NTP 时间戳值的差值,以十六进制表示。
- PKT - NTP 数据包的转储。如果数据包短于最小 48 字节,则作为十六进制字符串转储。否则,数据包作为字段名和值的列表转储,每个日志行一个。字段名遵循 RFC4330。
- IP - 远程 IP 地址。
注意:上述日志记录规则仅适用于内置的 SNTP 客户端;单独的 NTP 软件包没有任何日志记录功能。