From ca42c88ce0a5240f5464d1051bde5c55955d2e8d Mon Sep 17 00:00:00 2001 From: bol-van Date: Mon, 13 Oct 2025 12:33:54 +0300 Subject: [PATCH] update docs --- docs/readme.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/readme.md b/docs/readme.md index ccc9223c..2fbbab5f 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -25,6 +25,7 @@ zapret является свободным и open source. - [МОДИФИКАЦИЯ ФЕЙКОВ](#модификация-фейков) - [TCP СЕГМЕНТАЦИЯ](#tcp-сегментация) - [ПЕРЕКРЫТИЕ SEQUENCE NUMBERS](#перекрытие-sequence-numbers) + - [НАЗНАЧЕНИЕ IP_ID](#назначение_ip_id) - [СПЕЦИФИЧЕСКИЕ РЕЖИМЫ IPV6](#специфические-режимы-ipv6) - [МОДИФИКАЦИЯ ОРИГИНАЛА](#модификация-оригинала) - [ДУБЛИКАТЫ](#дубликаты) @@ -207,6 +208,7 @@ dvtws, собираемый из тех же исходников (см. [док --methodeol ; добавить перевод строки в unix стиле ('\n') перед методом и убрать пробел из Host: : "GET / ... Host: domain.com" => "\nGET / ... Host:domain.com" --hostspell=HoST ; точное написание заголовка Host (можно "HOST" или "HoSt"). автоматом включает --hostcase --domcase ; домен после Host: сделать таким : TeSt.cOm +--ip_id=seq|seqgroup|rnd|zero ; режим назначения ip_id для генерированных пакетов --dpi-desync=[,][, ; бит fwmark для пометки десинхронизирующих пакетов, чтобы они повторно не падали в очередь. default = 0x40000000 --dpi-desync-ttl= ; установить ttl для десинхронизирующих пакетов @@ -537,6 +539,25 @@ Windows оставляет старые данные, поэтому disorder с В варианте `disorder` допустимо применение всех вариантов маркеров. Они автоматически нормализуются к текущему пакету в серии. Можно сплитать на `midsld` и делать seqovl на `midsld-1`. +### НАЗНАЧЕНИЕ IP_ID + +Некоторые DPI секут поле ipv4 заголовка ip_id. Защита заключается в распознавании нехарактерного для разных ОС порядка назначения ip_id, +но характерного для некоторого anti-DPI софта. Обычно ОС инкрементируют ip_id для каждого следующего пакета. +Например, на ТСПУ повторение ip_id фейка и не фейка вызывает триггер блока на диапазонах IP googlevideo.com. + +Если отсылаются фейки или дополнительные tcp сегменты, то в любом случае последовательность будет нарушена, поскольку ОС ничего не будет знать о всунутых фейках +и не увеличит свой счетчик ip_id на количество фейков или дополнительных tcp сегментов. +Чтобы сохранить последовательность, потребовалось бы перехватывать все соединение до конца, что очень затратно по ресурсам. +Поэтому после отработки серии генерированных пакетов ip_id возвращается к тому значению, о котором знает ОС. + +Параметр `ip_id` относится к профилю и задает режим назначения ip_id при отсылке генерированных в nfqws пакетов. + + * `seq` (по умолчанию) : взять последний ip_id реального пакета. последующие генерированыне пакеты получают увеличенные на 1 ip_id, кроме случая `multidisorder`. + для `multidisorder` в пределах сегментов, где есть сплит-позиции, значение ip_id увеличивается на количество частей, затем уменьшается на 1 с каждой отосланной частью. + * `seqgroup` : то же, что и `seq`, но фейки того же размера, что и оригинальные сегменты, и максирующиеся под оригинал получают те же ip_id. + * `rnd` : всем генерированным пакетам назначать случайный ip_id + * `zero` : всем генерированным пакетам назначать ip_id=0 . в этом случае Linux и BSD отошлют 0, Windows назначит последовательные ip_id всем пакетам. + ### СПЕЦИФИЧЕСКИЕ РЕЖИМЫ IPV6 Режимы десинхронизации `hopbyhop`, `destopt` и `ipfrag1` (не путать с fooling !) относятся только к ipv6 и заключается