From 2f151c0943374f4bb3120768e6036ee91667a7b0 Mon Sep 17 00:00:00 2001 From: bol-van Date: Wed, 29 Jan 2025 14:55:11 +0300 Subject: [PATCH] readme: update flow offload info --- docs/readme.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/readme.md b/docs/readme.md index 14b60f7..a08659c 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -761,8 +761,16 @@ iptables могут не работать. При включенном offloadin DNAT/REDIRECT (tpws). Эти соединения исключаются из offloading. Однако, остальные соединения идут через SFO, потому NFQUEUE будет срабатывать только до помещения соединения в flowtable. Практически это означает, что почти весь функционал nfqws работать не будет. Offload включается через специальный target в iptables `FLOWOFFLOAD` или через flowtable в nftables. + Не обязательно пропускать весь трафик через offload. -Можно исключить из offload соединения, которые должны попасть на tpws или nfqws. OpenWrt не предусматривает выборочного управления offload. +tpws и так обходит offload "by design", а для отработки nfqws достаточно первых нескольких пакетов в tcp соединении или udp сеансе. +Пока сеанс не направлен на offload, он процессится обычным образом через полноценный netfilter. +Как только срабатывает правило offload по любому входящему или исходящему пакету, весь сеанс окончательно уходит из netfilter в offload. +Поэтому скрипты zapret берут правила для NFQUEUE, что они создали, и из них создают exemption правила, которые не дают раньше времени попасть сеансу в offload, а потом его "отпускают". +При этом входящим пакетам не дают начать offload, триггером выступают только исходящие пакеты. +Эта схема обеспечивает практически нулевой негативный эффект на скорость, одновременно покрывая нужды nfqws и упрощая правила таблиц. + +OpenWrt не предусматривает выборочного управления offload. Поэтому скрипты zapret поддерживают свою систему выборочного управления offload в OpenWrt. iptables target `FLOWOFFLOAD` - это проприетарное изобретение OpenWrt.