TTL 传输中过期问题定位

问题:

   工作环境中有一个ac+ap的环境,ac的wan口ip是192.168.186.195/24,ac上lan上有vlan205,其ip子接口地址192.168.205.1/24,ac采用非nat模式,而是路由模式,在上级路由器上有192.168.205.0/24指向ac的wan口地址192.168.186.195,而ac上有缺省路由0.0.0.0/0指向192.168.186.1,pc地址是192.168.186.118/24,gw是192.168.186.1。

现在ping192.168.205.1,打印TTL 传输中过期。如下图:

排查过程:

发现ac的地址回了 TTL 传输中过期,过滤icmp消息,一般是后向发给源主机告知一些错误。抓包看到如下:

发现开始的ping消息,ttl为128从Source: cc:96:e5:23:39:3c (cc:96:e5:23:39:3c)发给Address: Wonderla_03:a0:a1 (64:a3:41:03:a0:a1)

而icmp的Time-to-live exceeded是从Source: 64:c3:41:b2:18:21 (64:c3:41:b2:18:21)发给cc:96:e5:23:39:3c

知道Time-to-live exceeded是当节点设备收到ip层ttl为1的包时,发给源ip,告知这个数据包的在网络中传输极限已经到达,将被丢弃。

查一下arp表,看一下对应192.168.186.0网段的mac地址情况,知道一下数据的来源:

arp  -a | findstr  186.

C:\Windows\System32>arp  -a | findstr  186.  回车 findstr是在前一个命令里查找对应字符串
接口: 192.168.186.118 --- 0x12
  192.168.186.1         64-a3-41-03-a0-a1     动态
  192.168.186.192       cc-96-e5-23-3a-36     动态
  192.168.186.195       64-c3-41-b2-18-21     动态
  192.168.186.221       32-1e-5b-f9-eb-7e     动态

而自身的ip192.168.186.118的mac地址是

C:\Windows\System32>getmac  /v

连接名          网络适配器      物理地址            传输名称
=============== =============== =================== ==========================================================
以太网          Realtek PCIe Gb CC-96-E5-23-39-3C   \Device\Tcpip_{E23FF6BD-F5DA-4E0C-B23F-FB03429AAAB6}
WLAN            Realtek 8821CE  74-97-79-A9-A6-13   媒体已断开连接
VMware Network  VMware Virtual  00-50-56-C0-00-01   \Device\Tcpip_{B8E81AEF-0935-4643-9CE1-94227577892E}
VMware Network  VMware Virtual  00-50-56-C0-00-08   \Device\Tcpip_{FAA21B1C-B7DF-42A2-AE78-E5AACA20FE59}
以太网 2        TAP-Win32 Adapt 00-FF-59-A6-9D-3A   媒体已断开连接
以太网 4        Realtek USB GbE 00-0F-C9-24-10-B1  

看抓包的显示是设备ac192.168.186.195给回的ttl 传输中过期的消息。

为了看数据包的传输过程,执行一下tracert   -w 1  -d  192.168.205.1,查看一下数据传输的路径

-w 1是超时等待时间为1s,-d是不进行dns解析,这两个参数能加快回显速度。

C:\Windows\System32>tracert  -w 1 -d  192.168.205.1

通过最多 30 个跃点跟踪到 192.168.205.1 的路由

  1    <1 毫秒   <1 毫秒   <1 毫秒 192.168.186.1
  2     1 ms     2 ms    <1 毫秒 192.168.186.195
  3    <1 毫秒    1 ms     1 ms  192.168.186.1
  4     1 ms     2 ms     1 ms  192.168.186.195
  5     1 ms     1 ms     1 ms  192.168.186.1
  6     1 ms     1 ms     1 ms  192.168.186.195
  7     1 ms     1 ms     1 ms  192.168.186.1
  8     1 ms     1 ms     1 ms  192.168.186.195
  9     1 ms     1 ms     *     192.168.186.1
 10     1 ms     *        *     192.168.186.195
 11     1 ms     *        *     192.168.186.1
 12     1 ms     4 ms     *     192.168.186.195
 13     2 ms     *        3 ms  192.168.186.1
 14     2 ms     2 ms     *     192.168.186.195
 15     2 ms     *        2 ms  192.168.186.1
 16     2 ms     4 ms     *     192.168.186.195
 17     2 ms     *        2 ms  192.168.186.1
 18     3 ms     2 ms     *     192.168.186.195
 19     2 ms     *        4 ms  192.168.186.1
 20     2 ms     2 ms     *     192.168.186.195
 21     2 ms     *        3 ms  192.168.186.1
 22     2 ms     2 ms     *     192.168.186.195
 23     2 ms     *        2 ms  192.168.186.1
 24     3 ms     3 ms     *     192.168.186.195
 25     2 ms     *        5 ms  192.168.186.1
 26     2 ms     2 ms     *     192.168.186.195
 27     3 ms     *        2 ms  192.168.186.1
 28     3 ms     2 ms     *     192.168.186.195
 29     3 ms     *        4 ms  192.168.186.1
 30     5 ms     3 ms     *     192.168.186.195

跟踪完成。发现路由路径显示,数据包在192.168.186.1和192.168.186.195间震荡。

抓包显示

tracert的原理就是发送ttl从1-xx的包,看那个设备回icmp的ttl超时消息,就证明经过的路由器是那个。

该例中,抓包显示ttl从1-30,最后都是192.168.186.195回的ttl超时消息

查看上级出口路由器的路由配置:

C       192.168.186.0/24 is directly connected, vlan1.1   这直连路由
C       192.168.188.0/24 is directly connected, vlan1.1
S       192.168.202.0/24 [1/0] via 192.168.186.195, vlan1.1
S       192.168.205.0/24 [1/0] via 192.168.186.195, vlan1.1 发现有这样的一条静态路由

show ip int brief
Interface             IP-Address      Status Protocol
vlan1.1               192.168.186.1   UP     UP       default        

决定在192.168.186.195的ac上看看,数据包的流向。

登录ac,切换到linux操作系统下进行tcpdump

然后在cmd下执行一次ping包

C:\Windows\System32>ping  192.168.205.1  -n 1

正在 Ping 192.168.205.1 具有 32 字节的数据:
来自 192.168.186.195 的回复: TTL 传输中过期。

192.168.205.1 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),

tcpdump的抓包显示如下:

 tcpdump  -i eth0  -nnevv  -ttt  icmp and host  192.168.186.118 回车, -i eth0  指定eth0接口

-nnevv是显示mac地址,并关闭dns解析,用数字显示端口 vv是显示协议详情,-ttt是显示时间格式为时分秒微秒

发现规律:ping的request消息被反射回去,下一包和上一包的mac地址交换,ttl减1,ip层源目的ip地址不变。

发现整个过程中,ttl在减1,知道ac收到ttl为1的包后,向源ip192.168.186.118对应mac CC-96-E5-23-39-3C发了ttl超时的消息,如上图所示。

看来,是路由器192.168.186.1把ping的request消息发给192.168.186.195ac,而ac没有落地处理,又送出给路由器,路由器又送过来,这个过程中,ip包中,ttl被减1,二层中mac地址在互换。ping的包在二者直接来回震荡,直到ttl为1,生命周期到了为止。

ac上为啥没有落地处理192.168.205.1的包而送出呢?在ac上查看

ac上show ip route发现有下面的打印:

XOS#show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default

Gateway of last resort is 192.168.186.1 to network 0.0.0.0

S*      0.0.0.0/0 [1/0] via 192.168.186.1, vlan1.4093 
C       127.0.0.0/8 is directly connected, lo
C       192.168.186.0/24 is directly connected, vlan1.4093
C       192.168.202.0/24 is directly connected, vlan1.202

没有192.168.205.0/24的直连路由显示,为啥,一般没有路由条目,要么没有配置,要么配置的路由对应网口没有激活,导致直连路由没有生成。检查一下子接口和网口的物理连接情况:

XOS#show int brief
The brief information of interface(s) under route mode:
Status: ADM - administratively down
Interface             IP-Address      Status Protocol Description
vlan1.1               172.16.81.1     DOWN   DOWN     
vlan1.202             192.168.202.1   UP     UP       202                 
vlan1.205             192.168.205.1   DOWN   DOWN     205        发现有配置子接口ip,但是down状态        
vlan1.4093            192.168.186.195 UP     UP       
vlan1.4094                            DOWN   DOWN     

The brief information of interface(s) under bridge mode:
Status: ADM - administratively down
Duplex: A - auto;H - half;F - full
Type:A - access;T - trunk;H - hybrid
Interface             Status Speed  Duplex Type PVID Description
eth0                  UP     1g     F      A    4093 eth0
eth1                  DOWN   1g     F      A    4094 eth1
eth2                  DOWN   1g     F      A    205    发现对应vlan205网络物理是down状态,导致子接口也是down状态
eth3                  DOWN   1g     F      A    202  
eth4                  UP     1g     F      T    202  
eth5                  UP     1g     F      A    202 

明白原因了,由于对应vlan205的接口down导致子接口down,没有对应直连路由生成,导致数据包到达ac后,无法落地,再次没送出,而上级路由器里有192.168.205.0/24指向192.168.186.195的路由条目,所以request消息,又被ttl减1后送来,再送出,这样循环,直到ttl为1后,结束。

解决方法:

解决方法把一个up的端口,改为trunk口,添加允许通过vlanid205

-------------------------------------------
 Interface name          : eth5
 Switchport mode         : trunk
 Ingress filter          : enable
 Acceptable frame types  : all
 Default Vlan            : 202
 Configured Vlans        : 202 205

XOS#show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default

Gateway of last resort is 192.168.186.1 to network 0.0.0.0

S*      0.0.0.0/0 [1/0] via 192.168.186.1, vlan1.4093
C       127.0.0.0/8 is directly connected, lo
C       192.168.186.0/24 is directly connected, vlan1.4093
C       192.168.202.0/24 is directly connected, vlan1.202
C       192.168.205.0/24 is directly connected, vlan1.205  对应的192.168.205.0/24直连路由生成了

ping的结果:

C:\Windows\System32>ping  192.168.205.1  -n 1

正在 Ping 192.168.205.1 具有 32 字节的数据:
来自 192.168.205.1 的回复: 字节=32 时间=1ms TTL=64

192.168.205.1 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 1ms,最长 = 1ms,平均 = 1ms

tcpdump的结果:

 tcpdump  -i  eth0  -nnevv  icmp
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:16:32.985443 64:a3:41:03:a0:a1 > 64:c3:41:b2:18:21, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 127, id 16894, offset 0, flags [none], proto ICMP (1), length 60)
    192.168.186.118 > 192.168.205.1: ICMP echo request, id 1, seq 968, length 40
15:16:32.985489 64:c3:41:b2:18:21 > cc:96:e5:23:39:3c, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 48259, offset 0, flags [none], proto ICMP (1), length 60)
    192.168.205.1 > 192.168.186.118: ICMP echo reply, id 1, seq 968, length 40

总结:

TTL传输中过期,通常指的是数据包在网络中的生存时间(TTL值)超出限制,导致数据包被路由器丢弃,并且路由器会向数据包的发送方发送一个ICMP“Time Exceeded”消息。以下是一些可能导致TTL传输中过期的原因:

  1. 网络设备问题‌:路由器、交换机等网络设备配置错误或故障,可能导致数据包在传输过程中被错误地处理或丢弃。如果网络设备无法正确处理或转发数据包,就会引发TTL过期。

SVI 虚拟子接口接口 up的 条件,下面其一满足即可:
1、有接口被 access 这个vlan ,且这个物理接口 up
2、这个svi有trunk口,并且允许这个vlan 通过

路由转发,就是二层mac层不断更改mac地址的过程,而ip层除了ttl还有经过nat设备更换目的ip外,其他的不变。

tracert就是发ttl从1到xx的包,根据icmp的ttl传输中超时消息确定经过节点设备ip。

本例就是对应子接口物理接口没有up,导致路由环路导致出现的ttl传输中过期的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端超大缓存IndexDB、入门及实际使用

文章目录 往期回顾项目实战初始化表获取列表新增表的数据项获取详情根据ID获取详情根据其他字段获取详情 删除数据 总结 往期回顾 在之前的文章中&#xff0c;我们介绍了IndexDB vs Cookies vs Session这几个的对比&#xff0c;但是没有做实际项目的演示&#xff0c;今天我们用…

vue3学习笔记(11)-组件通信

1.props 父传子 子传夫 父传子 接收用defineProps([]) 空字符串也是假 2.自定义事件 $event:事件对象 ref定义的数据在模板里面引用的时候可以不用.value 3.子传父 宏函数 触发事件 声明事件 defineEmits() 挂载之后3s钟触发 4.命名 肉串命名 5.任意组件通信 mitt pubs…

【高阶数据结构】红黑树封装map、set

红黑树封装map、set 1.源码及框架分析2.模拟实现map和set1.支持 insert 的实现2.支持 iterator 的实现3.map支持 operator [] 的实现 3.总代码1.RBTree.h2.Myset.h3.Mymap.h4.Test.cpp 1.源码及框架分析 SGI-STL30版本源代码&#xff0c;map和set的源代码在map/set/stl_map.h/…

多模态论文笔记——Coca

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型Coca&#xff0c;在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…

WebGL之Tree.js

tree基于WebGL的库绘制展示3D图形使用场景包括: 网页游&#xff1a;创建交互式的3D游戏&#xff0c;提供沉浸式的游戏体验。数据可视&#xff1a;将复杂的数据以3D形式展示&#xff0c;便于用户理解和分析。产品展&#xff1a;在电商网站上展示产品的3D模型&#xff0c;提供更…

基于PyQt5的UI界面开发——图像与视频的加载与显示

介绍 这里我们的主要目标是实现一个基于PyQt5和OpenCV的图像浏览和视频播放应用。用户可以选择本地的图像或视频文件夹&#xff0c;进行图像自动播放和图像切换以及视频播放和调用摄像头等操作&#xff0c;并且支持图像保存功能。项目的核心设计包括文件路径选择、图像或视频的…

数据结构与算法之动态规划: LeetCode 62. 不同路径 (Ts版)

不同路径 https://leetcode.cn/problems/unique-paths/description/ 描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “…

java自定义注解对枚举类型参数的校验

目录 1.前提准备条件 1.1 pom.xml文件依赖: 1.2 枚举类&#xff1a; 1.3 controller接口&#xff1a; 1.4 实体参数&#xff1a; 1.5 knife4j的配置 2.实现要求 3.实现步骤 3.1 自定义注解类&#xff1a; 3.2 使用注解&#xff1a; 3.3 添加注解校验类&#xff1a; …

Type c系列接口驱动电路·内置供电驱动电路使用USB2.0驱动电路!!!

目录 前言 Type c常见封装类型 Type c引脚功能详解 Type c常见驱动电路详解 Type c数据手册 ​​​​​​​ ​​​​​​​ 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路…

Mybatis 01

JDBC回顾 select 语句 "select *from student" 演示&#xff1a; 驱动包 JDBC 的操作流程&#xff1a; 1. 创建数据库连接池 DataSource 2. 通过 DataSource 获取数据库连接 Connection 3. 编写要执⾏带 ? 占位符的 SQL 语句 4. 通过 Connection 及 SQL 创建…

基础数据结构--二叉树

一、二叉树的定义 二叉树是 n( n > 0 ) 个结点组成的有限集合&#xff0c;这个集合要么是空集&#xff08;当 n 等于 0 时&#xff09;&#xff0c;要么是由一个根结点和两棵互不相交的二叉树组成。其中这两棵互不相交的二叉树被称为根结点的左子树和右子树。 如图所示&am…

协议幻变者:DeviceNet转ModbusTCP网关开启机器手臂智能新纪元

技术背景DeviceNet是一种广泛应用于工业自动化领域的现场总线标准&#xff0c;它能够实现控制器与现场设备之间的高效通信&#xff0c;常用于连接各种传感器、执行器以及其他工业设备&#xff0c;如机器人、电机驱动器等&#xff0c;具有实时性强、可靠性高的特点。而ModbusTCP…

Spring Security 3.0.2.3版本

“前言” 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往复以至无…

MiFlash 线刷工具下载合集

MiFlash 线刷工具下载合集 MiFlash 线刷工具下载合集 – MIUI历史版本相较于小米助手的刷机功能&#xff0c;线刷还是偏好使用 MiFlash。特点是界面简单纯粹&#xff0c;有自定义高级选项&#xff0c;可以选择刷机不上 BL 锁&#xff0c;自定义刷机脚本&#xff0c;EDL 刷机模…

Oracle 多租户架构简介

目录 零. 简介一. CDB&#xff08;Container Database&#xff0c;容器数据库&#xff09;二. PDB&#xff08;Pluggable Database&#xff0c;可插拔数据库&#xff09;三. CDB 与 PDB 的比较四. 用户的种类五. XE 与 XEPDB1 零. 简介 ⏹Oracle 多租户架构&#xff08;Multit…

掌握大数据处理利器:Flink 知识点全面总结【上】

1.Flink的特点 Apache Flink 是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行状态计算。 Flink主要特点如下&#xff1a; 高吞吐和低延迟。每秒处理数百万个事件&#xff0c;毫秒级延迟。结果的准确性。Flink提供了事件时间(event--time)和处理时间(proces…

[论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

《向量数据库指南》——Milvus Cloud 2.5:Sparse-BM25引领全文检索新时代

Milvus Cloud BM25:重塑全文检索的未来 在最新的Milvus Cloud 2.5版本中,我们自豪地引入了“全新”的全文检索能力,这一创新不仅巩固了Milvus Cloud在向量数据库领域的领先地位,更为用户提供了前所未有的灵活性和效率。作为大禹智库的向量数据库高级研究员,以及《向量数据…

常用的数据库类型都有哪些

在Java开发和信息系统架构中&#xff0c;数据库扮演着存储和管理数据的关键角色。数据库种类繁多&#xff0c;各有特色&#xff0c;适用于不同的应用场景。 1. 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; • 关系型数据库是最为人熟知的数据库类型&#xff0c;数据…

计算机网络—————考研复试

第一章、计算机网络体系结构 1. OSI参考模型和TCP/IP模型&#xff1a; OSI与TCP/IP的记忆方法&#xff1a;只需把OSI的七层记住&#xff0c;将应用层、表示层、会话层一起记&#xff0c;到TCP/IP变成应用层。物理层和数据链路层换成网络接口层。把网络层换个字变成网际层。 而…