关于ntp时间源的优先级问题

简介

NTP服务,理论上可以精确到纳秒,但是实际的精确程度根据操作系统和设备而不同。‘

NTP守护进程不仅可以调整自己计算机的系统时间。此外,每个守护进程可以是其他NTP守护进程的客户端、服务器或对等端:

  • 作为客户端,它从一个或多个服务器查询参考时间。
  • 作为服务器,它将自己的时间作为其他客户机的参考时间。
  • 作为对等体,它将自己的系统时间与其他对等体进行比较,直到所有对等体最终同意要同步的“真实”时间。

这些特性可用于建立分层时间同步结构。时间同步结构的层次结构称为层状结构。层数越小,在层次结构中级别就越高。在层次结构的顶端有一个守护进程,它有最准确的时间,因此最小的stratum数。

默认情况下,守护进程的stratum 级别总是比它的参考时间源的stratum低一级。顶级守护进程通常使用无线电时钟作为参考时间源。默认情况下,无线电时钟的层数为0,因此使用该无线电时钟作为参考时间的守护进程将是1层时间服务器,它在NTP层次结构中具有最高的优先级。在大型网络中,安装一个或多个一级时间服务器是一种很好的做法,它使每个部门的几台服务器计算机可以获得参考时间。这样各部门的服务器就成为了二级时间服务器,可以作为各部门的工作站和其他网络设备的参考时间源。

与电信应用中使用的词不同,例如,根据它们的绝对精度对振荡器进行分类,NTP上下文中的术语stratum并不表示某一类精度,它只是层次结构级别的一个指标。

每个NTP守护进程可以配置为使用几个独立的参考时间源。每个参考时间源在一定的间隔内被周期性地查询(轮询),然后时间源被划分为时间一致的时间源组。这允许一组“好的”时间源(NTP术语中的truechimers)对一组较小的“坏的”时间源(所谓的folsetickers)进行投票。然后从truechimers组中选择所谓的系统同伴。

配置

ntp守护进程从名为ntp.conf的文件中读取配置。Unix系统中此文件在/etc文件夹下。

在大多数安装中,ntp.conf文件至少包含一个或多个以关键字server开头的行。每一行指定一个参考时间源,它可以是网络上的另一台计算机,也可以是连接到本地计算机的无线电时钟。

参考时间源使用IP地址或主机名指定,这些地址或主机名可以由名称服务器解析。如果一个IP地址代表网络上的一个真实节点,那么NTP守护进程假定另一个NTP守护进程运行在具有该地址的计算机上。此外,NTP还使用一些伪IP地址来指定特殊的参考时间源。

例如,NTP使用的伪IP地址为127.127.8.n 访问安装在本地计算机上的Meinberg无线电时钟。为了访问自己的系统时钟(也称为本地时钟),NTP使用伪IP地址127.127.1.0。这个IP地址不能与127.0.0.1混淆,127.0.0.1是本地主机的IP,即计算机的环回接口。

配置无线电时钟

在类unix系统上,解析驱动程序用于从Meinberg制造的参考时钟中读取时间,并通过串行端口连接。解析驱动程序是NTP包的一部分,但必须在编译NTP包时显式激活。大多数Linux发行版都带有一个预编译的NTP包,其中已启用了解析驱动程序。但是,旧Solaris版本附带的NTP包是在没有解析驱动程序的情况下构建的。

在Meinberg软件下载页面上还有一个用于Meinberg PC插件卡的Linux驱动程序。除了配置和监控插件卡的方法之外,这个驱动程序还提供了一个软件接口,允许NTP的解析驱动程序从插件卡读取参考时间,而不是通过Linux下的串行端口。通过串行端口直接连接的设备不需要这个驱动程序。

下面描述的配置步骤必须由在系统上具有足够权限的用户完成,例如root。解析驱动程序通过符号链接/dev/refclock-n访问无线电时钟,其中n是0到3范围内的索引数,因为解析驱动程序可以同时处理多达四个参考时钟。

每个符号链路必须指向一个代表现有无线电时钟的物理设备。在大多数情况下,物理设备是串行的已对外连接无线电时钟的端口。然而,在Linux下,这个链接也可以指向一个代表插件卡的设备节点。

每个参考时钟也必须在ntp.conf文件中使用伪IP地址127.127.8.n的服务器行指定。n必须与上面提到的符号设备名/dev/refclock-n对应的索引号。

伪IP地址必须后跟mode m参数,该参数指定设备所代表的无线电时钟类型。的下表列出了可以与Meinberg无线电时钟一起使用的模式值:

例如,如果将单个无线电时钟连接到串行端口/dev/ttySo,则必须使用该命令为时钟设置符号链接

ln -s /dev/ttyS0 /dev/refclock-0
server 127.127.1.0# local clock
fudge 127.127.1.0 stratum 0 # disciplined by radio clock

Configuration of computers without external reference clock is quite simple. For each computer which is to be used as reference time source, a line must be added to the file ntp.conf. Additionally, the computer’s local clock can configured to be used by the NTP service if none of the other time servers on the network can be reached. Since the time servers on the network shall be preferred, the local clock’s stratum should be forced to a high number:

server 127.127.1.0# local clock
fudge 127.127.1.0 stratum 12# not disciplined
server ntp_server_1 iburst
server ntp_server_2 iburst
server ...

where ntp_server_1, ntp_server_2, etc. must be the real host names or IP addresses of existing NTP servers. The keyword iburst causes quick synchronization at program start. Older NTP versions do not support iburst.

[应用摘自:https://www.meinbergglobal.com/english/info/ntp.htm]

没有外部参考时钟的计算机配置非常简单。对于要用作参考时间源的每台计算机,必须在ntp.conf文件中添加一行。此外,如果网络上没有其他时间服务器,可以将计算机的本地时钟配置为由NTP服务使用。由于需要优先选择网络上的时间服务器,因此需要将本地时钟的strotum强制设置为较大的数字:

server 127.127.1.0# local clock
fudge 127.127.1.0 stratum 12# not disciplined
server ntp_server_1 iburst
server ntp_server_2 iburst
server ...

由上述描述可知,如果希望某些时钟源不被优先选择就将stratum设置为较大的值。

其中“ntp_server_1”、“ntp_server_2”等必须为已存在的NTP服务器的真实主机名或IP地址。关键字iburst在程序启动时引起快速同步。旧的NTP版本不支持iburst。

其他配置选项

在运行过程中,NTP守护进程计算系统时钟相对于参考时间的漂移。守护进程可以将漂移速率保存到一个文件中,以便在下次重新启动时可用。如果守护进程需要维护漂移文件以提高同步速度,则必须通过添加如下行来指定该文件的位置

driftfile /etc/ntp.drift

添加以上配置到ntp.conf文件

https://kb.meinbergglobal.com/kb/time_sync/ntp/ntp_official_documentation/start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

59 分割等和子集

分割等和子集 NP 完全问题(01背包)题解1 二维DP题解2 空间优化DP(改为1D) 给你一个只包含正整数的非空数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入&a…

Cdiscount、亚马逊新品不开单怎么办 ?测评自养号关键之处及搭建技巧揭秘

一、Listing如何优化? 一个产品要想有销量,Listing优化必须得做好,这是形成转化产生订单的基础。 有些卖家误以为“反复修改了N次”就叫做“优化”,这绝对是误解 想要做好Listing优化,需要知道优化的基本标准,同时…

私人服务器可以干嘛

目录 搭建个人网站或博客: 远程桌面: 作为网盘储存: 作为测试和学习环境: 推广产品: 游戏私服(注意,仅限于个人自己单机玩): 个人服务器可以用于多种用途,以下是一些常见的用途:…

【k8s】1、基础概念和架构及组件

一、kubernetes概述 K8S是一种开源的容器编排平台,用于自动化部署、扩展和管理容器化的应用程序,它提供了一种容器编排和管理的方式,可以帮助开发人员更轻松的管理容器化的应用程序,并且提供了一种跨多个主机的自动化部署和管理机…

chrome Driver 使用教程

ChromeDriver是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作。 ## 下载地址 [Chrome for Testing availability](Chrome for Testing availability)

六氟化硫SF6断路器的运行维护、泄漏处理及气体在线监测

一、六氟化硫SF6断路器日常运行维护 1、SF6断路器在运行、检修过程中,一定要遵守《DL/T 639-1997 六氟化硫电气设备运行、试验及检修人员安全防护细则》。   2、运行中的巡视检查包括:  (1)检查SF6 断路器的外绝缘部分&#xf…

CORE: Cooperative Reconstruction for Multi-Agent Perception 论文阅读

论文连接 CORE: Cooperative Reconstruction for Multi-Agent Perception 0. 摘要 本文提出了 CORE,一种概念简单、有效且通信高效的多智能体协作感知模型。 从合作重建的新颖角度解决了该任务: 合作主体共同提供对环境的更全面的观察整体观察可以作为…

Hive用户中文使用手册系列(二)

命令和 CLI 语言手册命令 命令是 non-SQL statements,例如设置 property 或添加资源。它们可以在 HiveQL 脚本中使用,也可以直接在CLI或Beeline中使用。 命令描述退出使用 quit 或 exit 退出交互式 shell。重启将 configuration 重置为默认值(从 Hive…

【STM32】--PZ6860L,STM32F4,ARM3.0开发板

一、ARM3.0开发板详细介绍 1.开发板整体介绍 (1)各种外设和主板原理图 (2)主板供电部分5V和3.3V兼容设计 注意跳线帽 2.STM32核心板介绍 3.核心板原理图 STM32和51的IO对应关系 下载电路 二、ARM3.0开发板ISP下载原理分析 1.I…

Go语言入门心法(六): HTTP面向客户端|服务端编程

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 一:go语言面向web编程认知 Go语言的最大优势在于并发与性能,其性能可以媲美C和C,并发在网络编程中更是至关重要 使用http发送请…

android开源投屏工具scrcpy简介

目录 一,初识scrcpy 1.1 scrcpy介绍 1.2 scrcpy特点 二,scrcpy指令说明 2.1 画面设置 2.1.1 缩小分辨率 2.1.2 修改画面比特率 2.1.3 限制画面帧率 2.1.4 画面裁剪 2.1.5 锁定屏幕朝向 2.2 屏幕录制 2.3 连接方式 2.3.1 无线 2.3.2 多设备…

Ai数字人直播系统SaaS源码大开源,源码独立部署助力中小企业发展!

源码独立部署ai数字人直播系统,如果放在上半年的话没有数百万投资几乎是天方夜谭,连想做个数字人代理商少则投资十万多则数十万才能进得了代理门槛。在此期间,数字人市场一度出现了大批不良企业利用网上下载的视频合成源码二次包装后打着数字…

5.MidBook项目经验之MongoDB,Nacos,网关

1.医院查询接口 //系统1(signsignMD5加密后) ----> 系统2(数据库signMD5加密 相对比),好处在于网络之间传输不会得到直接得到sign 2.上传和删除科室信息 //map转jsonString,然后再转为对象//保存需要查数据库是否存在,存在修改,不存在添加//接口的包引入不对导致调用引包错误…

三级分类部分三级目录无法加载,后端接口能在前端返回所有数据

项目场景: 实现ElementUI中三级分类的功能,发现没有前端三级目录的二级目录可以新建三级目录,数据库中也有数据,但是无法在前端显示!后端的接口没有返回数据库的数据。 问题描述 提示:这里描述项目中遇到…

代码随想录算法训练营第五十七天| LeetCode 392 判断子序列、LeetCode 115 不同的子序列

1 LeetCode 392 判断子序列 题目链接:LeetCode 392 判断子序列 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划,用相似思路解决复杂问题 | LeetCode:392.判断子序列 2 LeetCode 115 不同的子序列 题目链接…

群狼调研(长沙消费者满意度调查) | 参展观众满意度调查流程

进行参展观众满意度调查需要一个系统化的流程,以确保数据的收集和分析有效、可靠。群狼调研(长沙大学满意度调查)受顾客委托开展参展观众满意度调查,以下是进行参展观众满意度调查的一般流程: 1. 确定调查目标和目的: 明确为何进…

selenium多窗口、多iframe切换、alert、3种等待

1、多标签/多窗口之间的切换 场景: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这种情况下,需要识别多标签或窗口的情况。 操作方法: switch_to.window()方法:切换…

c 语言基础:L1-045 宇宙无敌大招呼

据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”,跟这个世界打个招呼。作为天梯赛中的程序员,你写的程序得高级一点,要能跟任意指定的星球打招呼。 输入格式: 输入在第一行给出一个星球的名字S,是…

【Eclipse】解决插件下载速度太慢

解决方案:修改镜像 下面列出几个国内的镜像网站: 中国科学技术大学(5.6MB/s) http://mirrors.ustc.edu.cn/eclipse/ 北京理工大学(600KB/s) http://mirror.bit.edu.cn/eclipse/ 大连东软信息学院(400KB/s) http://mirrors.neuso…

Dolphinscheduler的API接口问题

在使用java 调用dolphinscheduler的API接口时要注意的事项: 1:官方文档中写的是使用ui界面创建token,然后将token设置在header中,但是如果没有这个token怎么办?因为在一个陌生的环境中,一般没人会记这个to…