26. 通过 cilium pwru了解网络包的来龙去脉
26. 通过 cilium pwru了解网络包的来龙去脉
pwru是一种基于eBPF的工具,可跟踪Linux内核中的网络数据包,并具有先进的过滤功能。它允许对内核状态进行细粒度检查,以便通过调试网络连接问题来解决传统工具(如iptables TRACE或tcpdump)难以解决甚至无法解决的问题。在本文中,我将介绍pwru如何在不必事先了解所有内容的情况下解决了一个网络谜团。
数据包从哪里来
我们在Linux主机上运行Kubernetes,其中主机本身是使用BGP无编号的BGP路由器。因此,我们的NIC仅具有IPv6链路本地地址,但我们具有指定这些NIC作为下一跳并指定显式IPv4源地址的IPv4路由表条目。
这种设置大部分情况下都可以正常工作,但是我们开始发现通过kube-proxy进行连接时会出现丢包问题。路由会在一段时间内神秘地失败,然后再次开始工作。使用iptables TRACE跟踪数据包时,我可以看到kube-proxy正在执行某些DNAT操作,并最终进行MASQUERADE和输出操作。输出看起来很好,但数据包从未离开盒子。显然,在iptables堆栈之后,在实际到达NIC驱动程序之前它被丢弃了。
自然倾向于关注您可以追踪的内容,因此我对iptables正在做某些我没有看到的事情感兴趣。
图片加载中
数据包你在哪里
一旦我发现了pwru,我就用一个过滤器启动它来匹配我丢失的数据包,并获得了一个有效
最新文章
- 使用显示属性中的硬件加速设置解决一些疑难问题
- lable与input连用特殊动作效果
- android studio开发flutter应用,使用mumu模拟器调试软件
- 《QT从基础到进阶·二十四》按钮组QButtonGroup,单选框QRadioButton和多选框QCheckBox
- CRM销售管理软件哪个好,如何选?(二)
- 这 11 个 for 循环优化你得会
- 如何挑选RPA开发商?
- 【2021集创赛】Arm杯一等奖作品—基于 Cortex
- 【Python3】【力扣题】268. 丢失的数字
- mysql++库connected与ping方法的区别
- Python中的filter函数用法详解
- Zookeeper篇
- Actipro Software WinForms Controls 23.1.2
- Jenkins Docker Swarm插件 配置的坑
- 保姆级vue
- nmap原理与使用
- ElasticSearch简单操作
- 探究元素隐藏的几种方式及其区别
- 基于RK3399的室内健身魔镜方案
- SpringBoot 项目优雅实现读写分离