Введение в прикладной BPF (Berkeley Packet Filter)

10 подписчиков

12+
12+

4 просмотра

20 дней назад

ПожаловатьсяНарушение авторских прав

10 подписчиков

12+
12+

4 просмотра

20 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

4 просмотра

20 дней назад

Канал телеграм https://t.me/sinaimain Группа телеграм https://t.me/+eVqSMS7GuCNmMTdi Обо мне https://aefdn.ru/lomaster.html 00:00 Альфа 00:36 Введение 02:15 Как выглядит работа с BPF? 03:16 Пишем простой пример отправки пакета с BPF 03:26 -- Заголовочные файлы BPF 04:04 -- Открытие BPF сокета (open()) 04:46 ---- О пути к BPF (/dev/bpf) 05:32 ---- О правах открытия (O_RDONLY, O_WRONLY, O_RDWR) 06:26 -- Закрытие BPF сокета (close()) 06:48 -- Привязка интерфейса к BPF сокету (ioctl(), BIOCSETIF) 09:23 -- Отправка пакета (write()) 10:48 -- О том, что BPF может работать только от root 11:00 -- Тестируем отправку 11:48 Пишем простой пример приема пакета с BPF 11:52 -- Прием пакета с BPF сокета (read()) 12:11 -- О внутреннем буфере BPF 13:15 -- Как узнать размер внутреннего буфера? (BIOCGBLEN) 14:45 -- Тестируем прием пакета 15:01 -- О том, как работает read() при BPF сокете 16:15 -- О BPF заголовке (bpf_hdr) (кратко) 16:44 -- Как изменить размер внутреннего буфера? (BIOCSBLEN) 17:59 -- О немедленном режиме BPF (immediate mode, BIOCIMMEDIATE) 19:41 -- О BPF заголовке (bpf_hdr) (уже не кратко) 23:10 ---- Разница datalen и caplen на примере 24:18 -- Страшная правда про работу BPF 24:51 -- Расчитываем RTT на основе bh_tstamp (так делать нельзя! выше сказал об этом) 27:47 -- О том, как поставить таймаут на прием (BIOCSRTIMEOUT) 29:45 -- О BPF фильтрах 30:27 ---- О struct bpf_insn (инструкция на BPF языке) 31:12 ---- Делаем фильтр с помощью tcpdump (-dd) 31:50 ---- О struct bpf_program (сам BPF фильтр/программа) 33:08 ---- Установка BPF фильтра (BIOCSETF) 33:26 ---- О том, как работает BPF фильтр 35:16 ---- Тестируем BPF фильтр 37:35 ---- О BIOCSETFNR 38:38 ---- О BPF фильтрах для отправки (BIOCSETWF) 39:07 -- Как получить BPF статистику (BIOCGSTATS, bpf_stat) 42:07 -- Обнуление BPF статистики и внутреннего буфера (BIOCFLUSH) 43:05 -- Массовый прием пакетов (без immediate режима) 47:31 -- О promisc режиме (BIOCPROMISC) 48:28 -- О zero-copy BPF буфере 50:09 Пара слов о языке BPF 51:01 Еще страшная правда о BPF и его скорость 52:09 Омега BPF man-page (на русском): https://drive.google.com/file/d/17c51kf_ybl-n9WpHqcCXaG6XOepqZPRN/view?usp=sharing BPF статья (на русском): https://drive.google.com/file/d/1BuzVgH5YOarNpoo_-_39zpFo_XwfLiol/view?usp=sharing Итоговый пример из видео: https://github.com/Lomasterrrr/ppprimeri/blob/main/tmp.c

Название:

Введение в прикладной BPF (Berkeley Packet Filter)

Категория:

Разное