Детальный анализ SIP трафіка с SNGREP

sngrep-sip

SNgrep уникальный и очень полезный инструмент, для анализа и захвата SIP трафика, построения трейсов и системы фильтров SIP сообщений. Цель данного инструмента, сделать процесс обучения или отладки SIP протокола, проще и понятнее. SNgrep позволяет отображать потоки SIP – вызова (sip flow) прямо в консоли вашего сервера. SNgrep покажет SIP – обмен сообщениями в удобной и читаемой форме. SNgrep это tcpdump (или wireshark под Linux), но только для VoIP. Данная утилита станет незаменима VoIP инженерам, для диагностики систем телефонии.

Особенности:

  • Захват SIP пакетов от устройств или чтение из PCAP файла;
  • Поддержка UDP, TCP и TLS(частично) транспортов;
  • Позволяет использовать фильтрацию BPF (Berkeley Packet Filter) пакетов;
  • Cохранять перехваченные пакеты в файле PCAP.

Установка SNgrep

Необходимые библиотеки и зависимости для операционной системы CentOS:

Зависимости для Debian и Ubuntu:

Установка и сборка программы:

Установка SNgrep из пакетов в CentOS возможна из репозитория irontec.

Добавим irontec репозиторий. Для этого, создадим файл с именем sngrep.repo в директории /etc/yum.repos.d:

Добавляем в файл следующие строки:

Затем импортируем публичный ключ от irontec:

Все готово к установке. Даем следующие команды:

В случае использовании UTF-8 кодировки и русских символов, иногда необходимо прописать переменную:

И запустить приложение:

Использование SNgrep

Как только вы попадете в меню управления утилитой, перед вами будет отражен список VoIP пакетов, которые обрабатывает Ваш сервер:
sngrep-capture-sipНажав на Enter вы сможете более детально изучить каждое сообщение:

Sngrep-SIP-traffic-analysisВыполнить захват трафика в файл PCAP:

Отрывать файл pcap сделанный ngrep, tcpdump, wireshark и другими анализаторами:

При детализации звонка, можно нажать F2/F3 для получения SDR/RTP информации. Для выхода и возврата в предыдущее меню нажмите Esc. Если кратко, следующие опции доступны в базовом интерфейса SNgrep:

  • F1 — открыть функциональный помощник;
  • F2 — сохранить собранный дамп в указанный файл;
  • F3 — отфильтровать данные по указанной строке;
  • F4 — показать выбранный расширенный call – flow (схема звонка, с указанием всех этапов его инициации);
  • F5 — удалить собранный дамп;
  • F6 — показать выбранный дамп в текстовом формате (без визуализации стрелочками, только сухие SIP – сообщения);
  • F7 — показать опции фильтрации (фильтровать можно по полю From/To, по источнику и назначению звонка, а так же по различным данным из информационного сегмента поля полезной нагрузки, то есть не из заголовка). Помимо прочего, есть возможность отмечать типы сообщения, такие как REGISTER, INVITE, OPTIONS и прочие;
  • F8 — показать настройки, среди который подсветка синтаксиса, фон и прочие;
  • F10 — настройка отображаемых параметров (такие как From/TO, индекс, метод и прочие);
  • Esc — выйти из sngrep/в предыдущее меню;
  • Enter -посмотреть call-flow выбранного пакета;
  • Space (пробел) — выделить нужный сегмент;
  • i/I — фильтрация только по сообщения типа INVITE;
  • p — поставить на паузу сбор пакетов;

 

Описание ключей SNgrep:

С помощью использования системы фильтров (F7), можно выбрать тот или иной диалог для анализа и построения трейса:

sngrep-filterSNgrep — отличный и незаменимый инструмент VoIP инженера!