# 24. Траблшутинг [← Оглавление](../README.md) · [← Раздел 23: Распознавание протоколов (DPI Engine)](23.md) --- Диагностика проблем на ТСПУ — комплексная задача, требующая понимания архитектуры системы, принципов прохождения трафика и взаимодействия компонентов. В данном разделе описаны типовые подходы к траблшутингу, которые применяются при обращениях операторов связи и абонентов. ## 24.1. Общий подход к диагностике проблем доступности При обращении оператора или абонента с жалобой на недоступность ресурса необходимо последовательно пройти несколько шагов: ```text 1. Уточнить детали проблемы │ 2. Определить, есть ли проблема прямо сейчас (или была вчера) │ 3. Найти сессии абонента на фильтрах │ 4. Проверить ресурс в DPI-листах │ 5. Исключить ТСПУ как причину (bypass / No IP) │ 6. Локализовать проблему ``` ### Шаг 1: Уточнение деталей Всегда необходимо **выяснять подробности** у абонента или оператора. Формулировка «ресурс недоступен» может означать совершенно разные вещи: | Жалоба абонента | Что это может означать на самом деле | | ---------------------------- | --------------------------------------------------------- | | «Сайт не открывается» | Полная блокировка, ошибка DNS, проблема на стороне сервера | | «Всё тормозит» | Деградация протокола, перегрузка канала, проблема на стороне оператора | | «Часть сайта не работает» | Блокировка отдельных ресурсов (CDN, API), проблема с HTTPS | | «Приложение не подключается»| Блокировка протокола, обновление приложения, проблема с обфускацией | > **Статистика:** по опыту эксплуатации, примерно в **80% случаев** проблема связана **не с ТСПУ**, а с самим ресурсом, абонентом или оператором связи. Однако всегда необходимо проверять и исключать влияние ТСПУ. ### Шаг 2: Актуальность проблемы **Диагностика постфактум крайне затруднена.** Если абонент сообщает о проблеме, которая была вчера, а сегодня её нет, — возможности анализа ограничены: - Если сохранились **логи соединений** за нужный период — можно проанализировать, были ли сессии к проблемному ресурсу; - Если логов нет — восстановить картину практически невозможно. **Если проблема существует прямо сейчас** — шансы на успешную диагностику значительно выше. В этом случае важно работать **в реальном времени** совместно с абонентом или оператором. ## 24.2. Поиск сессии абонента: обход фильтров площадки Первый практический шаг — **найти сессии** конкретного абонента к конкретному ресурсу на фильтрах площадки. ### Поиск по локальному адресу Для поиска сессий используется команда `show session` с фильтрацией по локальному адресу абонента: ```text > show session la :<порт> | more ``` Или для просмотра всех сессий абонента: ```text > show session la | more ``` Для подсчёта количества сессий: ```text > show session la | count ``` ### Поиск по удалённому адресу Если известен IP-адрес ресурса, к которому обращается абонент: ```text > show session ra | more ``` ### Интерпретация результатов | Результат | Интерпретация | | -------------------------------------- | ---------------------------------------------------------- | | Сессии **найдены** | Трафик абонента проходит через фильтр — ТСПУ его видит | | Сессии **не найдены** | Трафик не проходит через данный фильтр — абонент идёт другим путём, либо проблема до ТСПУ | | Сессии есть, но ресурс недоступен | Возможна блокировка на уровне DPI — проверить DPI-листы | > **Важно:** при поиске сессий помните принцип «локальный адрес всегда на первом месте» (см. [раздел 12](12.md)). Независимо от направления трафика, IP-адрес абонента записывается в поле local. Если в поле local отображаются адреса, которые не являются абонентскими (интернет-адреса), — это признак перепутки LAN/WAN (см. раздел 24.6). ### Особенности при установке после CGNAT Если ТСПУ установлен **после CGNAT** (см. [раздел 6.3](06.md)), на фильтре видны только белые (транслированные) адреса. Для идентификации конкретного абонента необходимо **взаимодействие с оператором** — оператор должен сообщить, в какие порты и IP-адреса абонент был транслирован. ## 24.3. Проверка ресурса в DPI-листах: `show dpi match` Команда `show dpi match` позволяет проверить, находится ли конкретный ресурс в списках блокировки: ```text # show dpi match <ресурс> ``` Где `<ресурс>` — это IP-адрес или URL. Команда проверяет указанный ресурс **по всем DPI-листам** и выводит информацию о совпадениях: | Результат | Значение | | ---------------------------------- | ------------------------------------------------------------ | | Совпадение найдено в DPI-листе N | Ресурс присутствует в списке — указано, в каком именно DPI-листе и какое действие (block/ignore/redirect) | | Совпадений не найдено | Ресурс отсутствует во всех DPI-листах — ТСПУ его не блокирует по спискам | > **Примечание:** команда `show dpi match` может быть недоступна в старых версиях прошивки. В актуальных прошивках федерального проекта она присутствует. ### Проверка через ЦСУ Если необходимо проверить наличие ресурса в списках, загруженных на **Eco Highway** (эшелонированная система), проверку следует выполнять **через центральную систему управления** — там хранятся все списки, загружаемые по BGP. ## 24.4. Программный байпас для исключения ТСПУ как причины проблемы Один из ключевых методов диагностики — **исключение ТСПУ** из пути прохождения трафика, чтобы определить, является ли ТСПУ причиной проблемы. ### Программный bypass на балансировщике Наиболее удобный способ — программный bypass на балансировщике (см. [раздел 22.7](22.md)): ```text call balance-group <группа> software-bypass bypass ``` Преимущества: - **Нет флапов линков** — оператор ничего не замечает; - **Гранулярность** — можно байпасить отдельные filter groups; - **Мгновенность** — переключение происходит немедленно. ### Bypass по правилам фильтрации (flow rules) Альтернативный вариант — создать на балансировщике **временное правило** с action `bypass` для конкретного трафика: ```text set filters main flows diag-bypass match vlan 0 id <номер_VLAN> set filters main flows diag-bypass action bypass set filters main flows diag-bypass priority 200 apply ``` Это позволяет исключить из обработки только **конкретный VLAN** или подсеть, не затрагивая остальной трафик. По статистике правила (пакеты/байты) можно убедиться, что трафик действительно проходит (см. [раздел 22.5](22.md)). ### Bypass на оптическом байпасе Переключение оптического байпаса в режим bypass/TAP — более радикальный метод, который **вызывает флапы линков** у оператора. Используется в крайнем случае и, как правило, требует согласования с оператором. ### Интерпретация результатов | После bypass | Интерпретация | | -------------------------------- | ------------------------------------------------------------ | | Проблема **исчезла** | ТСПУ являлось причиной — диагностировать дальше на уровне фильтров/DPI | | Проблема **осталась** | ТСПУ не является причиной — проблема на стороне ресурса, оператора или абонента | ## 24.5. Исключение абонента из обработки: параметр No IP Для точечной диагностики на уровне **конкретного абонента** используется параметр **No IP** в настройках DPI-листа (см. [раздел 17.4.8](17.md)). ### No IP (исключение по локальному адресу) Параметр `No IP` исключает **локальный адрес абонента** из обработки конкретным DPI-листом: ```text # system dpi lists no-ip # apply ``` Это означает, что трафик данного абонента будет проходить через фильтр, но **конкретный DPI-лист** не будет его обрабатывать. ### No IP Remote (исключение по удалённому адресу) Параметр `No IP Remote` исключает **удалённый IP-адрес** (адрес сервера/ресурса) из обработки: ```text # system dpi lists no-ip-remote # apply ``` ### Диагностический алгоритм ```text 1. Добавить абонента в No IP конкретного DPI-листа │ 2. Применить конфигурацию (apply) │ 3. Попросить абонента повторить действие │ ┌──────┴──────┐ │ │ ▼ ▼ Проблема Проблема исчезла осталась │ │ ▼ ▼ Данный Данный DPI-лист DPI-лист НЕ влияет на ВЛИЯЕТ на абонента — абонента проверить другие листы ``` > **Приоритет:** параметр `No IP` имеет **приоритет** над параметром `IP`. Если адрес указан и в No IP (исключение), и в IP (включение), сработает **исключение** — адрес не будет обрабатываться. ### Возврат после диагностики После завершения диагностики необходимо **удалить** добавленные записи No IP и применить конфигурацию. ## 24.6. Перепутки LAN/WAN и их диагностика **Перепутка LAN/WAN** — ситуация, когда порты LAN и WAN подключены **наоборот**: LAN-порт подключён в сторону интернета, а WAN-порт — в сторону абонентов. ### Как распознать перепутку Основной признак — при просмотре сессий на фильтре в поле **local** отображаются адреса, которые **не являются абонентскими**: - Вместо серых (приватных) абонентских адресов в local видны белые интернет-адреса; - Направление сессий (Egress/Ingress) не соответствует ожидаемому. Это происходит потому, что фильтр определяет направление трафика по портам: трафик, приходящий в LAN-порт, считается абонентским, а source IP записывается как local. Если LAN и WAN перепутаны, source IP интернет-хоста ошибочно записывается как local. > **Ключевой принцип:** локальный (абонентский) IP-адрес **всегда записывается на первое место** в сессии (см. [раздел 12.5](12.md)). Если на первом месте оказался интернет-адрес — порты перепутаны. ### Где может произойти перепутка | Место | Описание | | ------------------------------ | ----------------------------------------------------------- | | **На байпасе** | Кабели LAN и WAN подключены к неправильным портам байпаса | | **На балансировщике** | Порты в линке назначены неверно (LAN вместо WAN и наоборот) | | **На коммутаторе оператора** | Кабели между оператором и байпасом подключены неверно | ### Последствия перепутки При перепутке LAN/WAN: - Фильтр **некорректно определяет направление** трафика; - DPI-обработка может работать **неправильно** (блокировка не того, что нужно); - Сессии и трансляции формируются **неверно**; - Connection logging записывает **некорректные данные**. ### Диагностика 1. Выполнить `show session` и проверить поле local — должны быть абонентские (серые) адреса; 2. Если в local видны белые адреса — вероятна перепутка; 3. Проверить физическое подключение кабелей; 4. Проверить конфигурацию линков на балансировщике. ## 24.7. Взаимодействие с оператором связи Эффективная диагностика часто требует **совместной работы** с оператором связи и конечным абонентом: ### Когда необходимо взаимодействие | Ситуация | Что нужно от оператора/абонента | | ------------------------------------------ | -------------------------------------------------------- | | Проблема существует **прямо сейчас** | Абонент генерирует трафик, а инженер ТСПУ анализирует сессии в реальном времени | | ТСПУ установлен **после CGNAT** | Оператор сообщает транслированные адреса для поиска сессий | | Проблема с **конкретным ресурсом** | Абонент уточняет URL, IP-адрес, порт, тип приложения | | Подозрение на проблему **на стороне оператора** | Оператор проверяет свою часть сети (маршрутизация, CGNAT, BRAS) | ### Рекомендации по взаимодействию **С корпоративными клиентами:** как правило, корпоративные клиенты заинтересованы в решении проблемы и готовы к сотрудничеству — совместному моделированию ситуации в реальном времени. Это наиболее эффективный сценарий диагностики. **С частными абонентами:** частный абонент, столкнувшийся с проблемой, может просто уйти и не возвращаться к ресурсу. Диагностика постфактум без сохранённых логов практически невозможна. **С оператором:** при переключениях bypass/primary необходимо **согласовывать работы** с оператором, так как переключение оптического байпаса вызывает флапы линков. Программный bypass на балансировщике не требует такого согласования. ## 24.8. Ограничения: L2-устройство, невозможность генерации трафика с фильтра Фильтр ТСПУ — это устройство **уровня L2** (Layer 2). Это накладывает принципиальные ограничения на возможности диагностики: ### Невозможность генерации трафика На фильтре **нет IP-интерфейсов** в data plane, с которых можно было бы инициировать трафик. Это означает: - **Невозможно** отправить тестовый пакет «от имени абонента» через фильтр; - **Невозможно** «скрафтить» пакет с заданными source/destination и пропустить его через DPI; - **Невозможно** повторить ситуацию абонента изнутри фильтра. > **Ping и traceroute** доступны на фильтре, но они работают через **management-интерфейс**, а не через data plane. Ping позволяет проверить связь management-интерфейса со шлюзом или с внешними хостами (если есть маршрутизация), но **не моделирует** прохождение абонентского трафика через фильтр. ### Невозможность перехвата трафика Фильтр не может захватить копию трафика (аналог tcpdump) — он только обрабатывает пакеты, проходящие через него, и предоставляет **агрегированную статистику** (сессии, счётчики, DPI-состояние). ### Практические следствия | Что **можно** сделать | Что **нельзя** сделать | | -------------------------------------------- | ---------------------------------------------------- | | Найти сессии абонента (`show session`) | Сгенерировать тестовый трафик через data plane | | Проверить ресурс в DPI-листах (`show dpi match`) | Захватить дамп трафика (tcpdump) | | Исключить абонента из обработки (No IP) | Повторить проблему абонента изнутри фильтра | | Включить программный bypass | Инициировать соединение к ресурсу через фильтр | | Посмотреть статистику и счётчики | Проанализировать содержимое конкретного пакета | | Ping/traceroute через management-интерфейс | Ping/traceroute через data plane | Именно поэтому для эффективной диагностики часто необходимо **совместное моделирование** ситуации в реальном времени: абонент генерирует трафик, а инженер ТСПУ анализирует, как этот трафик проходит через систему. --- [← Оглавление](../README.md) · [← Раздел 23: Распознавание протоколов (DPI Engine)](23.md)