ping不通的几种故障

news2024/9/28 9:26:09

网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,基本上大部分人都遇到过了,如果在项目中出现网络ping不通,没有一个有序的方法去排除解决,那么很难入手,也是讨论最多的问题之一,有不少项目经理到项目中经常遇到。我们来总结下网络ping不通是什么原因?

一、ping命令的原理

了解ping命令原因,我们来通过一个实例来了解。

假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”后,都发生了些什么呢?

首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,这是数据链路层协议构建数据链路层的传输单元帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

在这里插入图片描述
echo request”(回显请求)、“echo reply”(回显应答)

主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

直接说,就是利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

从上面过程,就是ping命令的原理,主机A收到了主机B的一个应答包,说明两台主机之间的去、回通路均正常,但也并不是所有网络都是正常的,下面我们来看ping不通的原因。

二、同网段ping不通的原因

ping命令不通,主要有两种情况,一种是同网段内的ip地址ping不通,另一种是不同网段的ip地址ping不通,各个情况不一样,我们首先来看同网段ping不通的两种情况。

1)、同网段ping不通,结果是“无法访问目标主机”

目的ip和源ip是同一网段的,ping的结果是“无法访问目标主机” ,属于ping的请求没有发出。

我们来看下,ping同网段不存的ip地址。

ping的请求发出后,返回显示“无法访问目标主机"。
什么原因呢?

说明此时,ping的需求并没有成功发出,这时,要检查:

  1. 对方是否开机?ip是否存在?
  2. 有跨交换机vlan的话,检查对应的中间trunk链路是否导通?
  3. 走直连路由是否正确?是否应该走默认路由,而走了直连路由。
  4. 子网掩码是否错误。
  5. 默认网关是否填写正确

2)、同网段ping不通,结果是“超时(time out)”

目的ip和源ip是同一网段的,ping的结果是“超时或者time out” ,属于ping的请求已经成功发出了,但目标主机没有回复。

ping的请求发出后,返回显示“超时"。什么原因呢?

这种情况是ping已经成功发出了,到达了主机,但时没有得到响应,要检查:

1、检查下防火墙,防火墙禁止了对ping的回应。

2、子网掩码的设置错误,导致不在同一个网段。

3、设备硬件故障,导致设备没有对应的mac地址,无法生成路由表,而走默认路由。

4、ip冲突,或ip地址与直联路由不在同一个网段。

5、网关没有设置好

三、跨网段ping不通的原因

不同网段ping不通,可能的原因比较多,我们来看下跨网段常见的原因。

1)、跨网段ping不通,结果是“无法访问目标主机”

跨网段出现无法访问目标主机,说明请求没有成功发出,获取不了目的ip地址与mac地址。

可能出现的原因是:

1、目的ip地址不存在。

2、检查路由表是否有缺省的路由

3、检查arp表是否有网关的mac地址

4、有网关设置错误

5、走了默认路由

2)、跨网段ping不通,结果是“time out”

若显示time out,表示ping的request消息已经发出,目的ip的网关已经获取到目的ip的mac地址,但是目的主机没有回复,或源主机无法收到。这些应该检查回程路由和节点回程路由。

可能的原因有:

1、检查下防火墙,是否拦截了ping的请求消息。

2、检查经过节点的路由是否正确,或者是否有回程路由。

3、回程路由的硬件网卡出口和ping的request的入口网卡不是同一个

4、交换机vlan对应的接口全部down了,导致vlan状态down,vlan的对应路由没有生成。

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

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

相关文章

DNS(UOS)

安装DNS apt install bind9 nfsutils -y 切换目录 cd /etc/bind vim named.conf.defaults.zones 复制备份 cp -a db.local skills.net.zone cp -a db.127 146.16.172.in-addr.arpa vim skills.net.zone vim 146.16.172.in-addr.arpa vim /named.conf.options 重启bind9 …

javascript学习笔记

本笔记来源于B站尚硅谷javascript教程10.尚硅谷_JS基础_Null和Undefined_哔哩哔哩_bilibili 1、Null和None Null类型的值只一个,就是null; null这个值专门用来表示一个为空的对象; 使用typeof 检查一个null值时,会返回object; Undefined类型的值只有一个…

C++ 特性简化STM32 风格固件库的GPIO 操作,使用HK32F030M

所谓的STM32 风格就是指下面这种: // 开启时钟 RCC_AHBPeriphClockCmd( LED1_GPIO_CLK | LED2_GPIO_CLK, ENABLE);//定义初始化结构体 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType GPIO_O…

迭代器与仿函数

迭代器与仿函数一般分类功能方式分类STL迭代器的类型迭代器辅助函数流型迭代器仿函数仿函数的编写标准库中的仿函数一般分类 正向迭代器 容器名:iterator it begin() end() 2.反向迭代器 容器名:reverse_iterator it rbegin() rend() 3.常正向迭代器 容器…

MQTT 安全解析:构建可靠的物联网系统

物联网逐渐渗透到医疗保健、智能家居、智慧城市、自动驾驶等我们生活中的各个领域。这其中所涉及到的物联设备的安全也因此变得愈发重要。一旦物联网系统遭到恶意入侵,不仅海量设备数据将面临丢失、被窃取和篡改等安全风险,使用这些设备和物联网应用的终…

Githubs的使用方法(创建仓库\分支\提交【增删改查】\拉取与合并\管理与clone代码\修改分支等操作)

Githubs的使用方法 一、github基本使用 这一小节主要介绍github的基本使用方法以及每一步的流程和作用。 1. 创建仓库 2. 创建分支 此时有两个分支:main 和 readme-edits。 现在,它们看起来完全相同。 接下来,将向新分支添加更改。 3. 创…

Vue3 项目实例(一)ElementPlus+ pinia+vite创建

项目搭建 热重载:将一个项目切分成多个JS,同时利用浏览器的协商缓存。 etag: 文件唯一标识 如果某一片代码没有改变,devServer返回304,浏览器继续使用原来的文件,否则,返回200,响应新的js文件…

RK3568平台开发系列讲解(调试篇)IS_ERR函数的使用

🚀返回专栏总目录 文章目录 一、IS_ERR函数用法二、IS_ERR函数三、内核错误码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 IS_ERR 函数的使用。 一、IS_ERR函数用法 先看下用法: 二、IS_ERR函数 对于任何一个指针来说,必然存在三种情况: 一种是合…

知识图谱:Neo4j数据库的基本使用——创建张学良的关系谱

一、知识图谱及Neo4j数据库介绍 知识图谱(Knowledge Graph)是人工智能的重要分支技术,它在2012年由谷歌提出,是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体…

4.1派生类的概念

:为什么使用继承 所谓继承就是从先辈处得到属性和行为特征。类的继承就是新的类从已有类那里得到已有特征。这样做的目的是:减少代码的重复。 派生类的声明 声明派生类的一般公式 : class 派生类名:[继承方式] 基类名 { 派生类新增的数据成…

Java并发基石_CAS原理实战02_CAS实现原理

文章目录什么是CAS?CAS的实现原理是什么?cmpxchg指令怎么保证多核心下的线程安全?什么是ABA问题?如何解决ABA问题呢?什么是CAS? CAS,全称CompareAndSwap,比较并替换。 CAS包含了三个…

MyBatis --- 缓存、逆向工程、分页插件

一、MyBatis的缓存 1.1、MyBatis的一级缓存 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 使一级缓存失效的四种情况: 1、…

MySQL高级第十二篇:数据库事物概述和隔离级别

MySQL高级第十二篇:数据库事物概述和隔离级别一、数据库事物概述1. SHOW ENGINES 查看存储引擎2. 事物ACID特性原子性(atomiity)一致性(consistency):隔离性(isolation)持久性&#…

使用java实现自动扫雷

写在前面 本项目已在github开源,链接https://github.com/QZero233/JavaAutoMinesweeper 本文的写作风格可能会有些奇怪,这是笔者的一次全新的尝试,后续会换回写blog的文风的 摘要 本文提出了一个全自动完成扫雷游戏的解决方案,…

【Kubernetes】 多云管理策略解析

文章目录Kubernetes 多云的实现1. 前言1.1 Kubernetes 多云的现实需求2. Kubernetes 多云的架构设计2.1 跨云 Kubernetes 的挑战2.1.1 不同云厂商的接口不兼容2.1.2 多云环境中的安全问题2.1.3 跨云环境中的网络问题2.2 Kubernetes 多云的架构设计2.2.1 统一网络管理2.2.2 使用…

新能源汽车高压配电管理(PDU/BDU)

一、概念与组成 PDU(Power Distribution Unit),即高压配电单元,功能是负责新能源车高压系统中的电源分配与管理,为整车提供充放电控制、高压部件上电控制、电路过载短路保护、高压采样、低压控制等功能,保护和监控高压系统的运行…

MacOS系统启动React前端项目时报错Error: EMFILE: too many open files, open解决方法

错误场景 最近在开发React的前端微应用,启动时模块构建报错Module build failed, Error: EMFILE: too many open files, 如下图所示: Error: EMFILE: too many open files的错误,经排查是因为单个微应用项目较大,发…

【Linux安装数据库】Ubuntu安装mysql并连接navicat

Linux系统部署Django项目 文章目录Linux系统部署Django项目一、mysql安装二、mysql配置文件三、新建数据库和用户四、nivacat链接mysql一、mysql安装 linux安装mysql数据库有很多教程,根据安装方式不同,相关的步骤也不同。可以参考:【Linux安…

前端基础(HTML、CSS、JS、jQuery)

文章目录一、HTML基础1.1 常用标签(表格、表单、按钮等)1.2 其他一些标签(书签、显示效果、缩写等)二、CSS基础2.1 CSS引入方式2.2 CSS选择器2.3 CSS常用属性三、JavaScript3.1 JS使用方式3.2 变量和数据类型3.3 函数、作用域、条…

Unity基础框架从0到1(五)延时任务调度模块

索引 这是Unity基础框架从0到1的第五篇文章,前面的文章和对应的视频我一起列到这里: 文章 Unity基础框架从0到1 开篇 Unity游戏框架从0到1 (二) 单例模块 Unity基础框架从0到1(三)高效的全局消息系统 Unity基础框架从0到1&a…