WireShark для SIP-телефонии.

WireShark по сути не только самый удобный инструмент для анализа SIP, но и единственный мне знакомый. Если кто знает еще инструменты, пишите в комментариях. Во многих моделях АТС WireShark жу встроен. Если в вашей АТС не встроенного трассировщика, выдающего дампы в формате WireShark, то зеркалируйте порт на коммутаторе, подключайте ПК в этот порт, запускайте на нем WireShark и снимайте дампы. 

Начнем изучать WireShark для IP-телефонии мы с регистрации транка. Ну или вообще любого устройства на SIP-сервере. Это может быть как IP-телефон, так и АТС. Итак, вы сняли трассировку вашей регистрации и открыли ее.

Не пугайтесь. Тут просто все вместе навалено, потому что мы не фильтровали заранее на самом оборудовании. Давайте отфильтруем в WireShark. Нас же интересует протокол SIP? Вот по нему и будем фильтровать. Вбиваем SIP в окошко для фильтра.

Настройка АТС W&T-NS

И вот уже гораздо веселее. Это пакетный режим отображения файлов. То есть, каждая строка — это пакет. Обратите внимание на Время (Time). Ничего не понятно, да? Давайте настроим удобное нам отображение. Для этого в верхнем меню нашего WireShark нажимаем Вид/Формат отображения времени.

Настройка АТС W&T-NS

И выберем удобный нам формат WireShark.

Настройка АТС W&T-NS

С временем разобрались. Идем дальше.

Настройка АТС W&T-NS
  1. Источник отправления пакета
  2. Получатель пакета
  3. Протокол
  4. Само сообщение

В этом интерфейсе WireShark мы можем фильтровать не только по протоколу, но и по всем этим полям. 
Например:

ip.addr==192.168.117.197 

Найти все строки с указанным адресом. И вот мы уже видим.

Настройка АТС W&T-NS

Или

ip.src==192.168.117.197

Найти все строки с указанным адресом источника

Настройка АТС W&T-NS

Вот список всех нужных вам фильтры WireShark:

  • ip.addr==192.168.117.197 – найти все строки с указанным адресом
  • ip.src==192.168.117.197 – найти все строки с указанным адресом источника
  • ip.dst==192.168.117.197 – найти все строки с указанным адресом получателя
  • eth.addr == 00:1a:6b:ce:fc:bb – найти все строки с указанным MAC-адресом. Удобно искать конкретный терминал
  • eth.src == 00:1a:6b:ce:fc:bb – найти все строки с указанным MAC-адресом источника
  • eth.dst == 00:1a:6b:ce:fc:bb – найти все строки с указанным MAC-адресом получателя
  • udp.port ==5060 – найти все строки с указанным SIP-портом. Удобно отсеивать SIP-трафик

Вернемся к фильтру по протоколу SIP WireShark.

Настройка АТС W&T-NS

Пакеты пронумеровал сам WireShark. Ориентируемся на них:

394. Пакет запроса на регистрацию. С IP-адреса 192.168.117.197 на IP адрес 192.168.117.203

395. Ответное сообщение об отсутствии авторизации.

396. Еще одна строка регистрации, но уже с авторизацией. Тут авторизацию не видно, но мы позже это увидим.

397. Сообщение 200ОК. Это значит, что регистрация прошла успешно. 

А теперь давайте переключим пакетный режим WireShark в диалоговый. Он куда нагляднее! Для этого жмем ПКМ на первом пакете нашего диалога. Выбираем Отслеживать UDP поток.

Настройка АТС W&T-NS

И вот мы уже видим приятный для глаз диалоговый режим WireShark.

Настройка АТС W&T-NS

Это те же 4 пакета, только в развернутом виде и с разными цветами для удобства. Оранжевый — источник, а синий — получатель.

Это идеальный диалог регистрации SIP в WireShark. Давайте разберем его. 

В первом сообщении нас интересует эти строки:

Настройка АТС W&T-NS
  1. Запрос на регистрацию по указанному адресу
  2. От какой учетной записи идет запрос
  3. На какую учетную запись идет запрос (они чаще всего совпадают)
  4. Тут указан производитель устройства.
  5. Интервал повторного запроса на регистрацию. Тут стоит 1800 сек. А значит, устройство будет каждые пол часа слать новый запрос на регистрацию. Этот параметр важен и обсуждается с провайдером.
  6. А тут указан источник.

Как вы уже заметили в WireShark, тут регистрация идет по следующим параметрам, которые задал нам оператор SIP-телефонии.

  • IP-адрес SIP-сервера: 192.168.117.203
  • ID: 74954444444
  • Интервал повторного запроса на регистрацию: 1800 секунд.

После этого сообщения, провайдер нам присылает сообщение 401 Unauthorized. По сути это приглашение авторизоваться. То есть прислать Username и пароль. И мы шлем это следующим пакетом.

Настройка АТС W&T-NS

Обратите внимание, это сообщение в WireShark очень похоже на первое. Но тут добавляется строка авторизации. Тут виден наш Username, он совпадает с ID чаще всего и с номером телефона. Пароля тут не видно, он зашифрован алгоритмом MD5.

Вот после этого, нам сервер присылает 200ОК.

Настройка АТС W&T-NS

А что нам пришлет оператор, если данные учетной записи неправильные? Давайте чуть изменим пароль и посмотрим:

Настройка АТС W&T-NS

403 Forbidden. То есть, запрещено. Без объяснения причины, между прочим. Такое сообщение означает, что провайдер вам просто запрещает регистрацию. С вашей стороны нужно проверить учетные данные. И если сомнений нет, писать провайдеру с просьбой прокомментировать 403 Forbidden. Можно приложить ему этот кусок дампа из WireShark.

Какие еще бывают сообщения от провайдера в WireShark, кроме 200ОК:

400 Bad Request – ошибки в синтаксисе
401 Expired Authorization — время регистрации истекло
403 Forbidden — ошибка в данных (логин, пароль, порт, долг)
404 Not found – нет такого пользователя
500 Internal Server Error — внутренняя ошибка сервера (это не ваша проблема)
503 Service Unavailable – сервер не работает (тоже не ваша)

А теперь, давайте разберем диалог вызова в WireShark! Заодно познакомимся с еще одним режимом отображения.

Вот так будет выглядеть пакетный режим отображения вызова в WireShark.

Настройка АТС W&T-NS

Обратите внимание, у нас новые сообщения появились. 

  • INVITE — приглашение к сеансу поговорить.
  • 100 Trying — попытка дозвона до адресата
  • 180 Ringing — сам дозвон
  • ACK — подтверждение
  • BYE — прощание

Диалоговый режим в WireShark будет выглядеть так:

Настройка АТС W&T-NS

И есть еще один красивый режим отображения для вызовов в WireShark — графический. Для входа в него, надо щелкнуть в вернем меню Телефония/Вызовы.

Настройка АТС W&T-NS

Тут мы видим список всех наших вызовов. Здесь и входящие, и исходящие, и удачные, и те, что в процессе.

  • COMPLETED — удачный вызов
  • REJECTED — сброшенный вызов
  • IN CALL — в процессе разговора

Теперь, если мы выделим нужный нам вызов и кликнем на кнопку Последовательность потоков в интерфейсе WireShark, мы увидим диаграмму вызова.

Настройка АТС W&T-NS

Очень удобный интерфейс WireShark. Видны направления пакетов, их содержание и сами сообщения.

А если мы нажмем на кнопку Воспроизвести потоки. То мы попадаем в плеер.

Настройка АТС W&T-NS

Если нажмете на черненький треугольничек, то прослушаете разговор.

Вообще WireShark очень ценный инструмент для анализа IP-телефонии. WireShark распространен, и им пользуются сами операторы связи. Поэтому вы можете смело отправлять им трассировки (дампы) для сравнения или с вопросами. А также запрашивать у них. Ведь снять дамп на АТС это одно, а вот в каком виде он дойдет до провайдера — уже другое. Поэтому трассировки WireShark снимают на входе и выходе каждого промежуточного оборудования (роутеры, коммутаторы, конверторы и т.д.).

Коллеги, если вам понравилась статья, вы можете отблагодарить автора.

 

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *