网络排查案例课
杨胜辉
eBay 资深运维专家,流量系统负责人
22781 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
实战三:不用抓包就能做的网络排查篇 (2讲)
网络排查案例课
15
15
1.0x
00:00/00:00
登录|注册

23 | 路径排查:没有网络设备权限要如何做排查?

tcpdump抓包
nc命令
逐段验证法
排除法
加强版traceroute
持续的三层可达性探测
连接测试
指定源端口
BGP/OSPF配合ECMP
多活的负载均衡架构
ICMP与TCP/UDP的区别
基于五元组的哈希算法
基于哈希的转发机制
轮询策略
多兵协同作战能力
单兵作战能力
nc命令的-p参数
指定源端口测试
长ping测试
排查工具
排查方法
工具灵活运用
协议理解
小工具应用
抓包分析
traceroute在ECMP排查中的作用
ECMP的其他哈希算法
mtr (my traceroute)
nc (netcat)
[R.] RST+ACK
[P.] PUSH+ACK
[F.] FIN+ACK
[.] ACK
[S] SYN
ECMP的其他使用场景
核心特点
路径选择策略
增加传输带宽
排查技巧
实战案例:TCP连接失败
权限限制下的排查
家庭网络问题
思考题
排查工具
tcpdump输出解析
ECMP (Equal-Cost Multi-Path)
网络排查
网络排查与ECMP

该思维导图由 AI 生成,仅供参考

你好,我是胜辉。
有一位同事问我:“大 V,你的课程会教我们排查家庭网络问题的技巧吗?”这是一个有意思的问题。我们课程里用到了大量的抓包分析,虽然这套方法功效甚大,但是在很多场景下,也有比它更加合适的方法。在网络路径的排查方面,这一点体现得尤为明显。比如一些小工具往往能起到意想不到的大作用。
不过,一个现实的问题是,我们一般不是专职的网络工程师,也没有相关的网络设备的查看权限,那要如何在这种条件下,尽可能做一些网络层排查的工作呢?这就需要我们对协议有深入的理解,对工具能做到灵活地运用。
在接下来的实战三模块“不用抓包就能做的网络排查篇”,我们就来学习一下网络层的案例和排查技巧。这样你以后遇到跟网络路径异常、丢包、时通时不通等问题的时候,不仅有抓包分析这样的“重型武器”,也有几把趁手的“瑞士军刀”,可以精确快速地搞定这些问题。
好,我们还是从案例开始。

为何 TCP 连接时常失败?

有一次,我们的一个内部客户团队报告了一个 TCP 连接失常的问题。这是一个 MySQL 的服务,它有两台服务器,都在同一个 LB VIP 的后面。这个团队发现,从他们的客户端到这个 LB VIP 的 TCP 连接,时常有失败的情况发生,于是我们介入排查。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文以TCP连接失败问题为例,介绍了网络路径排查的过程和技巧。作者首先讲解了在没有网络设备权限的情况下,如何利用协议理解和灵活运用工具进行网络层排查。然后通过一个MySQL服务TCP连接失败的案例展开讲解,通过客户端和LB的抓包分析,发现客户端发出的SYN+ACK在网络上丢失,而长ping测试却没有丢包,引出了对ECMP的讨论。文章强调了在排查网络问题时,除了抓包分析外,还可以利用工具进行逐段验证,从而快速定位问题。此外,文章还介绍了ECMP的概念和路径选择策略,以及如何利用nc命令指定源端口进行测试,最终定位到有问题的节点并进行修复。通过对ECMP的充分理解和对nc工具的灵活运用,读者可以快速了解网络路径排查的方法和技巧,对网络工程师和对网络排查感兴趣的读者具有一定的参考价值。文章还拓展了ECMP的其他使用场景,以及对网络排查技巧的思考和思考题,为读者提供了更多深入学习的可能性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《网络排查案例课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 分清云淡
    curl --help --local-port <num/range> Force use of RANGE for local port numbers

    作者回复: 这个不错,也可以达到变化源端口的目的,赞~

    2022-05-21
    6
  • Realm
    学到新姿势了. nc -p指定源端口 nc -w指定超时时间 问题: 1 查了下资料,ecmp负载分担支持:hash、轮询、基于路径权重等算法; 2 tr指定基于udp协议去探测,有可能发现有问题的路径;

    作者回复: 1. 是的,ecmp负载均衡也有多种方式,比较常见的是用哈希算法~ 2. linux的traceroute用udp模式(默认模式)就可以实现不同的源端口探测,有助于发现有问题的路径,当然效果上用mtr好很多,mtr可以做几百次以上的探测~

    2022-03-25
    2
  • JianXu
    对我来说比较难的是第一步在TCP 有问题而长ping 没有问题的时候能不能想到ECMP. 这里有一个问题,如果ecmp 其中的一个点有问题,ecmp 会有健康检查自动摘除那个节点吗?如果不自动摘除,应用端似乎什么也做不了啊。 我记得我们公司的SLB 都使用了ECMP的,我还是在想上面这个问题,如果我把它当成failure mode analysis 其中的一个案例,那在SLB 系统(我记得L4 那里用了IPVS, L7 那里是envoy ) 我能够做什么resilience 的尝试呢?

    作者回复: 是的,有时候需要技术,有时候需要经验。排查工作对这两者都是强依赖。 ECMP可以由BGP实现,也可以由OSPF实现。它只是一种平衡分布网络流量的机制,属于一种附加的特性,但不负责健康检查等需求(BGP等协议有探测机制)。 就网络质量来说,当应用在持续使用网络的时候,一点点波动都可能会感知到。BGP或者OSPF等路由协议的探测频度本身就不是为这种需求场景设计的,所以确实无法处理这种精细的或者间歇性的丢包问题。 就SLB的场景,以“L4 -> L7”的场景为例,在这段路径上如果ECMP的某个节点出了问题,大体上有两个地方可以观测到: 1. L4到L7的健康检查 2. L4到L7的重传率 也就可以从这两个地方寻找一些应对和提升的空间~

    2022-06-25归属地:上海
    1
  • 宝仔
    老师,你最后落实证据这里为啥拿80请求百度走公网验证?不太明白。你不是应该指定源端口请求LB的3306吗?你请求百度出口也走这个LB吗?

    作者回复: 谢谢你指出,用意就是你说的这个,信息我更正一下:)

    2022-03-30
    2
    1
  • 那时刻
    请问老师,VIP可以认为是漂移ip么?另外,文中提到,漂移 IP 是不可以配置在主机上的,只有 LB 可以这么配置,这是为什么?

    作者回复: 你好,这个“不允许”只是当时环境下的设计,不是技术上做不到而是这种场景不多,所以没有去做这个特性。 VIP一般特指LB上提供服务的IP,如果LB是主备模式,那么就属于漂移IP的性质。如果LB是ECMP加路由协议配置的那种,可能不算漂移IP了,因为漂移IP一般是ARP宣告的而不是作为路由的下一跳目的地:)

    2022-03-25
    2
    1
  • IBUMBLEBEE
    请问老师,关于 "为什么 ICMP 测试一直能通呢?" 的问题,会不会有第一次Ping就走有问题的路线b(过r8),之后的Ping都会一直失败的情况呢?

    作者回复: 你说的没错,如果第一次ping正好走到了有问题的节点,后续的ping也多半也走这个路径,也就是持续失败,只是相对来说这种概率较低,所以一般情况下,比较常见的还是“ping成功但是连接失败”:)

    2022-12-14归属地:四川
    2
  • 那时刻
    关于ECMP实现多活的负载均衡LB的例子里,我有几个问题,麻烦请老师解答一下 1. 网管对外暴露的IP是VIP么? 2. LB节点VIP通过BGP或OSPF生效,那么ARP协议要禁止么? 3. 所有流量都经过网管来转发数据包,网管是否有压力?如果有压力,是否也需要多活呢? 4. 网关收到流量后,会认为这多个 LB 节点不再是终端设备,而是跟它一样的 next-hop 路由器。这里可以把网管理解成路由器一样的直接转发LB节点么?

    作者回复: 你好,关于这几个问题: 1. 这个IP是VIP,也就是可以在LB的主备两台设备之间漂移,这跟VIP后面的两个实例的漂移不是一个概念,不要搞混 2. 这个案例中的VIP本身还是基于ARP的,而ECMP发生在客户端和LB之间的路径上,也就是中间跳数之间有多路径和BGP或者OSPF 3. 你说的是LB的网关吗,LB的上联设备是单个交换机,不过主备节点都各连一个交换机,就形成了冗余设计 4. 你这里说的就是跟HA模式的LB不一样的水平扩展LB(用BGP来宣告IP),这些LB节点的上级网关当然也是路由交换设备,而且它们确实以为这些LB是“下一个路由设备” 4. 3.

    2022-03-25
    2
  • 追风筝的人
    ECMP 的最大作用是用多条链路实现更大的传输带宽。而为了提升可用性,ECMP 一般会启用基于哈希的转发策略,实现网络流量在多个链路间的有状态的转发。
    2022-03-29
  • webmin
    从traceroute检测原理上来说,它是一跳一跳检查过去,那么需要先收集到中间节点有哪些,然后一个一个后继节点的延伸检测看到达中间的那个节点不通。 收集中间节点能想到是多换几台源主机,分别traceroute最终目标主机看看是不是有不同的路径,当然这种方法碰到走不通的路径,也就知道了哪一跳后面有问题。
    2022-03-25
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部