eBPF Talk: 比 kprobe 更好的 trampoline 2022-11-01 eBPF eBPF Talk 约 1016 字 预计阅读 3 分钟 eBPF trampoline(trampoline:蹦床,翻译后并不好理解,所以不作翻译)是内核函数和 eBPF 程序之间的桥梁,基于 register_ftrace_direct() 实现。它实现了 kprobe/kretprobe 的功 阅读更多
eBPF Talk: CPU and NUMA 2022-10-31 eBPF eBPF Talk 约 955 字 预计阅读 2 分钟 在现代的服务器中,基本上 CPU 采用的都是多核 NUMA 架构。对于网络而言,一个网络包从物理网卡驱动出来之后,并到达对应的应用层 socket,最好都在同一 阅读更多
eBPF Talk: 宏的两种写法 2022-10-30 eBPF eBPF Talk 约 564 字 预计阅读 2 分钟 宏是 C 语言中最强大的语言特性,能够用来简化 eBPF 的 C 代码;毕竟 eBPF 的 C 代码是一种语法、语义都受限的 C 代码,不能像普通 C 代码那样“肆意妄为”。 写法一 阅读更多
eBPF Talk: 变量声明的位置 2022-10-29 eBPF eBPF Talk 约 758 字 预计阅读 2 分钟 据了解(未查证),从 clang12 开始,eBPF 代码中的变量声明不再要求写在函数体的最前方,而是可以按需声明并初始化。 写法一:一次性声明全部的变量 1 2 3 阅读更多
为 eBPF 程序注入黑魔法 【正确姿势】 2022-08-24 eBPF 约 1263 字 预计阅读 3 分钟 为 eBPF 程序注入黑魔法 【错误姿势】 中提出的在加载阶段中动态变更常量值的办法并不可靠,毕竟在 cilium/ebpf 中已提供了重写常量的函数 RewriteConstan 阅读更多
为 eBPF 程序注入黑魔法 【错误姿势】 2022-06-11 eBPF 约 1276 字 预计阅读 3 分钟 在 Kubernetes 集群环境下,如果跨节点的 Pod 需要组成多个 VPC 网络,使用 eBPF 的时候,该如何在 CNI 层面动态地为每个 Pod 分配 VXLAN VNI 或者 VLAN ID 呢? 一个简单可行的办法是,每次 CNI 阅读更多
demo for 「eBPF 技术实践:高性能 ACL」 2022-04-01 iptables eBPF eBPF Talk 约 1231 字 预计阅读 3 分钟 在阅读了字节跳动发出的公众号文章 eBPF 技术实践:高性能 ACL 后,对其中提出的 O(1) 匹配算法颇为佩服;但初始看了好几遍,都没看懂这个匹配算法。如今看懂后, 阅读更多
一文吃透 Linux nsenter 2022-01-22 Linux 约 1946 字 预计阅读 4 分钟 nsenter 套娃 在 Linux 系统里,nsenter 是一个命令行工具,用于进入到另一个 namespace。譬如,nsenter -n -t 1 bash 就是进入到 pid 为 1 的进程所在 阅读更多
一文吃透 Linux TProxy 透明代理 2021-12-24 Linux iptables 约 2671 字 预计阅读 6 分钟 Linux 透明代理并不是一个独立的功能模块,而是一个功能特性。在使用 Linux 透明代理的时候,需要 iptables, ip-rule, ip-route 和应用程序一起协同工作。 Linux 透明代理相关博客: knet 阅读更多