Отладка SMPP сообщения с Wireshark

Предположим, вы хотите посмотреть расшифровку бинарного обмена пакетами при обмене сообщением.
В удобном формате представляет данные wireshark:

Wireshark работает с файлами, содержащими захваченное сообщение, в формате .pcap.
Поэтому задача - получить такой файл

Автоматический захват сообщений на сервере.

Это предпочтительный способ.
Воспользуйтесь встроенной системой Захват pcap для получения файла .pcap.

Ручной захват сообщений на сервере.

Если по какой-либо причине автоматический Захват pcap недоступен в вашей версии, либо он не производит результатов, воспользуйтесь ручным способом.

1. Получите root доступ. Описано в разделе Как зайти на сервер под root

2. Снимите пакетный лог обмена сообщениями.
Для этого используем утилиту tcpdump:

# tcpdump -s 0 -w sms.cap

Эта команда будет снимать пакетный лог в файл sms.cap в текущей директории.
Однако намного лучше если вы знаете, от кого вы будете принимать трафик и/или на кого будете отправлять.
IP адрес терминатора или оригинатора вы можете увидеть на веб интерфейсе.
В таком случае выполните команду так:

# tcpdump -s 0 -w sms.cap host 192.168.0.1

В этом случае 192.168.0.1 - это IP адрес искомого пира, через которого проходит сообщение.

Для снятия дампа с нескольких хостов (например, оригинатора и терминатора) воспользуйтесь такой инструкцией:

# tcpdump -s 0 -w sms.cap host 192.168.0.1 or 192.168.0.2

В этом случае 192.168.0.1 - это IP адрес оригинатора,
192.168.0.2 - это IP адрес терминатора.

Команды выше снимают дамп с первого по списку сетевого интерфейса.
Для снятия дампа с определенного сетевого интерфеса выполните команду так:

# tcpdump -i rl0 -s 0 -w sms.cap

Здесь rl0 - один из интерфейсов, выводимый по списку из

# ifconfig

Команды выше начинают снятие пакетного лога.
Для прекращения снятия и записи в файл нажмите CTRL+C.

Внимание! Для корректного снятия дампа нужно запустить tcpdump до начала отправки сообщения и прекратить после завершения отправки сообщения.

3. Скачайте пакетный лог себе на компьютер.
Для этого используем программу pscp (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html):

pscp.exe -C admin@10.0.0.1:sms.cap sms.cap

Теперь пакетный лог у вас на компьютере.

Ручной захват сообщений на вашем ПК

Если вы генерируете сообщение с вашего ПК, то удобнее снимать дамп на вашем ПК, а не на сервере.

Для этого:
  1. Запустите wireshark.
  2. Нажмите Start.
  3. Если вам предложит - то выберите сетевой интерфейс, на котором снимать дамп.
  4. Отправьте сообщение любоц программой отправки сообщений
  5. Нажмите Stop в wireshark.
  6. Сохраните в файл (Save As).

Использование wireshark для анализа.

Откройте пакетный лог, полученный автоматическим либо ручным способом, в программе wireshark (http://www.wireshark.org/).

Для этого:
  1. Запустите wireshark.
  2. Выберите файл sms.cap в диалоге File->Open.
  3. Вам отобразятся все захваченные пакеты.
  4. Выберите нужный пакет, кликнув по нему мышкой.
  5. Вам отобразится расшифровка пакета.

English translation