网络故障分析

简介: 了解一些运维工作所必须要掌握的网络命令(MTR、traceroute 等)的原理和使用,并进行演示

常见网络故障

首先讲一讲常见的网络故障,粗略分为两种:骨干网络故障和内部网络故障。骨干网络故障表示连接多个区域(地区)的高速网络故障(通常是运营商网络),常见的原因有光缆被挖断、网络设备故障等。

对于网络故障的诊断,我要给你重点讲解的是 traceroute 和 MTR 命令的使用场景。通常我们在进行网络故障分析时,最常用到就是 ping 命令了。比如我们想要去判断网络对目的端是否可达,就可以通过 ping 命令去发 ICMP 的包,但是这里存在一个问题,如果我们需要去 ping 多台主机或是一个主机段的主机,在操作时,可能就需要有一个命令能够帮批量的 ping 指定的主机段内的主机,这时仅通过 ping 命令是不可行的,这里建议你使用 fping 命令。

另外一种情况是, ping 命令发送的是 ICMP 的协议,而服务端通常有可能因为安全的考虑关闭了 ICMP 协议的请求导致 ping 命令无法得到结果,如果想通过网络数据诊断,我们就可以换成别的协议去进行 ping 检测,这里推荐你使用 TCP 的包去做检测,因为一般服务端都会开放一些 TCP 的公共服务端口,我们可以基于 TCP 的协议去 ping 服务端,而这个时候推荐你使用 tcpping 命令工具来作分析。

traceroute和MTR命令

  • traceroute默认以UDP的方式发送,那么有可能在目的地址,防火墙做了安全限制,这样就会造成客户端向服务端不断地发送UDP数据包,但是服务端始终无法返回ICMP不可达的错误响应,这样就会造成不一致的循环
  • 客户端改为使用ICMP协议去给服务端发送数据包,而不是基FUDP的方式,这样到了目标地址的服务端后,由于发送的是ICMP协议,ICMP协议回复会改为"ICMPechoreplay"的数据包给到客户端,这个场景中我们可以通过traceroute-I的选项
    (使用发送ICMP的协议数据包来避免这样的问题)

    traceroute命令使用方法

    为什么需要使用mtr工具?

  • MTR工具集成了ping和traceroute两种工具的优点

  • 可以通过MTR工具来得出每一条路由器的地址

  • 然后通过ping命令去循环得出每一跳的延时和丢包率

  • 所以它(MTR)结合了两个命令的优势

    建议:需要做双向的traceroute 和 MTR

  • 比如说A到B不通,那么我需要从A上面执行traceroute和MTR,同时也需要从B上面再执行一次traceroute给到A,这样两份结果才更加全面

    服务端端口检测

    端口检测客户端工具是telnet命令
    通过netstat-auntp或者ss-s去检测服务端的端口监听情况

    NetCat

  • -v显示指令执行过程
  • -w(超时秒数)表示设置等待连线的时间
  • -u表示使用UDP协议发送数据包
  • -z是一个0传输输入模式,只在扫描服务端口时使用

    检查UDP协议

    UDP协议和TCP协议的区别是
    UDP不保证可靠性,是一个单向性的传输
    所以我们可以在服务端也安装上nc命令
    就是NetCat这个工具
    客户端也安装一个NC工具
    在服务端执行nc-ul1080(1080是它的端口号)
    通过NC模拟一个服务端1080的UDP接收端口
    然后通过客户端向服务端1080端口发送数据包

    抓包工具

    tcpdump tcp -i eth0 -t -s 0 -c 100 dst port 6060 and src net 192.168.1.0/24 -w test.cap
    
    -i 表示监听抓服务器上哪个网卡
    -t 表示不显示时间戳
    -S 可以抓到完整的数据包
    -c 表示一共抓取多少次数据包
    dst port 6060 表示抓取目标端口是6060的数据包
    src net + 网段 表示数据包的来源网络地址为192.168.1.104
相关文章
|
2月前
|
机器学习/深度学习 编解码 计算机视觉
【APFN】从大佬论文中探索如何分析改进金字塔网络
【APFN】从大佬论文中探索如何分析改进金字塔网络
51 0
|
2月前
|
机器学习/深度学习 分布式计算 资源调度
【社交网络分析】课程考试复盘 + 相关资料补充
【社交网络分析】课程考试复盘 + 相关资料补充
53 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
33 0
|
10天前
|
机器学习/深度学习 数据可视化 测试技术
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
21 0
|
10天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
24 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
|
10天前
|
机器学习/深度学习 算法 数据可视化
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
17 0
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
|
11天前
|
存储 算法 前端开发
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
32 0
|
11天前
|
数据可视化 网络可视化
R语言混合图形模型MGM的网络可预测性分析
R语言混合图形模型MGM的网络可预测性分析
11 0
|
11天前
|
算法 定位技术 Windows
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
16 4
|
12天前
|
机器学习/深度学习 资源调度 数据可视化
使用Python和Keras进行主成分分析、神经网络构建图像重建
使用Python和Keras进行主成分分析、神经网络构建图像重建
13 1