Инфраструктура · DPI-измерения

Измерительный стенд DPI: как мы проверяем, какой транспорт выживает под фильтрацией

Выбор транспорта и точки входа можно решать на ощупь, а можно — измерять. Разбираем методологию собственного стенда: какая связка «точка входа × транспорт» реально переживает фильтрацию провайдера и сколько живёт по времени.

Проблема

Почему выбор транспорта нельзя решать на глаз

Без объективных измерений любое решение о транспорте и точке входа — это догадка. Три конкретные проблемы, которые с этим связаны.

Решение на глаз

Без измерений выбор транспорта и точки входа превращается в догадку, которую нельзя ни проверить, ни повторить.

Ложный диагноз «мёртво»

Клиент показывает «недоступен» — но без инструментов нельзя отличить действительно упавший узел от точечной блокировки новых подключений.

Нет истории по времени

Разовая проверка в моменте не отвечает на вопрос, был ли отказ постоянным или привязан к конкретному часу и дню.

Архитектура

Три роли стенда

Стенд разделён на три обособленные роли — так, чтобы точка измерения, мишень для проверки и место сбора результатов не смешивались.

  1. Сборщик метрик и логов — вне зоны активной фильтрации Принимает результаты со всех точек эксперимента и хранит их для последующего разбора.
  2. Лаборатория-мишень — за пределами зоны фильтрации На ней одновременно подняты несколько транспортов-кандидатов и контрольный «голый» протокол без обфускации — для честного сравнения.
  3. Измерительные пробы — внутри зоны фильтрации, у разных операторов Постоянно опрашивают лабораторию-мишень через каждый транспорт и передают результат сборщику.
Эксперимент

Матрица «точка входа × транспорт», а не единичная проверка

Суть эксперимента — не проверить один транспорт один раз, а держать постоянную матрицу: несколько точек входа (разные операторы внутри зоны фильтрации) на пересечении с несколькими транспортами-кандидатами и контрольным «голым» протоколом без обфускации. Каждая связка непрерывно даёт метрику «жив / мёртв» и задержку, с меткой конкретной точки входа.

Результат раскладывается в таймлайн состояний за неделю: не просто «сейчас недоступно», а когда именно связка перестаёт отвечать и когда восстанавливается. Это и вскрывает закономерности по времени суток и дням, которые не видны при разовой проверке.

Масштабирование

Как стенд расширяется

Новая точка входа

Внутри зоны фильтрации поднимается новый пробер, нацеленный на подписку лаборатории-мишени, и добавляется как новая цель сбора метрик со своей меткой точки входа.

Новый транспорт

На сервере-мишени добавляется новый инбаунд, манифест подписки, который раздаёт сборщик, обновляется под новый транспорт.

Логи с нового узла

Агент сбора логов поднимается в режиме только для чтения, с ограничением по памяти, и направляется на приёмник логов сборщика.

Уроки внедрения

Что стенд заставил переделать

  1. Метрики из зоны фильтрации — push, а не pull Внутри зоны фильтрации входящие соединения на нестандартные порты со стороны внешнего запроса часто блокируются по умолчанию — попытка сборщика самому опрашивать пробер упирается в таймаут. Решение — обратная модель: пробер сам, по таймеру, раз в минуту отправляет свои метрики на приёмник сборщика.
  2. Подписка встроенная в конфигурацию, а не URL-ссылка Внутри зоны фильтрации обычный HTTP может проходить нормально, а HTTPS к конкретному ресурсу — обрываться по таймауту. Это признак точечного троттлинга TLS-трафика к адресу, а не общей недоступности сети. Вывод: критичные данные для пробера разумнее передавать не отдельной HTTPS-ссылкой, а встроенным содержимым прямо в конфигурации — чтобы не зависеть от доступности ещё одного запроса.
  3. Новый агент — сначала на канареечной ноде Любой новый агент на боевых узлах разворачивается только в режиме чтения: логи монтируются read-only, потребление памяти ограничено, включён автоматический перезапуск. Перед массовым раскатыванием агент обкатывается на одной ноде без реальных пользователей, а на остальные узлы выкатывается последовательно — с остановкой при первом же признаке проблемы.
  4. «Недоступен» не всегда значит «мёртв» Диагноз «недоступен» со стороны клиента иногда означает не смерть узла, а активное противодействие именно новым попыткам подключения — при этом уже установленные сессии действующих пользователей продолжают работать, и узел показывает не нулевое число активных клиентов. Это два разных диагноза, и путать их — значит чинить не то.
Связанные материалы

Диагностика того же класса проблем

Стенд снимает вопрос «жив или мёртв» на уровне транспорта и точки входа. Для диагностики конкретного сервера или IP-адреса используйте отдельные разборы: SNI-тест зафлагованного IP за 5 минут и методологию диагностики VPN-инфраструктуры по слоям — оба построены на том же принципе: сначала измерить, потом чинить.

Частые вопросы

Частые вопросы про измерительный стенд

Зачем нужен отдельный измерительный стенд, если можно ориентироваться на жалобы пользователей?
Жалоба фиксирует только одну точку во времени и у одного пользователя. Стенд непрерывно и одновременно проверяет несколько связок «точка входа × транспорт», поэтому показывает не только факт отказа, а когда именно связка умирает и оживает снова.
Что показывает таймлайн состояний за неделю?
Для каждой связки «точка входа × транспорт» — отрезки времени, когда она была жива или мертва. На недельном разбросе видны закономерности по времени суток и дням, которые не заметны при разовой проверке.
Почему пробы внутри зоны фильтрации отправляют метрики сами, а не отвечают на запрос?
Потому что входящее соединение снаружи на нестандартный порт внутри зоны фильтрации часто блокируется на уровне провайдера-хостера. Обратная модель — пробер сам пушит метрики наружу по расписанию — обходит это ограничение.
Как отличить, что узел действительно упал, от блокировки только новых подключений?
Если узел показывает ненулевое число активных пользователей, а новые попытки подключения не проходят — узел жив, но фильтрующая система режет именно свежие рукопожатия. Полное отсутствие активности на узле — другой диагноз.

Устойчивость транспорта — не гипотеза, а измерение

VLESS Reality в VPN PRO работает на инфраструктуре, которую мы проверяем этим стендом, а не на честном слове. Получите ключ или начните с 3 дней бесплатно в Telegram.

Промокод VPN10 — 10 дней бесплатно · до 31 августа · передавайте друзьям