diff --git a/docs/readme.md b/docs/readme.md index dd18308..aa155af 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -333,14 +333,19 @@ dvtws, собираемый из тех же исходников (см. [док выяснено, что многие провайдерские NAT не отбрасывают эти пакеты, потому работает даже с внутренним провайдерским IP. Но linux NAT оно не пройдет, так что за домашним роутером эта техника скорее всего не сработает, но может сработать с него. Может сработать и через роутер, если подключение по проводу, и на роутере включено аппаратное ускорение. -* `autottl`. Суть режима в автоматическом определении TTL, чтобы он почти наверняка прошел DPI и немного не дошел до - сервера. Берутся базовые значения TTL 64,128,255, смотрится входящий пакет - (да, требуется направить первый входящий пакет на nfqws !). Вычисляется длина пути, отнимается `delta` (1 по - умолчанию). Если TTL вне диапазона (min,max - 3,20 по умолчанию), то берутся значения min,max, чтобы вписаться в - диапазон. Если при этом полученный TTL больше длины пути, то автоматизм не сработал и берутся фиксированные значения - TTL для атаки. Техника позволяет решить вопрос, когда вся сеть перегорожена шлагбаумами (DPI, ТСПУ) везде где только +* `autottl`. Суть режима в автоматическом определении TTL, чтобы пакет почти наверняка прошел DPI и немного не дошел до + сервера (`--dpi-desync-autottl`). Или наоборот - TTL едва хватило, чтобы он все-таки дошел до сервера (см `--dup-autottl`, `--orig-autottl`). + Берутся базовые значения TTL 64,128,255, смотрится входящий пакет (да, требуется направить первый входящий пакет на nfqws !). + Вычисляется длина пути, прибавляется `delta`. delta может быть положительной или отрицательной. + Чтобы задать положительную дельту, нужно указать унарный знак **+** перед числом. + В случае его отсутствия или при наличии унарного знака **-** дельта считается отрицательной. + Если TTL вне диапазона min,max, то берутся значения min,max, чтобы вписаться в + диапазон. Если при этом дельта отрицательная и полученный TTL больше длины пути или дельта положительная и полученный TTL меньше длины пути, + то автоматизм не сработал и берутся фиксированные значения : `--dpi-desync-ttl`, `--orig-ttl`, `--dup-ttl`. + Техника позволяет решить вопрос, когда вся сеть перегорожена шлагбаумами (DPI, ТСПУ) везде где только можно, включая магистралов. Но потенциально может давать сбои. Например, при асимметрии входящего и исходящего канала - до конкретного сервера. На каких-то провайдерах эта техника будет работать неплохо, на других доставит больше проблем, + до конкретного сервера. Некоторые сервера выдают нестандартный TTL (google), потому на них получается полная ерунда. + Если не учитывать подобные исключения, то на каких-то провайдерах эта техника будет работать неплохо, на других доставит больше проблем, чем пользы. Где-то может потребоваться тюнинг параметров. Лучше использовать с дополнительным ограничителем. Режимы дурения могут сочетаться в любых комбинациях. `--dpi-desync-fooling` берет множество значений через запятую. @@ -487,7 +492,7 @@ extension хедерам в поисках транспортного хедер Схема аналогична `--dpi-desync-start` и `--dpi-desync-cutoff`. Функция может быть полезна, когда DPI охотится за фейками и блокирует соединение при наличии подозрительных признаков, -в частности, измененный TTL. +в частности, измененный TTL у фейка относительно оригинала. ### ДУБЛИКАТЫ @@ -500,8 +505,8 @@ extension хедерам в поисках транспортного хедер Возможно применение всех вариантов дурения, как и для desync : `--dup-ttl`. `--dup-ttl6`, `--dup-fooling`. Нужно ли, чтобы эти пакеты доходили до сервера и в каком виде, решаете вы согласно задуманной стратегии. -Вариант `--dup-autottl` и `--dup-autottl6` работает аналогично `dpi-desync-autottl`, но по оригинальным пакетам. -Дельту стоит указывать можно положительную с унарным знаком `+`, а можно и отрицательную. Зависит от вашей задумки. +Вариант `--dup-autottl` и `--dup-autottl6` работает аналогично `dpi-desync-autottl`, но по дублям. +Дельту можно указывать положительную с унарным знаком `+`, а можно и отрицательную. Зависит от вашей задумки. Пример : `--dup-autottl=-2:3-64`. `--dup-start` и `--dup-cutoff` задают ограничитель по началу и концу применения стратегии дубликатов. @@ -532,6 +537,7 @@ ipcache представляет собой структуру в памяти Данная техника является экспериментальной. Ее проблема в том, что как такового нет однозначного соответствия между доменом и IP. Множество доменов могут ссылаться на тот же IP адрес. При коллизии происходит замещение имени хоста на последний вариант. Домен может скакать по разным IP на CDN. Сейчас один адрес, через час - другой. Эта проблема решается через время жизни записей кэша : `--ipcache-lifetime`. По умолчанию 2 часа. +Однако, может случиться и так, что в вашем случае применение техники несет больше пользы, чем проблем. Будьте готовы к непонятному на первый взгляд поведению, которое может быть исследовано только через `--debug` лог. При подаче сигнала SIGUSR2 процесс выводит содержимое ipcache на консоль.