h1. Отладка SMPP сообщения с Wireshark {{>toc}} Предположим, вы хотите посмотреть расшифровку бинарного обмена пакетами при обмене сообщением. В удобном формате представляет данные _wireshark_: !wireshark_smpp.png! _Wireshark_ работает с файлами, содержащими захваченное сообщение, в формате _.pcap_. Поэтому задача - получить такой файл h2. Автоматический захват сообщений на сервере. Это предпочтительный способ. Воспользуйтесь встроенной системой [[Захват pcap]] для получения файла _.pcap_. h2. Ручной захват сообщений на сервере. Если по какой-либо причине автоматический [[Захват 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
Теперь пакетный лог у вас на компьютере. h2. Ручной захват сообщений на вашем ПК Если вы генерируете сообщение с вашего ПК, то удобнее снимать дамп на вашем ПК, а не на сервере. Для этого: # Запустите _wireshark_. # Нажмите Start. # Если вам предложит - то выберите сетевой интерфейс, на котором снимать дамп. # Отправьте сообщение любоц программой отправки сообщений # Нажмите Stop в _wireshark_. # Сохраните в файл (Save As). h2. Использование _wireshark_ для анализа. Откройте пакетный лог, полученный автоматическим либо ручным способом, в программе _wireshark_ (http://www.wireshark.org/). Для этого: # Запустите _wireshark_. # Выберите файл sms.cap в диалоге File->Open. # Вам отобразятся все захваченные пакеты. # Выберите нужный пакет, кликнув по нему мышкой. # Вам отобразится расшифровка пакета. [[Debug SMPP message with Wireshark|English translation]]