• YF
    2022-01-30
    你是怎么理解 eBPF 程序类型的呢? eBPF 对应与内核的事件类型,犹如订阅同类消息事件,内核发现对应的事件,则通知订阅者处理。

    作者回复: 👍非常棒!

    
    13
  • 阿立
    2022-02-10
    作者大佬,xdp是一个内核网络处理模块,还是网络包进入协议栈之前的事件钩子点呢? tc呢?

    作者回复: 都是网络包事件钩子,当然也是网络处理流程中的一部分。XDP和TC其实有些类似,但TC总是在内核中执行,而XDP可以卸载到网卡硬件,从而获得更好的性能。

    共 3 条评论
    6
  • 于競
    2022-02-23
    看了上面介绍的网络类型的eBPF程序,好奇可不可以用来开发流量复制工具呢

    作者回复: 嗯嗯 可以的。但实际上只是流量复制的话,并不需要eBPF,无论是网络硬件还是OVS、TC等已有的Linux工具早就支持流量复制了。

    
    4
  • 白璐
    2023-02-20 来自北京
    老师,ebpf 可以阻断进程的行为吗,例如某个进程调用了write 系统调用 然后 我应用ebpf阻断调用 不让这个进程调用write系统调用 。 这个可以用ebpf实现吗

    作者回复: 应该可以借助LSM BPF程序实现,你可以参考一下https://www.kernel.org/doc/html/v5.9/bpf/bpf_lsm.html

    
    1
  • XYS
    2023-02-11 来自湖北
    原理:钩子就是系统在各个数据处理路径上放置的一个埋点(例如:map[int]func),我们需要确定int值(枚举类型)和处理函数,处理路径上会查看map[特定值]下是否有函数,有就执行。 应用:熟悉各个枚举值的位置(既作用)就能在实际工作中利用该技术解决实际问题。

    作者回复: 谢谢分享👍

    
    1
  • janey
    2022-11-24 来自江苏
    我理解ebpf分类,可以分为tracepoint,kprobe,uprobe,USDT等

    作者回复: 如果按照内核中定义的bpf_prog_type,它的种类是非常多的(5.13已经支持30种了)。所以文中把这些类型又划分了大类,方便在需要的时候参考。

    
    1
  • 任智杰byte
    2022-03-11
    如何扩展程序类型呢?

    作者回复: 增加新的类型就需要修改内核源码了

    
    1
  • 不了峰
    2022-01-28
    打卡

    作者回复: 加油!

    
    1
  • 火火寻
    2022-03-19
    老师,问下,如果想要做业务层的流量控制,比如dubbo请求部分黑名单不让进来,使用哪种合适?

    作者回复: 这个可能直接用dubbo会比ebpf要更简单。ebpf虽然也可以用,但毕竟运行在内核中,实现复杂度会高一些

    
    
  • 彬
    2022-04-13
    老师后续会有更全的环境搭建吗?比如升级内核,如果不能直接apt安装bcc等需要采取源码编译等情况,如何在本地环境中编译然后发布到生产环境等情况讲解或者资料
    
    1