Вопросы по теме 'bpf'

Как использовать необработанный сокет для прослушивания только нужного трафика?
Три связанных вопроса: Имеют ли необработанные сокеты какой-либо метод фильтрации, эквивалентный встроенному в ядро ​​BPF (используемому libpcap)? Означает ли открытие необработанного сокета, что он получает каждый IP-пакет на машине?...
1013 просмотров
schedule 11.11.2022

Фильтрация пакетов с помощью Netfilter NFQUEUE и Berkeley Packet Filter (BPF)
Я только что прочитал в этих ответах про два варианта разработки пакетных фильтров в linux. Первый использует iptables и netfilter , вероятно, с NFQUEUE и библиотека libnetfilter_queue . Во-вторых, с помощью BPF (Berkeley Packet...
2476 просмотров
schedule 06.05.2022

Определена ли реализация значений кода операции Berkeley Packet Filter?
Определена ли реализация значений кода операции Berkeley Packet Filter? Я всегда считал tcpdump/libpcap авторитетными на арене BPF. Я заметил, что ядро ​​Linux и tcpdump по-разному читают фильтры BPF. Мнемоника и поведение BPF одинаковы, но сами...
355 просмотров
schedule 30.04.2022

Может ли eBPF изменить возвращаемое значение или параметры системного вызова?
Чтобы смоделировать некоторое поведение, я хотел бы прикрепить зонд к системному вызову и изменить возвращаемое значение при передаче определенных параметров. В качестве альтернативы также было бы достаточно изменить параметры функции до того, как...
3850 просмотров
schedule 07.03.2024

eBPF: программы/карты bpf по умолчанию?
Я столкнулся со странным поведением bpf с последним ядром net-next . Со всеми включенными параметрами ядра BPF (включая CONFIG_BPF_JIT_ALWAYS_ON ) и без загруженных каких-либо bpf программ bpftool сообщает следующее: # ./bpftool prog...
516 просмотров
schedule 01.04.2024

Ошибка при загрузке программы BPF, которая копирует буфер в стек BPF.
Я пытаюсь загрузить программу BPF, которая просто копирует параметр buf из tty_write в стек BPF. Моя программа выглядит следующим образом: #define BUFSIZE 256 SEC("kprobe/tty_write") int kprobe__tty_write(struct pt_regs *ctx, struct file...
388 просмотров
schedule 07.09.2022

Адрес источника фильтра BPF == адрес передачи
Каков правильный фильтр BPF только для получения пакетов, в которых MAC-адрес источника равен MAC-адресу передачи? Глядя на документацию, кажется, что поля должны быть доступны через wlan[21:12] или wlan.addr2 , но я не могу заставить их работать.
320 просмотров
schedule 07.10.2023

Как вывести список всех программ bpf, загруженных в ядро? (например, tc-bpf)
Я знаю, что программу bpf можно загрузить в ядро ​​разными способами, tc/kprobe/socket... И я хочу знать, есть ли интерфейс или что-то вроде того, через который я могу получить всю загруженную мной программу bpf? Если нет, не опасно ли, если я...
1813 просмотров
schedule 04.01.2023

Как определить направление пакета в программе-вердикте BPF_PROG_TYPE_SK_SKB?
Я пишу программу вердикта BPF_PROG_TYPE_SK_SKB для принятия решений о перенаправлении. Как определить направление пакета (вход/выход)? У меня есть доступ к локальным и удаленным port каждого пакета, но я не могу определить, какой из них...
223 просмотров
schedule 10.06.2023

Не удалось загрузить код eBPF/XDP на Raspberry Pi
Основная проблема в том, что я не могу загрузить код eBPF в сетевой интерфейс (XDP). Я пытаюсь загрузить Raspberry Pi 3 со следующей конфигурацией: Raspbian GNU/Linux 10 (Бастер) Ядро 4.19.50-v7+ Я использую команду ip следующим...
1216 просмотров
schedule 09.04.2024

Написать программу фильтрации пакетов в ebpf
Если я хочу написать программу cBPF, которая фильтрует пакеты icmp, я могу сделать это, выполнив tcpdump с параметром -dd , который Дамп кода сопоставления пакетов в виде фрагмента программы на C. .. см. пример ниже Как я могу...
638 просмотров
schedule 15.10.2022

Функциональность хэша BPF структуры карт
Я пишу инструмент BPF, который поддерживает трассировку для каждого процесса, а это значит, что мне понадобится какая-то двумерная структура данных. Чтобы обойти ограничение в 512 байт, я решил, что лучше всего использовать поддерживаемые структуры...
535 просмотров
schedule 19.02.2023