artem
08.11.2018
495

Sngrep – утилита для анализа VOIP трафика

Полный обзор интерфейса, ключи запуска, способы применения.

Нередко на сервере телефонии случаются проблемы, например: голос не ходит, транк не регистрируется на стороне провайдера, телефон теряет регистрацию. В таких случаях необходим простой и шустрый инструмент для срочной диагностики SIP-сервера, который позволит отлавливать пакеты в реалтайме с выводом основной информации, необходимой для траблшутинга. Либо возьмём другую ситуацию: когда Вы – молодой инженер, и Вам необходимо наглядное представление о работе SIP-сервера изнутри, а так же получение базовых навыков анализа и траблшутинга. Всё это sngrep – золотой грааль VoIP-инженера, о котором и пойдёт речь в данной статье.

Оглавление:

1.Описание утилиты.

2.Обзор интерфейса утилиты.

3.Описание ключей запуска.

4.Плюсы и минусы использования sngrep.

5.Подведение итогов.

1.Описание утилиты.

Sngrep – это терминальная утилита, которая отлавливает SIP (Session Initiation Protocol) пакеты в реальном времени по Caller-Id и отображает ход потоков стрелками из узла в узел, аналогично используемым в SIP RFC. Данный инструмент был призван упростить процесс анализа трафика, а также сэкономить время администратора сервера на поиск неисправностей.

Из основных возможностей утилиты следует отметить:
– Захват SIP-пакетов в реальном времени.
– Захват SIP-пакетов с различных устройств, взаимодействующих с сервером.
– Возможность чтения дампа формата .pcap
– Возможность формирования дампов формата .pcap с захватом RTP, TCP, UDP.
– Возможность формирования дампов формата .pcap с интересующим Вас трафиком из общего пула информации, захваченной в реальном времени.
– Поддержка транспортных протоколов типа: RTP, TCP, TLS, UDP.
– Возможность фильтрации с использованием BPF (Berkeley Packet Filter).

Если Вас интересует, как установить и настроить sngrep, ознакомьтесь с нашей статьёй на тему: Установка и настройка sngrep.

2. Обзор интерфейса утилиты.

При первом запуске программы мы видим примерно следующее:

Окно запущенной утилиты

Для того, чтобы запустить sngrep, необходимо набрать в терминале #sngrep.Теперь давайте подробно разберём статус-блок утилиты по пунктам:
Статус-блок.
Current Mode – это текущий режим запуска утилиты. В данный момент возвращается значение online [any], что свидетельствует о том, что мы собираем все пакеты в режиме реального времени. При чтении уже выгруженного дампа, значение поля будет изменено на offline.
Match Expression – выражение соответствия.
Display Filter – фильтр отображения.
Dialogs – счётчик собранных утилитой диалогов в общем.
BPF Filter – данное поле отображает статус пакетного фильтра. В нашем случае, он не активен.
Идём дальше, под статус-блоком утилиты расположен табличный блок, в который происходит вывод отловленных пакетов, подробно по всем столбцам:
Табличный блок.
^Idx – или, иначе говоря, Index. Номер пакета.
Method – тип отловленного пакета. Пакеты могут быть типа: Register, Invite, Subscribe, Notify, Options, Publish, Message.
SIP From – узел-отправитель.
– SIP To – узел-получатель.
– Msgs – количество сообщений в отдельно взятой сессии.
– Source – источник генерации сообщения.
– Destination – назначение, в которое должно прибыть сообщение.
– Call State – статус звонка.
Ещё ниже расположен блок управления утилитой, который содержит в себе:

Блок управления.

Esc – выйти в предыдущее меню либо из sngrep.
Enter – применить изменения/посмотреть call-flow выбранного пакета.
Space – выделить необходимый пакет/пункт меню, а так же снять выделение.
F1 – вызвать help.
F2 – сохранить дамп с указанием параметров.
F3 – поиск по заданным значениям в рамках дампа.
F4 – отобразить полную информацию по call-flow.
F5 – удалить дамп.
F6 – отобразить дамп в текстовом формате.
F7 – активировать расширенный фильтр пакетов с указанием параметров.
F8 – настройки отображения интерфейса утилиты.
F10 – настройка отображаемых параметров таблицы.
Далее, откроем при помощи Enter один из пакетов нашего дампа. Я выбрал пакет опций:

Пакет опций в раскрытом виде.
В блоке слева расположена call-flow diagram, которая наглядно показывает движение пакетов из узла в узел.

Call-flow диаграмма.
В блоке справа расположена информация о пакете.

Просмотр содержимого пакета.

Разберём блок управления, расположенный снизу:

Блок управления анализом пакета.
– Esc – возврат в предыдущее меню.
– Enter – отобразить только сырые данные по выбранному обращению call-flow diagram.
– Space – сравнить два обращения между собой. Работает следующим образом: выбираем нужный пакет, нажимаем Space Bar, выбираем пакет, с которым необходимо провести сравнение, на этом пакете нажимаем Space Bar, сравниваем вывод.
– F1– хэлпер.
– F2 – отобразить SDP.
– F3 – отобразить RTP.
– F4 – открыть в расширенном режиме.
– s – сжать вывод ip-addr, убрать значения портов.
– F6 – отобразить всю call-flow diagram в сыром виде.
– c – сменить цвет отображения call-flow diagram.
– 9 – сдвинуть содержимое пакета влево.
– 0 – сдвинуть содержимое пакета вправо.

Для просмотра нескольких пакетов одновременно, например, бывает полезно открыть 2 вызова одновременно. Для этого необходимо выбрать необходимые вызовы нажатием Space Bar, а затем клавишей Enter раскрыть содержимое.

Анализ двух звонков.

3. Описание ключей запуска.

-h or –help: отобразить справку по использованию.
-V or –version: отобразить информацию о версии утилиты.
-I or –input <filename.pcap>: прочесть дамп формата .pcap
-r or –rtp: захватывать RTP-трафик/открыть с RTP.
-O or –output <filename.pcap>: сохранить все захваченные пакеты в дамп .pcap
-d or –device <device>: захватить трафик с определённого интерфейса. По умолчанию захватывается трафик со всех интерфейсов.
-k or –keyfile <keyfile.pem>: использовать private keyfile для расшифровки TLS пакетов.
-c or –calls: отображать только диалоговые окна.
-l or –limit: лимитировать захвата трафика.
-i or –icase: сделать выражения соответствия нечувствительными к регистру.
-v or –invert: инвертировать выражения соответствия.
-N or –no-interface: не отображать интерфейс sngrep, а просто произвести захват трафика.
-q or –quiet: не выводить захваченные диалоги в режиме без интерфейса.
-D or –dump-config: вывести конфиг.

Ниже будут рассмотрены примеры классических вариантов запуска sngrep с ключами:
1) sngrep port 5060 – захват всех SIP-пакетов со всех устройств на порту 5060.
2) sngrep -d eth0 -O /tmp/sip_capture.pcap host 192.168.0.50 port 5061 – отобразить SIP-пакеты с eth0, имеющего в качестве источника или назначения адрес 192.168.0.50 через порт 5061, найти дамп в /tmp/sip_capture.pcap
3) sngrep -I /tmp/sip_capture.pcap host 10.10.1.50 – отобразить все SIP-пакеты, захваченные с хоста 10.10.1.50, найти дамп в /tmp/sip_capture.pcap

4. Плюсы и минусы использования sngrep.

Плюсы:
+ утилита проста в освоении.
+ утилита имеет наглядное представление хождения трафика.
+ хорошо подходит для срочного анализа дампов и скорой отладки.
+ подходит для обучения молодым VoIP-инженерам.
+ хороший базовый функционал.
+ возможность рассмотрения пакетов в связке.
+ гибкая настройка интерфейса.

Минусы:
– не подходит для глубокого анализа трафика.
– нет возможности прослушать дамп.
– не подходит для анализа большого дампа.

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

5. Подведение итогов:

Утилита sngrep – это мощный инструмент в руках грамотного инженера, которая позволяет анализировать и собирать дампы в различных режимах работы, а также имеет большой базовый функционал и широкий список ключей запуска. Для молодых инженеров незаменимое средство обучения, которое позволяет наглядного изучать движение пакетов в сети, а так же не тратить слишком много времени на поиск неисправностей. 

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices