Wireshark TS | Linux 系统对时问题

问题描述

节前业务运维同事提交了一个 case ,说是部署在新业务区域的 Linux 服务器和老业务区域的 Linux 服务器无法对时,脚本里使用的是 clockdiff 命令,无法正常返回结果,而在老业务区域两台服务器之间执行命令就正常,因为跨业务区域就有问题,所以怀疑是网络或是安全上有问题,而新老区域之间并无防火墙,排除掉,遂进入疑似网络故障分析。

问题分析

拿到这样一个问题,基于经验,可以简单梳理出以下处理步骤:

  1. 新老网络环境区别;
  2. clockdiff 实现原理;
  3. 故障复现和验证;
  4. 网络抓包分析。

新老网络环境区别

老业务区域网络环境为全思科设备,由于国产化替代趋势,新业务区域网络环境为全华为设备,仅此区别,也都是传统基础路由交换环境,配置上并无任何特殊之处。如果能排除服务器或操作系统的问题,那么问题就有可能出现在思科或华为网络设备上。

clockdiff 实现原理

clockdiff 命令用于测量两个主机之间的时钟差异,具体来说 clockdiff 是使用 ICMP 时间戳报文或使用 ICMP ECHO 的 IP 时间戳选项,以 1ms 精度测量两者之间的时钟差。

使用 ICMP 时间戳报文
clockdiff 10.1.1.1使用 ICMP ECHO 的 IP 时间戳选项
clockdiff -o 10.1.1.1

Linux clockdiff 命令参考:https://linux.die.net/man/8/clockdiff

故障复现和验证

进一步和业务运维同事明确了故障环境和现象,补充了一点说是在老业务区域下成功的两台服务器是同一网段,且命令是加参数的 -o 。
基于上述情况,临时申请了几台新老环境下的虚机服务器,用于验证。验证方式很简单,clockdiff 命令执行的成功否类似网络中的通或者不通,故障很好复现,也很方便抓包排障。

测试环境和验证结果:

执行命令网络环境(思科)网络环境(华为)
同网段不同网段同网段不同网段
clockdiff成功成功成功成功
clockdiff -o成功失败成功成功

验证结果初步说明可能是思科区域核心网关交换机的问题,同网段二层交换机时正常,只有跨网段三层路由时有问题,而且只有加了参数 -o 也就是使用 IP 时间戳选项时有问题。

网络抓包分析

思科同网段

  1. 在虚机服务器上执行 clockdiff 成功的现象和抓包结果,如下:
[root@10-1-1-1 ~]$ clockdiff 10.1.1.2
.
host=10.1.1.2 rtt=750(187)ms/0ms delta=22ms/22ms Sun Jan 29 15:34:00 2023
[root@10-1-1-1 ~]$

clockdiff 命令 ICMP 数据包类型为 Timestamp request(Type 13)Timestamp reply (Type 14)

image.png

image.png

  1. 在虚机服务器上执行 clockdiff -o 成功的现象和抓包结果,如下:
[root@10-1-1-1 ~]$ clockdiff -o 10.1.1.2
..
host=10.1.1.2 rtt=562(280)ms/0ms delta=23ms/23ms Sun Jan 29 15:34:05 2023
[root@10-1-1-1 ~]$

clockdiff -o 命令 ICMP 数据包类型实际为普通的 Echo request(Type 8)Echo reply (Type 0),区别是在 IPv4 Options 上使用 Time Stamp。

image.png

image.png

思科不同网段

在虚机服务器上执行 clockdiff 成功和 clockdiff -o 失败的现象,如下:

[root@10-1-1-1 ~]$ clockdiff 10.2.1.1
.
host=10.2.1.1 rtt=750(187)ms/0ms delta=1ms/1ms Sun Jan 29 15:34:16 2023
[root@10-1-1-1 ~]$ clockdiff -o 10.2.1.1
10.2.1.1 is down
[root@10-1-1-1 ~]$ 

从抓包结果来说:

  1. clockdiff 命令不同网段执行没有区别, ICMP 数据包类型仍为 Timestamp request(Type 13)Timestamp reply (Type 14),结果成功;
  2. clockdiff -o 命令不同网段执行结果失败,源服务器抓包可以看到 ICMP Echo request (Type 8)发出,但是在目的服务器上并没有抓到任何请求包,因此判断为思科区域核心网关交换机丢包

image.png

问题总结

经测试环境实际验证,判断为思科区域核心网关交换机疑似不识别 IPv4 Options 里的 TimeStamp 字段,从而造成丢包。后向原厂开 case 沟通,确认说是 N9K 网关不支持 IPv4 Options 里的时间戳的 standard timestamps,导致丢弃,同时查询内部信息,目前暂没有计划支持,也没有相关的支持配置命令,Over。

参考:

  1. 在 linux.die.net clockdiff 命令参考页面,还有一句貌似相关的注释:Some nodes (Cisco) use non-standard timestamps, which is allowed by RFC, but makes timestamps mostly useless.
  2. RFC 791 Options: variable,The options may appear or not in datagrams. They must be implemented by all IP modules (host and gateways). What is optional is their transmission in any particular datagram, not their implementation.

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【笔记】深度学习入门:基于Python的理论与实现(三)

误差反向传播法 一 个能够高效计算权重参数的梯度的方法 计算图 正向传播 太郎在超市买了 2 个 100 日元一个的苹果,消费税是 10%,请计 算支付金额。 反向传播(导数) 如果苹果的价格增加某个微小值, 则最终的支付金额…

【JavaSE】实用类——String、日期等

目录 String类常用方法String类的equals()方法String中equals()源码展示 “”和equals()有什么区别呢? StringBuffer类常用构造方法常用方法代码示例 面试题:String类、StringBuffer类和StringBuilder类的区别?日期类Date类Calendar类代码示例…

Redis学习------实战篇----2024/02/27

1.导入项目 2.基于Session实现登录 手机验证码完整实现 /*** 发送验证码* param phone* param session* return*/Overridepublic Result sendCode(String phone, HttpSession session) {//1.校验手机号if(RegexUtils.isPhoneInvalid(phone)){//2.如果不符合,返回错…

非常好!超齐全的故障诊断数据集及相关实验平台介绍

故障诊断数据集目录 一. 故障诊断数据集库介绍 二. 轴承故障诊断数据集 1.美国-凯斯西储大学轴承数据中心轴承数据集 2.SUDA试验台数据集 3.美国-机械故障预防技术学会MFPT 4.德国-帕德伯恩大学Paderborn轴承数据集 5.SDUST山东科技大学数据集 6.SEU东南大学轴承数据集 …

ARMv8-AArch64 的异常处理模型详解之异常处理详解(同步异常和异步异常的分析和处理)

这里写目录标题 一,同步异常的分析1.1 同步异常分析-异常链接寄存器ELR1.2 同步异常分析-异常综合寄存器ESR,Exception Syndrome Register1.3 同步异常分析-错误地址寄存器FAR,Fault Address Register 二, 同步异常的处理示例 Synchronous ex…

windows 11+docker desktop+grafana+influxDB+python写入

下载安装docker desktop 出现WSL相关的错误。WSL是一个linux内核的子系统,docker是基于linux内核的,所以运行docker需要WSL。 以管理员权限打开powershell,查看WSL状态 wsl --status 我遇到的错误是因为我关闭了windows的某些更新 执行上…

SAP Business Technology Platform (BTP)的架构理解

长期以来,我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 - SAP Business Technology Platform (以下简称BTP)纯有各种疑惑,借此机会借助我原来作为SAP内部IT开发的经验和近期一年来在客户前线的经验,简要聊一下我对BTP的架构理…

工厂安全智能巡检机器人系统开发及其对您的价值体现

在工厂生产环境中,安全生产一直是业主、采购商以及中间商们十分关注的焦点。为了提升工厂生产线的安全性、效率和可追溯性,一款工厂安全智能巡检机器人系统应运而生,旨在为需求方带来全新的生产安全管理模式。 自动巡检增加效率 传统的工厂…

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中,企业经常需要在国内访问国外的服务器。然而,由于地理位置和网络架构的限制,这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN(软件定义广域网)技术的兴起,为企业提供了一种新的解…

大文件传输之udp如何传输大量数据

在数字化时代,对大文件传输的需求正以前所未有的速度增长。无论是个人用户还是企业,都急切寻求一种能够快速且稳定地处理大量数据的传输方法。UDP(用户数据报协议)以其无连接的特性和高效的数据传输能力,成为了大文件传…

C语言自定义数据类型(三)结构体指针

所谓结构体指针就是指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么,这个指针变量就指向该结构体变量。 目录 一、指向结构体变量的指针 1.1举例说明 …

就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ----------------…

【吴恩达·机器学习】第四章:详解神经网络:推理和训练

博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024每日一言🌼: 勇敢的人,不是不落泪的人,而是愿意含着泪继续奔跑的人。 ——《朗读者》 0、声明 本系列博客文章是博主本人根据吴…

RubyMine 2023:让Ruby编程变得更简单 mac/win版

JetBrains RubyMine 2023是一款专为Ruby开发者打造的强大集成开发环境(IDE)。这款工具集成了许多先进的功能,旨在提高Ruby编程的效率和生产力。 RubyMine 2023软件获取 RubyMine 2023的智能代码编辑器提供了丰富的代码补全和提示功能&#…

深度学习基础(三)循环神经网络(RNN)

之前的章节我们初步介绍了卷积神经网络(CNN): 深度学习基础(二)卷积神经网络(CNN)-CSDN博客文章浏览阅读2次。卷积神经网络(CNN)的应用领域广泛,尤其在图像处…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

git push提交后GitHub没有统计我的Contributions

我在家里的电脑上创建了一个仓库,然后在笔记本上录取下来并进行提交合并等操作,但是发现笔记本上提交的记录并没有被github记录,就是那个绿色的点没有 就是提交完之后 没有出现当天的绿色的点 通过git log 后发现,提交记录中存在…

【pytorch】常用代码

文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…

Yolov8有效涨点:YOLOv8-AM,添加多种注意力模块提高检测精度,含代码,超详细

前言 2023 年,Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次介绍的是YOLOv8-AM,它将注意力机制融入到原始的YOLOv8架构中。具体来说,我们分别采用四个注意力模块:卷积块注意力模块…

《猎冰》难以狂飙,2024年开年剧集没有爆款

从2022年开始,剧集开年一爆成为惯例。 这很大程度取决于当时的环境。由于疫情原因,更多用户选择在家娱乐,剧集成为了家人、朋友相处间最好的娱乐消费品。 优秀的剧集,在多人共同的认可下得以快速传播。 也因为此,20…