Микротик как посмотреть кто жрет трафик
Mikrotik – сбор и анализ NetFlow трафика
Предисловие
Когда-то давно, в далекой далекой галактике… Хотя если подумать, это было всего то 15 лет назад.
В общем были времена, когда в качестве центрального шлюза в сеть Интернет использовались решения на базе FreeBSD и Linux. И были эти решения любовно настроены, и обвешивались они всеми возможными и невозможными функциями (от межсетевого экрана и VPN серверов до TFTP+PXE-сервисов бездисковой загрузки)… и не было беды, и все было хорошо…
Но времена меняются, появляются новые решения, появляются компании, которые «дешево и сердито» готовят ядро Linux, обвешивают необходимым функционалом и продают это за весьма скромные деньги (сопоставимые со стоимостью аппаратной части).
Примером таких решения является компания Mikrotik и ее одноименные решения.
Текущие реалии
Итого текущая ситуация – купить и поставить Mikrotik в организацию, в которой от 10 до 5000 компьютеров, быстрее и экономичнее, чем брать «очередной системник» и собирать шлюз по частям (сетевухи, софт, сервисы и т.д.).
При этом задачи учета трафика как были, так и остаются. И тут на помощь приходит рядом стоящий сервер (обычно это NAS на базе Linux или FreeBSD).
Учет WEB-трафика прост и понятен – связка Squid + LightSquid позволяет просто и быстро собирать и агрегировать информации о том, кто какие сайты посещает, какие файлы качает и сколько в Youtube-е зависает. При необходимости можно и ограничить сайты, время и т.д. Простое, удобное решение, проверенное годами. В Mikrotik делается одно правило, выпускающее IP прокси-сервера в интернет. И все счастливы.
Но вот проблема – не все успешно проходит через Squid. Есть банк-клиенты, написанные без поддержки HTTP и Socks прокси. Есть сложные программы, которые для разных типов трафика используют разные соединения – итог – либо плохо работают через Proxy, либо вообще не работают. А есть отдельная категория так называемых VIP-персон… которым проще дать «Full NAT», чем обострять отношения, когда «что-то у них не открывается».
Таким образом, в Mikrotik рано или поздно, но будут появляться отдельные правила, выпускающие «особенных» напрямую через NAT, минуя прокси-сервер. И их трафик мы в статистике уже не видим.
Решение по учету такого трафика напрашивается следующее:
Настройка Mikrotik
Все просто и по документации:
Настройка Flow-Tools на примере FreeBSD
Установка и подготовка СУБД MySQL для импорта NetFlow данных
# Создаем СУБД и пользователя:
Perl-скрипт для анализа ft-* файлов статистики NetFlow и загрузки данных в MySQL
Скрипт был написан не с нуля – когда то давно, в 2005-м году на сайте OpenNET была выложена статья (ссылка) о подсчете трафика на шлюзе FreeBSD с использованием NetGraph модуля ng_ipacct.
Скрипт загрузки был взят за основу и переписан на использование с NetFlow и flow-tools. Работает как на FreeBSD, так и на Linux (только пути переписать до программ flow-cat и flow-print).
Особенности скрипта – данный вариант предназначен для анализа всех ft-* файлов за прошедшие сутки и их загрузки в базу (построчно). При этом реализовано исключение строк по нескольким шаблонам, чтобы не грузить в MySQL избыточную информацию (например, исключить широковещательный трафик, трафик DNS-запросов, трафик с HTTP/Socks прокси (благо статистика по прокси есть в другом месте). По моим замерам, исключение позволяет сократить количество загружаемых в СУБД строк в 10, а то и в 20-30 раз.
Таблицы в СУБД создаются автоматически с началом нового месяца. К стандартному NetFlow v5 формату добавляется день, время записи (используется время создаваемых ft-файлов – например, каждые 15 минут), также указывается имя источника NetFlow и имя сетевого интерфейса.
PHP UI для упрощенного построения SQL-запросов
В далеком 2005-м, когда использовались Perl-скрипты автора, для анализа данных в MySQL мы использовали SQL команды… и все всех устраивало.
Но рано или поздно настал момент, когда вводить запросы надоело. И, собравшись с мыслями, был написал небольшой PHP-код, который позволял проводить построение SQL-запросов более быстрым и простым способом.
Что позволяет сделать скрипт:
Обслуживание MySQL таблиц
Если таблицы получаются довольно большие (хотя никто Вам не мешает грузить в СУБД только то, что Вам нужно, исключая «шлак» и уменьшая размер), то есть интересный прием, позволяющий существенно уменьшить размер СУБД. Речь идет об использовании компрессии БД в формате MyISAM, а также об оптимизации индекса.
Для автоматического выполнения этих процедур был написан еще один Perl-скрипт, который первого числа каждого нового месяца запускается через Cron:
Mikrotik: Torch. Определение источника трафика в сети.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Из Torch можно получить адрес источника и порт, адрес назначения и порт, и/или возможность фильтрации по протоколу. В сочетании с демонстрацией скорости передачи в реальном времени, это становится очень мощным диагностическим инструментом для IP-сетей.
Как интернет-провайдер, я видел эту конкретную проблему много раз: клиент звонит, чтобы пожаловаться на скорость соединения. Я захожу на его CPE (оборудование, расположенное в помещении абонента/клиента), в данном случае маршрутизатор MikroTik, и вижу, что он использует все 2 Мb, за которые платит. Я сообщаю ему об этом, а он отвечает: «Это невозможно. У меня нет никаких программ, которые нагружают канал, и я единственный, кто пользуется Интернетом». Используя Torch, я быстро узнаю, что существует постоянный поток 2 Мb от локального IP-адреса в его подсети. После нескольких минут разговора, мы обнаруживаем, что IP-адрес потокового трафика не совпадает с адресом клиента, и отслеживаем его вплоть до компьютера ребенка, который включен и с удовольствием делится файлами через битторрент.
Итак, как нам узнать адрес этого хоста в сети? Вот пример:
1. Нажмите кнопку «Tools» и выберите «Torch».
2. В окне Torch выберите интерфейс, на котором вы хотите мониторить трафик, затем нажмите пуск. При работающем Torch вы можете сортировать по Tx или Rx (скорость отправки или получения) просто кликнув ЛКМ по ячейке Rx.Rate или Tx.Rate и узнать источник трафика с самой высокой скоростью в сети.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Анализ трафика на Mikrotik + NetFlow Analyzer
NetFlow Analyzer это программа написанная на Java. В нем можно быстро создавать «комплексные панели», для мониторинга критических сегментов сети. В моем случае, потребовалось считать трафик с каждого порта на Mikrotik с возможностью его детализации за определенный срок (день/неделя/месяц). Dashboard настраивается под задачи определенного пользователя и может состоять из многочисленных виджетов, отвечающих за получение информации с разных устройств. Из-за простоты работы с NetFlow Analyzer можно быстро оценить сложившуюся ситуацию, получить представление о текущей нагрузке на критические участки сети и изучить показатели производительности, не тратя времени на поиски и просмотр разрозненных отчетов. В комплект поставки NetFlow Analyzer включено более полусотни «виджетов».
С установкой данного продукта сложностей возникнуть не должно. Для теста была взята Windows 7 x64 и установлена JRE аналогичной битности. После успешной установки переходим по адресу: http://localhost:8080/netflow/jspui/dashBoard.do
По умолчанию используются эти порты:
web: 8080
NetFlow: 9996
SNMP Community: public
SNMP: 161
Галкой включаем Traffic flow
Interfaces — Имена тех интерфейсов, которые будут использоваться для сбора статистики трафика. Можно указать несколько
cache-entries (128k | 16k | 1k | 256k | 2k | … ; по умолчанию: 4k) — Количество потоков, которые могут одновременно находиться в памяти маршрутизатора.
active-flow-timeout (по умолчанию: 30 мин.) — Максимальный срок жизни потока.
inactive-flow-timeout (по умолчанию: 15 сек.) — Как долго поддерживать поток, если он неактивен. Если в этом тайм-ауте соединение не увидит пакет, то он будет помечен как новый. Если тайм-аут слишком мал, то возможно создание значительного количества потоков и переполнение буфера.
В окне Targets:
address (IP : порт) — IP адрес и порт (UDP) хоста, который получает статистические пакеты потока от маршрутизатора.
v9-template-refresh (по умолчанию: 20) — Количество пакетов, после которых шаблон отправляется на принимающий хост (только для NetFlow версии 9)
v9-template-timeout (по умолчанию: 1800 ) — Как долго отправлять шаблон, если он не был отправлен.
version (по умолчанию: 9 ) — Какую версию NetFlow использовать.
Для настройки из под терминала требуется выполнить следующие команды:
После повторного входа в меню NetFlow Analyzer должны увидеть примерно следующее:
NetFlow / sFlow Listener Port — порт, на который принимаются потоки с устройств.
WebServer Port — порт веб интерфейса.
Count Of Top Records to Store — максимальное количество строк, выводимое в таблицах с данными.
Если NetFlow Analyzer не видит ethernet портов соединенных в бридж, введите:
На этом все. Надеюсь данный материал помог вам в настройке. Если остались вопросы, пишите в комментарии.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Все про трафик с Netflow на MikroTik
Разбор полетов пакетов
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Помимо мониторинга и анализа трафика, с помощью Traffic Flow, администратор может выявлять различные проблемы, которые могут появляться в сети, а также анализировать и оптимизировать общие сетевые характеристики.
Поскольку Traffic Flow полностью совместим с Cisco Netflow, то он может использоваться различными утилитами, которые разработаны для Netflow.
Traffic Flow поддерживает следующие версии Netflow:
Настройка
Итак, для того, чтобы начать собирать статистическую информацию о трафике, необходимо сначала включить Traffic Flow и определиться с каких интерфейсов осуществлять сбор. Делается это при помощи комбинации следующих команд:
После того как мы включили Traffic Flow и определились с интерфейсами, с которых хотим получать информацию о потоках, необходимо настроить хост назначения, который будет получать данную информацию (в терминологии Netflow такой хост называется коллектором). Делается это при помощи следующей команды
Пример
Рассмотрим пример конфигурации Traffic Flow на роутере Mikrotik
Допустим мы хотим собирать статическую информацию о трафике, который проходит через интерфейс ether3 нашего роутера и отправлять её на коллектор по адресу 192.168.2.123 используя 5 версию протокола. В этом случае конфигурация может выглядеть следующим образом:
Сначала включаем Traffic Flow и указываем интерфейс
Затем указываем адрес коллектора, стандартный порт и версию протокола 5:
Если Вы предпочитаете консоли утилиту WinBox, то для настройки Traffic Flow левом меню откройте пункт IP и выберите Traffic Flow, перед Вами откроется следующее окно:
Необходимо включить Traffic Flow, поставив галочку напротив Enabled и выбрать желаемый интерфейс для сбора информации.
После этого переходим на вкладку Targets и добавляем параметры коллектора, достаточно внести IP адрес, порт и версию. После этого нажимаем на кнопку Apply
После этого наш роутер начнет отправлять информацию на коллектор. Если вы хотите указать несколько коллекторов, то это можно сделать, используя разные версии протокола и номера UDP портов.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Arxont
четверг, 6 октября 2016 г.
Mikrotik: как посмотреть кто из пользователей забивает канал и как ограничить ему скорость?
Увидел вопрос-ответ на http://spw.ru/support/voprosotvet/podklyuchenie/vopros5/
«Mikrotik 1100AH как посмотреть кто из пользователей забивает канал и как ограничить ему скорость?» и решил поделится немного другим способом.
На мой взгляд, приведённый в ответе способ через Tools-Torch не очень наглядно показывает скорость, так как там идёт разбивка по IP адресам.
Далее создаём правило ограничивающее скорость для всех кто не указан в перечислении выше:
/queue simple
add max-limit=2M/2M name=»All Other» target=192.168.0.0/24
Теперь чтобы увидеть кто и с какой скоростью качает можно просто смотреть в окно Queue. Причём в достаточно человекопонятном виде.
Также из плюсов можно отметить, что можно смотреть (и ограничивать) скорость не только по IP адресам, но и по подсетям (а там можно разбить к примеру по кабинетам, подразделениям или как вам удобно).
И можно сразу же, ограничить пользователя который увлёкся 🙂
PS: Не забывайте, что Queue даёт нагрузку на процессор. Так что проверяйте можно или нет это использовать в вашем случае.







