Публикации по теме 'bpf'
Добавление целевой поддержки BPF в компилятор Rust
Когда я создал этот блог еще в сентябре, моей целью было публиковать сообщения хотя бы раз в месяц. Сейчас декабрь, и вы читаете мой второй пост, так что у меня не очень хорошее начало. 🤔
Однако дела на фронте Rust BPF были заняты! В конце октября я начал работать над блогом о текущем положении вещей, ровно через год после того, как начал этим заниматься. Делая это, я, наконец, почувствовал себя достаточно вдохновленным, чтобы попытаться добавить цель BPF в rustc, что-то, что было в..
Вопросы по теме 'bpf'
Использование BPF с SOCK_DGRAM на Linux-машине
Можно ли фильтровать пакеты с помощью BPF на сокете дейтаграммы?
Когда я пытаюсь прикрепить фильтр, но я не получаю никаких пакетов, ошибок не возникает. Я скомпилировал фильтр с помощью libpcap, а фильтр работает с tcpdump.
Вот сокращенная...
1109 просмотров
schedule
04.08.2022
Использование libpcap для создания библиотек примеров файлов дампа
Использование libpcap оказалось очень простым, но скорость всегда является проблемой для гигантских (в произвольном смысле) дампов .pcap.
Существуют ли какие-либо общепринятые методы простого сэмплирования дампа? Возможно, что-то, что эффективно...
49 просмотров
schedule
20.04.2024
классический BPF в Linux: фильтр не работает
Я пытаюсь протестировать классический BPF для фильтрации пакетов, подключив его к сырому сокету. Я хочу перехватывать TCP-пакеты с первым байтом исходного порта == 8 (tcpdump 'tcp [1: 1] = 0x50'), но я не вижу входящих пакетов в сокет. Без фильтра...
2967 просмотров
schedule
22.02.2022
Как фильтровать пакеты по списку IP с помощью Scapy
Я пытаюсь фильтровать пакеты определенного веб-сайта в Python (используя Scapy). У меня есть список возможных IP-адресов (используемых для балансировки нагрузки) веб-сайта. Я хочу фильтровать пакеты для всех этих IP-адресов. Как я могу это сделать?...
2219 просмотров
schedule
07.06.2024
ebpf - имена разделов
Обязательно ли иметь уникальные имена для каждого раздела программы в bpf программе? Например, эта программа отлично компилируется с llvm-5.0 :
...
SEC("sockops")
int bpf1(struct bpf_sock_ops *sk_ops)
{
return 1;
}
SEC("sockops")
int...
693 просмотров
schedule
30.06.2023
Недопустимый аргумент (EINVAL) при попытке загрузить программу BPF
Я пытаюсь загрузить программу BPF с помощью системного вызова bpf , но в ответ получаю invalid argument (EINVAL). Из справочной страницы возможные причины этого находятся:
EINVAL
For BPF_PROG_LOAD, indicates an attempt to load an invalid...
1239 просмотров
schedule
15.12.2022
Отказано в доступе при извлечении поля из указателя на большую структуру в программе BPF
Я пытаюсь написать программу BPF, которая проверяет идентификатор сеанса любого процесса, вызывающего функцию ядра tty_write . Чтобы получить идентификатор, мне нужно пройти ряд полей от указателя к текущему task_struct , однако извлечение...
654 просмотров
schedule
17.06.2023
Всегда получайте 0 идентификатор сеанса в программе BPF
Я пытаюсь написать программу BPF, которая проверяет идентификатор сеанса любого процесса, вызывающего функцию ядра tty_write . Я пытаюсь сделать это, извлекая поле из текущей структуры task_struct . Мой код выглядит следующим образом:...
301 просмотров
schedule
27.06.2023
eBPF: понять два макроса в коде верификатора
Я смотрю в код верификатора ebpf и не могу понять следующие макросы:
#define offsetof(TYPE, MEMBER) ((size_t)&((TYPE *)0)->MEMBER)
#define offsetofend(TYPE, MEMBER) \
(offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER))...
73 просмотров
schedule
01.01.2023
ebpf: перехват вызовов функций
Я читаю о типе программы kprobes BPF и мне интересно, можно ли не просто перехватывать вызов функции для целей трассировки или собирать некоторую низкоуровневую информацию (регистры, стек и т. д.), но заменять вызов и выполнение вместо...
1059 просмотров
schedule
11.06.2023
ebpf: существует ли троичный поиск?
Есть ли map в ebpf , который может выполнять троичный поиск? Я знаю, что существует карта LPM для самого длинного совпадения префикса, но я хотел бы иметь что-то вроде этого:
val & 0xF0F01234 == 0x10101234
81 просмотров
schedule
17.02.2023
Неявное объявление eBPF помощника BPF
У меня проблема с компиляцией программы eBPF, которую я устанавливаю с помощью TC. На данный момент он выполняет только некоторые базовые изменения, которые требуют пересчета контрольной суммы IP.
Я заметил в хелперах BPF, что есть функция...
1077 просмотров
schedule
24.02.2023
Как решить ошибку «inv» недопустимого доступа к памяти R0 при загрузке файлового объекта eBPF
Я пытаюсь загрузить объект eBPF в ядро с помощью libbpf , безуспешно, получая ошибку, указанную в заголовке. Но позвольте мне показать, насколько прост мой BPF *_kern.c .
SEC("entry_point_prog")
int entry_point(struct xdp_md *ctx)
{
int...
808 просмотров
schedule
06.12.2022
Почему kretprobe на sys_futex вызывается реже, чем соответствующий kprobe?
Я занимаюсь отслеживанием различных функций ядра и системных вызовов и устанавливаю закономерности между ними, которые можно использовать для определенного профилирования производительности.
Одна вещь, которую я заметил, заключается в том, что...
282 просмотров
schedule
27.10.2022
bpf/bcc сообщает об ошибке при попытке доступа к `struct rq`
Это моя программа bpf для профилирования функции ядра pick_next_task_fiar .
#include <uapi/linux/ptrace.h>
#include <linux/sched.h>
#include <linux/nsproxy.h>
#include <linux/pid_namespace.h>
struct rq; // forward...
297 просмотров
schedule
09.04.2023
Как получить код возврата системного вызова с помощью SECCOMP_RET_DATA и PTRACE_GETEVENTMSG
Я немного сбит с толку, пытаясь получить возвращаемое значение системного вызова с помощью ptrace + seccomp.
man 4 bpf говорит :
FILTER MACHINE
A filter program is an array of instructions, with all branches forwardly
directed, terminated...
510 просмотров
schedule
18.07.2022
Почему моя программа BPF_PROG_TYPE_CGROUP_SKB не работает в контейнере?
Я написал следующую программу eBPF для подсчета пакетов:
#include <linux/version.h>
#include <uapi/linux/bpf.h>
#include "include/bpf_map.h"
#include "include/bpf_helpers.h"
struct bpf_map_def SEC("maps/count") count_map = {...
399 просмотров
schedule
16.09.2022
Почему эта программа, использующая BPF и RAW SOCKET, просто зависает?
ЦЕЛЬ: написать простой фильтр пакетов с использованием BPF. Пакетный фильтр должен позволять вам выбирать интерфейс.
ПРОБЛЕМА: если я раскомментирую предпоследнюю инструкцию в коде (там, где есть вызов recvfrom , выполнение просто зависает, и...
156 просмотров
schedule
02.08.2022
загрузить сгенерированный код seccomp_export_bpf в ядро
http://man7.org/linux/man-pages/man3/seccomp_export_bpf.3.html как я могу загрузить сгенерированный код в ядро? Каковы возможные варианты использования этой функции?
80 просмотров
schedule
16.02.2024
Как использовать фильтр seccomp с ebpf?
Я ищу пример eBPF для написания фильтра seccomp, но не могу найти. Может ли кто-нибудь сказать мне, можно ли использовать eBPF для написания фильтра seccomp?
724 просмотров
schedule
05.04.2024