首页 > TAG信息列表 > BPF

eBPF

深入浅出eBPF|你要了解的7个核心问题-阿里云开发者社区 https://developer.aliyun.com/article/947869 深入浅出eBPF|你要了解的7个核心问题 来自:阿里技术 2022-06-08 374 简介: 过去一年,ARMS基于eBPF技术打造了Kubernetes监控,提供多语言无侵入的应用性能,系统性能,网络性能观测能力

eBPF原理介绍与C语言实现eBPF程序

eBPF原理介绍与C语言实现eBPF程序  发表于 2022-03-22   分类于 Network 之前的文章<<使用eBPF和BCC调查创建文件的进程>>介绍了基于BCC来实现eBPF程序。BCC实现了对eBPF的封装,用户态部分提供Python API, 内核态部分使用的eBPF程序还是通过C语言来实现。运行时BCC会把eBPF

LLVM编译技术应用分析

LLVM编译技术应用分析 参考文献链接 https://mp.weixin.qq.com/s/_d5HR9yHdwhGYozr9IaU_A https://mp.weixin.qq.com/s/bWT7FBH8PsLqFeeGotLEnQ https://mp.weixin.qq.com/s/iwVQ_r0SljakMGqWQL2KXA https://mp.weixin.qq.com/s/MfV1FkwQSNokZuzedizALA LLVM eBPF 汇编编程 引言 1

linux命令之tcpdunp

TCPDUMP官方文档以及介绍如何使用C/C++实现libpcap抓取网络数据包 网络相关的内容比较多,先将自己用到的记录协一下,以后遇到再增加 什么是tcpdump?为什么使用tcpdump?怎么使用? 1.tcpdump是什么? tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有

深入浅出eBPF|你要了解的7个核心问题

简介: 过去一年,ARMS基于eBPF技术打造了Kubernetes监控,提供多语言无侵入的应用性能,系统性能,网络性能观测能力,验证了eBPF技术的有效性。eBPF技术和生态发展很好,未来前景广大,作为该技术的实践者,本文目标是通过回答7个核心问题介绍eBPF技术本身,为大家解开eBPF的面纱。 作者 | 炎寻

eBPF学习笔记(一)概述

eBPF技术简述       eBPF 是起源于内核的革命性技术,从 2011 年开发至今,eBPF 社区依然非常活跃 。eBPF 可以通过热加载的sandbox程序到内核中而不需要insmod module的方式,避免内核模块的方式可能会引入宕机风险,并具备堪比原生代码的执行效率。eBPF程序不会引起系统宕机,Just-In-

BPF简介

BPF,及伯克利包过滤器Berkeley Packet Filter,最初构想提出于 1992 年,其目的是为了提供一种过滤包的方法,并且要避免从内核空间到用户空间的无用的数据包复制行为。它最初是由从用户空间注入到内核的一个简单的字节码构成,它在那个位置利用一个校验器进行检查 —— 以避免内核崩溃或者

BCC - 用于Linux性能监视,网络和更多的动态跟踪工具

BCC(BPF编译器集合 )是用于创建足智多谋内核跟踪和操作程序一套功能强大的适当的工具和示例文件。 它采用扩展BPF( Berkeley包过滤器 ),最初被称为eBPF这是在Linux的3.15的新功能之一。 BCC / BPF - 用于Linux性能监视的动态跟踪工具 实际上,大多数由BCC使用的组件的需要的Linux 4.1或

Rust如何开发eBPF应用(一)?

前言 eBPF是一项革命性的技术,可以在Linux内核中运行沙盒程序,而无需重新编译内核或加载内核模块。它能够在许多内核 hook 点安全地执行字节码,主要应用在云原生网络、安全、跟踪监控等方面。 eBPF 基金会 (https://ebpf.io) 是一个为 eBPF 技术而创建的非盈利性组织,隶属于 Linux 基

(gopher)一无所知学ebpf

这里写自定义目录标题 前言ebpf是什么关于ebpf的一些背景知识我该如何学习ebpf 搭建ebpf开发环境开始第一个bpf程序kernel部分代码分析includeSECbpf_helper小结 userspace代码分析go generateloadBpfObjectsperf.NewReader小结 杂项总结 前言 我相信仍然有很多人不知道

eBPF-AntiRootkit

背景: 针对最近几年频繁出现的通过eBPF进行容器逃逸、rootkit等攻击,需要考虑如何收敛服务器ebpf相关权限,防止被黑客利用。 静态方案: 宿主机层面: 非root用户不赋予CAP_BPF及CAP_SYS_ADMIN 注:3.15 - 5.7 内核不赋予CAP_SYS_ADMIN即可 5.8及以后内核需要同时不存在CAP_BPF及CAP_SYS

eBPF开发指南

0x1:技术背景 bpf: BPF 的全称是 Berkeley Packet Filter,是一个用于过滤(filter)网络报文(packet)的架构。(例如tcpdump),目前称为Cbpf(Classical bpf) Ebpf: eBPF全称 extended BPF,Linux Kernel 3.15 中引入的全新设计, 是对既有BPF架构进行了全面扩展,一方面,支持了更多领域的应用,

XDP

https://www.kernel.org/doc/html/latest/networking/af_xdp.html https://docs.cilium.io/en/latest/bpf/#bpf-and-xdp-reference-guide

DB2 Buffer Pool定义的太大

DB2 Buffer Pool定义的太大   如果是 Buffer Pool定义的太大, 无法分配造成的数据库不能连接, 可以尝试用下面的步骤来解决:  1. 用DB2实例Owner的用户登录到系统,  2. 执行下面的命令来设置环境变量DB2_OVERRIDE_BPF  db2set DB2_OVERRIDE_BPF=number-of-pages  其中numbe

CVE-2020-8835-通过不正确的 EBPF 程序验证导致 LINUX 内核权限提升

文章目录 摘要前言漏洞相关信息准备工作 漏洞的相关源码阅读验证程序的整体架构设计目标具体实现 漏洞附近的详细代码 漏洞利用设计思路绕过验证程序泄漏 KASLR任意读内核地址通过任意的读--查找cred结构通过任意写--进行提权 运行结果附录漏洞复现步骤参考链接EXP完整代码

【译】eBPF 概述:第 1 部分:介绍

本系列导航: eBPF 概述:第 1 部分:介绍 eBPF 概述:第 2 部分:机器和字节码 eBPF 概述:第 3 部分:软件开发生态 eBPF概述:第 4 部分:在嵌入式系统运行 eBPF概述:第 5 部分:追踪用户进程 原文地址:https://www.collabora.com/news-and-blog/blog/2019/04/05/an-ebpf-overview-part-1-introduct

BPF过滤

概述 伯克利包过滤器(Berkeley Packet Filter,缩写 BPF),是类Unix系统上数据链路层的一种原始接口,提供原始链路层封包的收发。除此之外,如果网卡驱动支持混杂模式,那么它可以让网卡处于此种模式,这样可以收到网络上的所有包,不管他们的目的地是不是所在主机。另外,BPF支持过滤数据包—

深入浅出 BPF TCP 拥塞算法实现原理

本文地址:https://www.ebpf.top/post/ebpf_struct_ops 1. 前言 eBPF 的飞轮仍然在快速转动,自从 Linux 内核 5.6 版本支持 eBPF 程序修改 TCP 拥塞算法能力,可通过在用户态修改内核中拥塞函数结构指针实现;在 5.13 版本中该功能又被进一步优化,增加了该类程序类型直接调用部分内核

Linux网络新技术基石:eBPF and XDP

hi,大家好,欢迎来到极客重生的世界,今天给大家分享的是Linux 网络新技术,当前正流行网络技是什么?那就是eBPF和XDP技术,Cilium+eBPF超级火热,Google GCP也刚刚全面转过来。 新技术出现的历史原因 廉颇老矣,尚能饭否 iptables/netfilter iptables/netfilter 是上个时代Linux网络提供

运维人不得不了解的eBPF入门指南,新手建议收藏~

eBPF(Extended Berkeley Packet Filter)的核心是驻留在 kernel 的高效虚拟机。最初的目的是高效网络过滤框架,前身是BPF,所以我们先了解下BPF BPF 框架 上图是BPF的位置和框架,需要注意的是kernel和user使用了buffer来传输数据,避免频繁上下文切换。BPF虚拟机非常简洁,由累加器、索

【踩坑】使用libbpfgo构建你的第一个eBPF项目

文章目录 前言一、为什么使用libbpf?二、环境搭建1.Libbpf相关环境搭建2.GO环境搭建 三、使用libbpfgo编译运行eBPF程序步骤1:生成头文件步骤2:Clang将BPF程序的源代码编译为.o对象文件步骤3:使用GO编译为二进制文件并运行 后记 前言 本文参考:How to Build eBPF Programs wi

Delete BPF from PowerApps solution

When you delete BPF from solution directly, you will catch error and show dependencies, there are multiple. dependencies list.   Here you need to go classic solution designer Advanced Setting->Setting->Customization->Process and delete it.

【Rust日报】2020-11-13 - 使用内部非泛型函数来避免静态分发导致的编译速度下降和二进制

PossibleRust.comPossibleRust.com是上线不久的专注于分享Rust的个人博客网站,作者从2013年0.8版开始学习Rust,并声称到现在他也一直在学新的Rust的东西。比如最新的一篇博文Non-Generic Inner Functions讲到如何使用内部非泛型函数来避免静态分发导致的编译速度下降和二进制体积膨胀

【Rust日报】2020-11-11 -「InfluxDB IOx」未来会用 Rust 和 Arro

「InfluxDB IOx」未来会用 Rust 和 Arrow 构建内核Rust提供了对运行时行为和内存管理的更精细控制。另外,它使并发编程更容易,并且消除了数据争用。Apache Arrow定义了用于列式数据的内存格式,以及Parquet(一种持久的持久性格式)以及Flight(一种用于“通过网络接口进行大型数据集的高性能

bcc-execsnoop 性能

  目前使用到的bcc程序主要包括两个部分,一部分是python语言,一部分是c语言。python部分主要做的工作是BPF程序的加载和操作BPF程序的map,并进行数据处理。c部分会被llvm编译器编译为BPF字节码,经过BPF验证器验证安全后,加载到内核中执行。python和c中出现的陌生函数可以查下面这两个