23 | 路径排查:没有网络设备权限要如何做排查?
该思维导图由 AI 生成,仅供参考
为何 TCP 连接时常失败?
- 深入了解
- 翻译
- 解释
- 总结
本文以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-216 - Realm学到新姿势了. nc -p指定源端口 nc -w指定超时时间 问题: 1 查了下资料,ecmp负载分担支持:hash、轮询、基于路径权重等算法; 2 tr指定基于udp协议去探测,有可能发现有问题的路径;
作者回复: 1. 是的,ecmp负载均衡也有多种方式,比较常见的是用哈希算法~ 2. linux的traceroute用udp模式(默认模式)就可以实现不同的源端口探测,有助于发现有问题的路径,当然效果上用mtr好很多,mtr可以做几百次以上的探测~
2022-03-252 - 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-3021 - 那时刻请问老师,VIP可以认为是漂移ip么?另外,文中提到,漂移 IP 是不可以配置在主机上的,只有 LB 可以这么配置,这是为什么?
作者回复: 你好,这个“不允许”只是当时环境下的设计,不是技术上做不到而是这种场景不多,所以没有去做这个特性。 VIP一般特指LB上提供服务的IP,如果LB是主备模式,那么就属于漂移IP的性质。如果LB是ECMP加路由协议配置的那种,可能不算漂移IP了,因为漂移IP一般是ARP宣告的而不是作为路由的下一跳目的地:)
2022-03-2521 - 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-252 - 追风筝的人ECMP 的最大作用是用多条链路实现更大的传输带宽。而为了提升可用性,ECMP 一般会启用基于哈希的转发策略,实现网络流量在多个链路间的有状态的转发。2022-03-29
- webmin从traceroute检测原理上来说,它是一跳一跳检查过去,那么需要先收集到中间节点有哪些,然后一个一个后继节点的延伸检测看到达中间的那个节点不通。 收集中间节点能想到是多换几台源主机,分别traceroute最终目标主机看看是不是有不同的路径,当然这种方法碰到走不通的路径,也就知道了哪一跳后面有问题。2022-03-25