11.22.2009

Настройка Wireshark для SS7

Давно я не писал чего-то общественно полезного. Пылится "на полке" запрос написать о GTT и прочей SCCP магии. А пока-что расскажу о том, как можно упростить свою жизнь с помощью простой настройки Wireshark.
Не вдаваясь в историю и детали, скажу просто - Wireshark это свободнораспространяемый анализатор пакетов. Долгое время его прародитель (Ethereal) использовался сетевыми (и не только) администраторами для анализа TCP/IP. Постепенно к нему добавляли поддержку множества других сетевых протоколов, в том числе и протокол сигнализации ОКС-7.
Вообще, весь этот блог начинался с идеи рассказать о том, как использовать Wireshark для "просмотра" SS7 трафика, проходящего через стек Dialogic. Статья об этом - декодер Septel. Со временем всё больше и больше проектов реализовывались на SigTRAN. И снова помощник тот же - Wireshark. Включил snoop (снифер в Solaris), скачал файл, открыл его в Wireshark и сразу понял, почему ничего не работает. Ну, или не сразу. Ладно, признаюсь - иногда даже это не помогает :)
Но я отвлёкся. Почему-то оказалось, что Wireshark требует некой начальной настройки для нормальной работы с SS7. О них и статья.
1. Настройка SSN для GSM MAP.
Если вместо прелестных смс-ок ни о чём не подозревающих абонентов, Вы видите кашу в 16-тиричном виде, то значит Wireshark не распознал GSM MAP. Для устранения досадной неприятности заходите в Edit->Preferences. Нажимайте на Protocols и ищите GSM_MAP. Далее заменяйте "6-9" на "6,7,8,9" так, как это показано на рисунке:


2. Настройка CAMEL
Аналогичным образом следует настроить Wireshark для протокола CAMEL. Выбирайте его в списке протоколов (надеюсь Вы уже догадались, что можно набрать имя протокола и он выберется?) и ставьте значение 146. Я остальные поля не трогаю и всё работает:


3. Настройка отображения пакетов в Wireshark
Это достаточно спорный вопрос, но я постараюсь обьяснить почему мой вариант мне нравится больше остальных. Снова заходим в Edit->Preferences. И теперь выбираем Layout:

Почему именно третий вариант? Потому что:

  • в окне 1 я вижу пакеты в порядке их прихода (в этом месте слышен хи-хи)
  • в окне 2 я "разворачиваю" пакет по протоколам, чтобы рассмотреть что там и как
  • в окне 3 (которое я делаю узким) спокойно читаем текст смс-ок (попались?! так и знал - ничего путнего, кроме чтения чужих смс Вы на работе не делаете)

Итого, картина выглядит примерно вот так:

Скажете неудобно? Форма для комментариев ниже :)
4. Раскраска пакетов по протоколам.
Когда в первом окне список из тысячи пакетов, найти проблему бывает трудно и утомительно. Чтобы упростить себе жизнь, можно воспользоваться чудесной функцией раскраски пакетов. Она позволяет сделать раскраску на основе фильтров Wireshark. Читать документацию и придумывать фильтры не обязательно - в окне 2 нажимаете на нужную часть пакета (например, GSM Mobile Application), а в левом нижнем углу читаете фильтр -  gsm_map:


Когда фильтр в ваших руках, спокойно идёте в View->Coloring Rules и нажимаете New. Дальше и сами разберётесь. Что хотелось бы добавить - не забудьте создать такой вот фильтр и окрасьте его в ярко красный цвет: tcap.abort. Очень полезный фильтр. Ещё не помешал бы фильтр для UDTS, но что-то я его в своей конфигурации не наблюдаю.
На этом пока-что всё. Если у кого есть полезные фильтры - пишите в комментарии.