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://www.mzph.cn/news/705816.shtml

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

相关文章

桥接模式(Bridge Pattern)

桥接模式(Bridge Pattern) 定义 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 属于结构性模式 理解 合成/聚合复用原则的具体实现,将一个整体的多个实现部分独立出来,每个部分都可以独立的变化&#x…

OSI参考模型和TCP/IP网络参考模型

1、OSI参考模型 1.1 产生背景 为了解决网络之间的兼容性问题,实现网络设备间的相互通讯,国际标准化组织ISO于1984年提出了OSIRM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI参考模型很快成为计算机网络通信的基础模型。由于种种原因,并没有…

android stadio通过wifi热点 adb连接android

问题:有时后忘记带android usb线了,但需要调试 解决办法: 1、准备开发工具adb,需要到sdk下的platform-tools的目录下,或者把这个目录加到系统path里,我的是D:\android\sdk\platform-tools这个目录&#x…

Mysql整理-Mysql事务

MySQL中的事务是一组顺序执行的数据库操作,要么完全执行,要么完全不执行。事务是数据库管理的一个重要概念,尤其是在确保数据完整性和一致性方面。MySQL中的事务遵循ACID属性,这是事务性数据库系统的四个关键特性: 原子性(Atomicity):事务内的所有操作都是作为一个单一…

linux系统---nginx(2)rewrite重写功能

目录 一、rewrite概述 1、rewrite功能 2、跳转场景 二、标准配置指令 1、rewrite日志记录指令 2、未初始化变量告警日志记录指令 3、rewrite 指令 3.1 正则表达式 三、rewrite模块使用实例 1.基于域名的跳转 一、rewrite概述 1、rewrite功能 访问重写 rewrite 是 …

sql 分割字段,并分行

创建测试表格 CREATE TABLE test (id INT PRIMARY KEY, data VARCHAR(100)); INSERT INTO test VALUES (1, A,B,C); INSERT INTO test VALUES (2, D,E,F,G);查询并分割字段 SELECT id, value AS split_data FROM test CROSS APPLY STRING_SPLIT(data, ,) WHERE LEN(value) …

11个Linux性能分析命令

Linux性能分析命令有很多,不同的命令可以用来监控不同的系统资源和活动。根据您的问题,我为您推荐以下11个常用的Linux性能分析命令: uptime:显示系统的运行时间和平均负载。dmesg:显示系统的启动信息和内核的日志信息…

如何改变.net托管的入口main函数

有小伙伴问: .NET托管入口Main函数可以修改成别的函数,用来作为程序的入口吗? 答案:当然是可以的。这也算是.NET里面非常简单的骚操了。本篇来用最新的.NET8演示下,如何修改Main入口。 1.简单控制台例子: namespace…

【JavaEE】_tomcat的安装与使用

目录 1. Tomcat简介 2. Tomcat安装 2.1 下载Tomcat并解压缩 2.2 启动Tomcat 2.2.1 Tomcat乱码问题 2.2.2 Tomcat闪退问题 2.3 访问Tomcat欢迎页面 3. 使用Tomcat部署前端代码 3.1 路径匹配 3.2 文件路径访问与网络访问 4. 静态页面与动态页面 5. 基于tomcat的网站后…

更换个人开发环境后,pycharm连接服务器报错Authentication failed

原因:服务器中更换个人开发环境后,密码变了。 解决:在pycharm中修改服务器开发环境密码即可。 1 找到Tools-Depolyment-Configuration 2 点击SSH Configuration后的省略号 3 修改这里面的Password即可

婚恋交友系统源码-交友APP小程序H5开发-源码交付,支持二开-实名制交友更放心!

一、交友小程序开发的重要性 1. 满足人们的社交需求:交友小程序为人们提供了一个便捷的社交平台,使得人们可以随时随地地结识新朋友,拓展自己的社交圈子。 2. 丰富人们的业余生活:通过交友小程序,人们可以参加各种线…

lv21 QT 常用控件 2

1 QT GUI 类继承简介 布局管理器 输出控件 输入控件 按钮 容器 2 按钮示例 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QCheckBox> #include <QLineEdit> #include <QPushButton>class Widget : public QWidget {Q_OBJECTpublic…

探究前端路由hash和history的实现原理(包教包会)

今天我们来讲一讲前端中很重要的一个部分路由&#xff08;router&#xff09;&#xff0c;想必前端小伙伴对‘路由’一词都不会感到陌生。但是如果哪天面试官问你&#xff0c;能大概说一说前端路由的实现原理吗&#xff1f; 你又会如何应对呢&#xff1f; 今天勇宝就带着大家一…

LeetCode 0938.二叉搜索树的范围和:深度优先搜索(可中序遍历)

【LetMeFly】938.二叉搜索树的范围和&#xff1a;深度优先搜索&#xff08;可中序遍历&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/range-sum-of-bst/ 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。…

Ubuntu 命令行加载 luks 加密盘

1 安装 cryptsetup-bin apt install cryptsetup-bin 2 示例有硬盘(已经使用界面加密好) /dev/sdb # 01 加密分区解密 ,映射到虚拟设备 lucks_sdb cryptsetup open /dev/sdb lucks_sdb # 02 虚拟设备列表 ls /dev/mapper/ # 03 挂载虚拟设备到目录 mount /dev/mapper/lucks…

动态规划课堂2-----路径问题

目录 引言&#xff1a; 例题1&#xff1a;不同路径 例题2&#xff1a;不同路径II 例题3&#xff1a;礼物的最⼤价值 例题4&#xff1a;下降路径最⼩和 例题5&#xff1a;最小路径和 结语&#xff1a; 引言&#xff1a; 在学习完动态规划斐波那契数列模型后&#xff0c;…

信息安全计划

任何管理人员或人力资源专业人士都知道&#xff0c;除非彻底记录标准和实践&#xff0c;否则永远无法真正实施和执行标准和实践。正如您可能想象的那样&#xff0c;在保护您的网络、技术和数据系统免受网络威胁以及在发生这些事件时规划最及时、高效和有效的响应时&#xff0c;…

Linux环境搭建Jenkins(详细图文)

目录 简介Jenkins 特点 一、环境准备 1.jdk环境准备 2.maven环境准备 3.git环境准备 二、安装部署Jenkins&#xff08;采用war包方式&#xff09; 1.下载Jenkins ​2.启动war包 1&#xff09;将下载好的Jenkins的war包上传到服务器上 2&#xff09;编辑启动脚本,方便…

nginx反向代理和负载均衡配置

配置文件 位置 : /usr/local/software/nginx/conf vim nginx.conf 在http大括号下配置: upstream wnBalance{ server ip:端口 weight比重 :1或者2; 1为配重高 server ip:端口 weight1; } wnBalance : 代表括号中两个ip的变量名 位置 : /usr/local/so…

native sql -ABAP开发从入门到精通笔记

Native SQL SQL概要 OPEN SQL读取数据 Select Select <lines> <columns>... Select signle <cols>.... where. 列去重数据 Select distinct <cols>... where... 当取多条数据时&#xff0c;select结果会保存到内表中。 Select ... into...语句的结果不…