3.27.2008

Practical SS7. Part2

Внимание! Информация немного устарела, поэтому дополнительно прочтите статью "Practical SS7, Part 3"

Введение
Итак, после прочтения первой части SS7 Practice у вас должен быть рабочий стек SS7, установленный на двух хостах. Теперь уже можно перейти к непосредственному использованию этих стеков. Забегу немного вперёд и скажу, что сам стек позволяет сохранять все полученные/переданные сообщения в лог-файл. Этот файл затем может быть преобразован в Wireshark-совместимый формат с помощью моего septel decoder. Но это больше применимо к случаю, когда используются E1-потоки для передачи сигнальных сообщений. В нашем же, SigTRAN случае, достаточно просто анализировать пакеты, передаваемые через TCP/IP-стек вашей операционной системы. Благо, Wireshark умеет декодировать SigTRAN (точнее sctp). Что ж, запускаем Wireshark и начинаем его настраивать.


Настройка Wireshark
Выбираем «Capture -> Interfaces…»
Wireshark Capture-Interfaces menu
В полученном окне нужно выбрать тот интерфейс, через который будут передаваться пакеты, и нажать «Options».

В поле Capture Filter необходимо ввести «sctp». Убедитесь, что все 3 опции выбраны в разделе «Display Options» (выделены красным на рисунке).
Теперь можно нажать Start!

Немного теории
Прежде чем начать отправлять SMS, давайте немного рассмотрим теорию.

Так теоретически выглядит наша тестовая система. Возле каждого из уровней (а фактически приложения) в скобках указан т.н. ModuleID. Это внутренний идентификатор, который служит для обмена сообщениями между модулями в самом стеке.
Теперь, на одной из систем выполните mtpsl deact 0 0 для деактивации линка (сигнального звена), а зетем mtpsl act 0 0, чтобы активировать его вновь.
Посмотрите, что при этом происходит. Через 30 сек, после того, как линк был активирован, вы увидите SCCP SST (sub-system test) сообщения, которыми обменяются системы. В ответ на каждое из них приходит SSA (subsystem allowed). Только после этого можно проверить правильность конфигурации путём отправки тестовой смс.

Отправляем SMS
На узле MTR выполните
mtr.exe –m0x2d
На узле MTU выполните:
mtu.exe –d0 –a43020008 –g43010008 –i987654321 –s”Test message”
Проверьте успешность доставки в Wireshark. Вы должны увидеть сообщение «SMS-Deliver» с вашим текстом.

Вместо заключения

Если вы не просто прочли, а ещё и выполнили все указанные действия, то мир SS7 (а за ним и GSM) распахнул перед вами свои широкие объятия. Понятно, что mtr.exe и mtu.exe всего лишь простые примеры применения стека. Но никто не мешает вам написать собственное. Некоторые компании (в частности и та, где я работаю) пошли дальше и написали свои приложения ещё и для уровней TCAP и MAP.
А пока что всё. Как всегда, комментарии приветствуются.