Привет, Мир! Сейчас расскажем об одном полезном методе траблшутинга и поиска проблем на роутерах MikroTik. Суть данного метода заключается в том, чтобы отлавливать (“сниффить”) пакеты, проходящие через определённые интерфейсы нашего роутера и анализировать их сразу же при помощи Wireshark.


Prerequisites

Итак, для того, чтобы воспользоваться данным методом нам понадобится:

  • Роутер MikroTik (в нашем случае использовался RB951Ui-2HnD с версией прошивки RouterOS 6.40.2 )
  • Программа Wireshark (в нашем случае версия 2.4.1)
  • Компьютер или сервер, находящийся в одной сети с роутером с запущенным Wireshark’ом

Настройка

Первым делом открываем Wireshark, выбираем интерфейс, на котором хотим “сниффить” (в нашем случае это Ethernet, то есть интерфейс, с помощью которого компьютер подключается к роутеру) и устанавливаем следующий фильтр — udp port 37008. Как показано на рисунке:

Сниффинг пакетов на Mikrotik через WiresharkПонятно, что если мы запустим захват пакетов без этого фильтра, то нам просто вывалится весь трафик, который проходит через этот интерфейс, а мы этого не хотим.

Что же это за фильтр такой и что за порт — 37008? Дело в том, что MikroTik шлёт UDP дэйтаграммы, то есть весь перехваченный трафик, именно на этот порт streaming server’а, а в качестве этого стриминг сервера, как вы могли догадаться, у нас выступает наш компьютер с запущенным Wireshark’ом. Эти пакеты инкапсулируются по протоколу TZSP (TaZmen Sniffer Protocol), который используется для переноса в себе других протоколов.

Итак, запускаем перехват пакетов на определённом интерфейсе с фильтром udp port 37008 и видим, что ничего не происходит и пакетов нет.

Wireshark на Ethernet с микротикаА теперь самое интересное – подключаемся к MikroTik’у через WinBox, переходим в раздел Tools далее Packet Sniffer и видим следующее окно с настройками:

Настройка Packet Sniffer в MikrotikНа вкладке General можем оставить всё по умолчанию, переходим на вкладку Streaming:

Streaming пакетов в роутере микротикСтавим галочку в Streaming Enabled, в поле Server указываем IP адрес нашего компьютера, на котором запустили Wireshark и ставим галочку на Filter Stream, чтобы активировать фильтр, который будет настраиваться на следующей вкладке — Filter

На данной вкладке мы можем отфильтровать интересующий нас трафик. Например, у нас в сети есть IP-АТС Asterisk и мы хотим посмотреть, какие пакеты он получает и отправляет через роутер MikroTik. Так, например, можно отследить коммуникацию IP-АТС с сервером провайдера VoIP услуг.

Итак, выбираем интерфейсы, на которых хотим отлавливать пакеты (в нашем случае это bridge), далее отфильтруем трафик по определённому IP-адресу в поле IP Address (Наша IP-АТС), укажем протокол — 17 (udp) и порт 5060 (sip). Направление укажем любое — any и Filter Operation = or , то есть логика работы данного фильтра – “или”. Если вы хотите отлавливать пакеты только по жёстко определённому фильтру, то логику следует указать and, то есть – совпадение всех условий фильтра.

Далее нажимаем Apply и Start и видим, что сниффер перешёл в статус “running”

Запуск сниффера на MikroTikОтлично, теперь отправляемся в Wireshark и видим, что он нам уже наловил нужных пакетов в соответствии с правилами фильтра.

Wireshark в связке с Packet SnifferВ нашем случае – это коммуникация IP-АТС Asterisk с сервером провайдера VoIP услуг, запрос на регистрацию и подтверждение с обратной стороны. Обратите внимание, что тип инкапсуляции — TZSP, однако, Wireshark смог правильно деинкапсулировать эти пакеты и отобразить нам пакеты SIP.