Анализаторы сетевого трафика: обзор платных и бесплатных решений. Анализаторы сетевых пакетов Аппаратный анализатор трафика

Wireshark - это мощный сетевой анализатор, который может использоваться для анализа трафика, проходящего через сетевой интерфейс вашего компьютера. Он может понадобиться для обнаружения и решения проблем с сетью, отладки ваших веб-приложений, сетевых программ или сайтов. Wireshark позволяет полностью просматривать содержимое пакета на всех уровнях: так вы сможете лучше понять как работает сеть на низком уровне.

Все пакеты перехватываются в реальном времени и предоставляются в удобном для чтения формате. Программа поддерживает очень мощную систему фильтрации, подсветку цветом, и другие особенности, которые помогут найти нужные пакеты. В этой инструкции мы рассмотрим, как пользоваться Wireshark для анализа трафика. Недавно разработчики перешли к работе над второй веткой программы Wireshark 2.0, в неё было внесено множество изменений и улучшений, особенно для интерфейса. Именно её мы будем использовать в этой статье.

Перед тем, как переходить к рассмотрению способов анализа трафика, нужно рассмотреть, какие возможности поддерживает программа более подробно, с какими протоколами она может работать и что делать. Вот основные возможности программы:

  • Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
  • Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
  • Пакеты можно отсеивать по множеству параметров с помощью фильтров;
  • Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
  • Поддержка захвата трафика VoIP-звонков;
  • Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
  • Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
  • Отображение статистики нагрузки на сеть;
  • Просмотр содержимого пакетов для всех сетевых уровней;
  • Отображение времени отправки и получения пакетов.

Программа имеет множество других функций, но это были те основные, которые могут вас заинтересовать.

Как пользоваться Wireshark

Я предполагаю, что программа у вас уже установлена, но если нет, то вы можете ее установить из официальных репозиториев. Для этого наберите команду в Ubuntu:

sudo apt install wireshark

После установки вы сможете найти программу в главном меню дистрибутива. Запускать Wireshark нужно с правами суперпользователя, потому что иначе она не сможет анализировать сетевые пакеты. Это можно сделать из главного меню или через терминал с помощью команды для KDE:

А для Gnome / Unity:

Главное окно программы разделено на три части: первая колонка содержит список доступных для анализа сетевых интерфейсов, вторая - опции для открытия файлов, а третья - помощь.

Анализ сетевого трафика

Для начала анализа выберите сетевой интерфейс, например eth0, и нажмите кнопку Start.

После этого откроется следующее окно, уже с потоком пакетов, которые проходят через интерфейс. Это окно тоже разделено на несколько частей:

  • Верхняя часть - это меню и панели с различными кнопками;
  • Список пакетов - дальше отображается поток сетевых пакетов, которые вы будете анализировать;
  • Содержимое пакета - чуть ниже расположено содержимое выбранного пакета, оно разбито по категориям в зависимости от транспортного уровня;
  • Реальное представление - в самом низу отображается содержимое пакета в реальном виде, а также в виде HEX.

Вы можете кликнуть по любому пакету, чтобы проанализировать его содержимое:

Здесь мы видим пакет запроса к DNS, чтобы получить IP-адрес сайта, в самом запросе отправляется домен, а в пакете ответа мы получаем наш вопрос, а также ответ.

Для более удобного просмотра можно открыть пакет в новом окне, выполнив двойной клик по записи:

Фильтры Wireshark

Перебирать пакеты вручную, чтобы найти нужные, очень неудобно, особенно при активном потоке. Поэтому для такой задачи лучше использовать фильтры. Для ввода фильтров под меню есть специальная строка. Вы можете нажать Expression , чтобы открыть конструктор фильтров, но там их очень много, поэтому мы рассмотрим самые основные:

  • ip.dst - целевой IP-адрес;
  • ip.src - IP-адрес отправителя;
  • ip.addr - IP отправителя или получателя;
  • ip.proto - протокол;
  • tcp.dstport - порт назначения;
  • tcp.srcport - порт отправителя;
  • ip.ttl - фильтр по ttl, определяет сетевое расстояние;
  • http.request_uri - запрашиваемый адрес сайта.

Для указания отношения между полем и значением в фильтре можно использовать такие операторы:

  • == - равно;
  • != - не равно;
  • < - меньше;
  • > - больше;
  • <= - меньше или равно;
  • >= - больше или равно;
  • matches - регулярное выражение;
  • contains - содержит.

Для объединения нескольких выражений можно применять:

  • && - оба выражения должны быть верными для пакета;
  • || - может быть верным одно из выражений.

Теперь рассмотрим подробнее на примерах несколько фильтров и попытаемся понять все знаки отношений.

Сначала отфильтруем все пакеты, отправленные на 194.67.215.. Наберите строку в поле фильтра и нажмите Apply . Для удобства фильтры Wireshark можно сохранять с помощью кнопки Save :

ip.dst == 194.67.215.125

А чтобы получить не только отправленные пакеты, но и полученные в ответ от этого узла, можно объединить два условия:

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

Также мы можем отобрать переданные большие файлы:

http.content_length > 5000

Отфильтровав Content-Type, мы можем выбрать все картинки, которые были загружены; выполним анализ трафика Wireshark, пакеты, которого содержат слово image:

http.content_type contains image

Чтобы очистить фильтр, вы можете нажать кнопку Clear . Бывает, вы не всегда знаете всю необходимую для фильтрации информацию, а просто хотите изучить сеть. Вы можете добавить любое поле пакета в качестве колонки и посмотреть его содержимое в общем окне для каждого пакета.

Например, я хочу вывести в виде колонки ttl (время жизни) пакета. Для этого откройте информацию о пакете, найдите это поле в разделе IP. Затем вызовите контекстное меню и выберите опцию Apply As Column :

Таким же образом можно создать фильтр на основе любого нужного поля. Выберите его и вызовите контекстное меню, затем нажмите Apply as filter или Prepare as filter , затем выбираем Selected, чтобы вывести только выбранные значения, или Not selected , чтобы их убрать:

Указанное поле и его значение будет применено или во втором случае подставлено в поле фильтра:

Таким способом вы можете добавить в фильтр поле любого пакета или колонку. Там тоже есть эта опция в контекстном меню. Для фильтрации протоколов вы можете использовать и более простые условия. Например, выполним анализ трафика Wireshark для протоколов HTTP и DNS:

Еще одна интересная возможность программы - использование Wireshark для отслеживания определённого сеанса между компьютером пользователя и сервером. Для этого откройте контекстное меню для пакета и выберите Follow TCP stream .

Затем откроется окно, в котором вы найдете все данные, переданные между сервером и клиентом:

Диагностика проблем Wireshark

Возможно, вам интересно, как пользоваться Wireshark 2.0 для обнаружения проблем в сети. Для этого в левом нижнем углу окна есть круглая кнопка, при нажатии на неё открывается окно Expet Tools . В нём Wireshark собирает все сообщения об ошибках и неполадках в сети:

Окно разделено на такие вкладки, как Errors, Warnings, Notices, Chats. Программа умеет фильтровать и находить множество проблем с сетью, и тут вы можете их очень быстро увидеть. Здесь тоже поддерживаются фильтры Wireshark.

Анализ трафика Wireshark

Вы можете очень просто понять, что именно скачивали пользователи и какие файлы они смотрели, если соединение не было зашифровано. Программа очень хорошо справляется с извлечением контента.

Для этого сначала нужно остановить захват трафика с помощью красного квадрата на панели. Затем откройте меню File -> Export Objects -> HTTP :

ОБЗОР ПРОГРАММ АНАЛИЗА И МОНИТОРИНГА СЕТЕВОГО ТРАФИКА

А.И. КОСТРОМИЦКИЙ, канд. техн. наук, В.С. ВОЛОТКА

Введение

Мониторинг трафика жизненно важен для эффективного управления сетью. Он является источником информации о функционировании корпоративных приложений, которая учитывается при распределении средств, планировании вычислительных мощностей, определении и локализации отказов, решении вопросов безопасности.

В недалеком прошлом мониторинг трафика был относительно простой задачей. Как правило, компьютеры объединялись в сеть на основе шинной топологии, т. е. имели разделяемую среду передачи. Это позволяло подсоединить к сети единственное устройство, с помощью которого можно было следить за всем трафиком. Однако требования к повышению пропускной способности сети и развитие технологий коммутации пакетов, вызвавшее падение цен на коммутаторы и маршрутизаторы, обусловили быстрый переход от разделяемой среды передачи к высокосегментированным топологиям. Общий трафик уже нельзя увидеть из одной точки. Для получения полной картины требуется выполнять мониторинг каждого порта. Использование соединений типа «точка-точка» делает неудобным подключение приборов, да и понадобилось бы слишком большое их число для прослушивания всех портов, что превращается в чересчур дорогостоящую задачу. Вдобавок сами коммутаторы и маршрутизаторы имеют сложную архитектуру, и скорость обработки и передачи пакетов становится важным фактором, определяющим производительность сети.

Одной из актуальных научных задач в настоящее время является анализ (и дальнейшее прогнозирование) самоподобной структуры трафика в современных мультисервисных сетях. Для решения этой задачи необходим сбор и последующий анализ разнообразной статистики (скорость, объемы переданных данных и т.д.) в действующих сетях. Сбор такой статистики в том или ином виде возможен различными программными средствами. Однако существует набор дополнительных параметров и настроек, которые оказываются весьма важными при практическом использовании различных средств.

Различные исследователи используют самые различные программы для мониторинга сетевого трафика. Например, в , исследователи использовали программу - анализатор (сниффер) сетевого трафика Ethreal (Wireshark ).

Обзору подверглись бесплатные версии программ, которые доступны на , , .

1. Обзор программ мониторинга сетевого трафика

Были рассмотрены около десяти программ-анализаторов трафика (снифферы) и более десятка программ для мониторинга сетевого трафика, из которых мы отобрали по четыре самых интересных, на наш взгляд, и предлагаем вам обзор их основных возможностей.

1) BMExtreme (рис.1).

Это новое название хорошо известной многим программы Bandwidth Monitor. Ранее программа распространялась бесплатно, теперь же она имеет три версии, и бесплатной является только базовая. В этой версии не предусмотрено никаких возможностей, кроме, собственно, мониторинга трафика, поэтому вряд ли можно считать ее конкурентом других программ. По умолчанию BMExtreme следит как за Интернет-трафиком, так и за трафиком в локальной сети, однако мониторинг в LAN при желании можно отключить.

Рис. 1

2) BWMeter (рис.2).

Эта программа имеет не одно, а два окна слежения за трафиком: в одном отображается активность в Интернете, а в другом - в локальной сети.


Рис. 2

Программа имеет гибкие настройки для мониторинга трафика. С ее помощью можно определить, нужно ли следить за приемом и передачей данных в Интернет только с этого компьютера или со всех компьютеров, подключенных к локальной сети, установить диапазон IP-адресов, порты и протоколы, для которых будет или не будет производиться мониторинг. Кроме этого, можно отключить слежение за трафиком в определенные часы или дни. Системные администраторы наверняка оценят возможность распределения трафика между компьютерами в локальной сети. Так, для каждого ПК можно задать максимальную скорость приема и передачи данных, а также одним щелчком мыши запретить сетевую активность.

При весьма миниатюрном размере программа обладает огромным множеством возможностей, часть из которых можно представить так:

Мониторинг любых сетевых интерфейсов и любого сетевого трафика.

Мощная система фильтров, позволяющая оценить объем любой части трафика - вплоть до конкретного сайта в указанном направлении или трафика с каждой машины в локальной сети в указанное время суток.

Неограниченное количество настраиваемых графиков активности сетевых соединений на основе выбранных фильтров.

Управление (ограничение, приостановка) потоком трафика на любом из фильтров.

Удобная система статистики (от часа до года) с функцией экспорта.

Возможность просмотра статистики удаленных компьютеров с BWMeter.

Гибкая система оповещений и уведомлений по достижении определенного события.

Максимальные возможности по настройке, в т.ч. внешнего вида.

Возможность запуска как сервиса.

3) Bandwidth Monitor Pro (рис.3).

Её разработчики очень много внимания уделили настройке окна мониторинга трафика. Во-первых, можно определить, какую именно информацию программа будет постоянно показывать на экране. Это может быть количество полученных и переданных данных (как отдельно, так и в сумме) за сегодня и за любой указанный промежуток времени, среднюю, текущую и максимальную скорость соединения. Если у вас установлено несколько сетевых адаптеров, вы можете следить за статистикой для каждого из них отдельно. При этом, нужная информация для каждой сетевой карты также может отображаться в окне мониторинга.


Рис. 3

Отдельно стоит сказать о системе оповещений, которая реализована тут очень удачно. Можно задавать поведение программы при выполнении заданных условий, которыми могут быть передача определенного количества данных за указанный период времени, достижение максимальной скорости загрузки, изменение скорости соединения и пр. Если на компьютере работает несколько пользователей, и необходимо следить за общим трафиком, программу можно запускать как службу. В этом случае Bandwidth Monitor Pro будет собирать статистику всех пользователей, которые заходят в систему под своими логинами.

4) DUTraffic (рис.4).

От всех программ обзора DUTraffic отличает бесплатный статус.


Рис. 4

Как и коммерческие аналоги, DUTraffic может выполнять разнообразные действия при выполнении тех или иных условий. Так, например, он может проигрывать аудиофайл, показывать сообщение или же разрывать соединение с Интернетом, когда средняя или текущая скорость загрузки меньше заданного значения, когда продолжительность Интернет-сессии превышает указанное число часов, когда передано определенное количество данных. Кроме этого, различные действия могут выполняться циклически, например, каждый раз, когда программа фиксирует передачу заданного объема информации. Статистика в DUTraffic ведется отдельно для каждого пользователя и для каждого соединения с Интернетом. Программа показывает как общую статистику за выбранный промежуток времени, так и информацию о скорости, количестве переданных и принятых данных и финансовых затратах за каждую сессию.

5) Cистема мониторинга Cacti (рис.5).

Cacti это open-source веб-приложение (соответственно отсутствует установочный файл). Cacti собирает статистические данные за определённые временные интервалы и позволяет отобразить их в графическом виде. Система позволяет строить графики при помощи RRDtool. Преимущественно используются стандартные шаблоны для отображения статистики по загрузке процессора, выделению оперативной памяти, количеству запущенных процессов, использованию входящего/исходящего трафика.

Интерфейс отображения статистики, собранной с сетевых устройств, представлен в виде дерева, структура которого задается самим пользователем. Как правило, графики группируют по определенным критериям, причем один и тот же график может присутствовать в разных ветвях дерева (например, трафик через сетевой интерфейс сервера - в той, которая посвящена общей картине интернет-трафика компании, и в ветви с параметрами данного устройства). Есть вариант просмотра заранее составленного набора графиков, и есть режим предпросмотра. Каждый из графиков можно рассмотреть отдельно, при этом он будет представлен за последние день, неделю, месяц и год. Есть возможность самостоятельного выбора временного промежутка, за который будет сгенерирован график, причем сделать это можно, как указав календарные параметры, так и просто выделив мышкой определенный участок на нем.


Таблица 1

Параметры/Программы

BMExtreme

BWMeter

Bandwidth Monitor Pro

DUTraffic

Cacti

Размер установочного файла

473 КБ

1,91 МБ

1,05 МБ

1,4 МБ

Язык интерфейса

русский

русский

английский

русский

английский

График скорости

График трафика

Экспорт/импорт (формат файла экспорта)

–/–

(* . csv)

–/–

–/–

(* . xls)

Min -й временной шаг между отчётам данных

5 мин.

1 сек.

1 мин.

1 сек.

1 сек.

Возможность изменения min

2. Обзор программ-анализаторов (снифферов) сетевого трафика

Анализатор трафика, или сниффер - сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов.

Анализ прошедшего через сниффер трафика позволяет:

Перехватить любой незашифрованный (а порой и зашифрованный) пользовательский трафик с целью получения паролей и другой информации.

Локализовать неисправность сети или ошибку конфигурации сетевых агентов (для этой цели снифферы часто применяются системными администраторами).

Поскольку в «классическом» сниффере анализ трафика происходит вручную, с применением лишь простейших средств автоматизации (анализ протоколов, восстановление TCP-потока), то он подходит для анализа лишь небольших его объёмов.

1) Wireshark (ранее - Ethereal).

Программа-анализатор трафика для компьютерных сетей Ethernet и некоторых других. Имеет графический пользовательский интерфейс. Wireshark - это приложение, которое «знает» структуру самых различных сетевых протоколов, и поэтому позволяет разобрать сетевой пакет, отображая значение каждого поля протокола любого уровня. Поскольку для захвата пакетов используется pcap, существует возможность захвата данных только из тех сетей, которые поддерживаются этой библиотекой. Тем не менее, Wireshark умеет работать с множеством форматов входных данных, соответственно, можно открывать файлы данных, захваченных другими программами, что расширяет возможности захвата.

2) Iris Network Traffic Analyzer .

Помимо стандартных функций сбора, фильтрации и поиска пакетов, а также построения отчетов, программа предлагает уникальные возможности для реконструирования данных. Iris The Network Traffic Analyzer помогает детально воспроизвести сеансы работы пользователей с различными web-ресурсами и даже позволяет имитировать отправку паролей для доступа к защищенным web-серверам с помощью cookies. Уникальная технология реконструирования данных, реализованная в модуле дешифрования (decode module), преобразует сотни собранных двоичных сетевых пакетов в привычные глазу электронные письма, web-страницы, сообщения ICQ и др. eEye Iris позволяет просматривать незашифрованные сообщения web-почты и программ мгновенного обмена сообщениями, расширяя возможности имеющихся средств мониторинга и аудита.

Анализатор пакетов eEye Iris позволяет зафиксировать различные детали атаки, такие как дата и время, IP-адреса и DNS-имена компьютеров хакера и жертвы, а также использованные порты.

3) Ethernet Internet traffic Statistic .

Ethernet Internet traffic Statisticпоказывает количество полученных и принятых данных (в байтах - всего и за последнюю сессию), а также скорость подключения. Для наглядности собираемые данные отображаются в режиме реального времени на графике. Работает без инсталляции, интерфейс - русский и английский.

Утилита для контроля за степенью сетевой активности - показывает количество полученных и принятых данных, ведя статистику за сессию, день, неделю и месяц.

4) CommTraffic .

Это сетевая утилита для сбора, обработки и отображения статистики интернет-трафика через модемное (dial-up) или выделенное соединение. При мониторинге сегмента локальной сети, CommTraffic показывает интернет-трафик для каждого компьютера в сегменте.

CommTraffic включает в себя легко настраиваемый, понятный пользователю интерфейс, показывающий статистику работы сети в виде графиков и цифр.

Таблица 2

Параметры/Программы

Wireshark

Iris The Network Traffic Analyzer

Ethernet Internet traffic Statistic

CommTraffic

Размер установочного файла

17,4 МБ

5,04 МБ

651 КБ

7,2 МБ

Язык интерфейса

английский

русский

английский/русский

русский

График скорости

График трафика

Экспорт/Импорт (формат файла экспорта)

+/–

(*.txt, *.px, *.csv, *.psml, *.pdml, *.c)

–/–

–/–

–/–

Запуск мониторинга по требованию

Min -й временной шаг между отчётами данных

0,001 сек.

1 сек.

1 сек .

1 сек.

Возможность изменения min -го шага между отчётами данных

Заключение

В целом можно сказать, что большинству домашних пользователей будет достаточно возможностей, которые предоставляет Bandwidth Monitor Pro. Если же говорить о самой функциональной программе для мониторинга сетевого трафика, это, безусловно, BWMeter.

Из числа рассмотренных программ-анализаторов сетевого трафика хотелось бы выделить Wireshark, которая имеет большее количество функциональных возможностей.

Система мониторинга Cacti максимально отвечает повышенным требованиям, которые предъявляются в случае проведения исследования сетевого трафика в научных целях. В дальнейшем авторы статьи планируют именно эту систему использовать для сбора и предварительного анализа трафика в корпоративной мультисервисной сети кафедры "Сети связи" Харьковского национального университета радиоэлектроники.

Список литературы

Платов В.В., Петров В.В. Исследование самоподобной структуры телетрафика беспроводной сети //Радиотехнические тетради. М.: ОКБ МЭИ. 2004. №3. С. 58-62.

Петров В.В. Структура телетрафика и алгоритм обеспечения качества обслуживания при влиянии эффекта самоподобия. Диссертация на соискание ученой степени кандидата технических наук, 05.12.13, Москва, 2004, 199 с.

Оригинальное название: A Summary of Network Traffic Monitoring and Analysis Techniques

Ссылка на оригинальный текст: http://www.cse.wustl.edu/~jain/cse567-06/ftp/net_monitoring/index.html

Рекомендации: представленный перевод не является профессиональным. Возможны отступления от текста, неправильная трактовка тех или иных терминов и понятий, субъективное мнение переводчика. Все иллюстрации внесены в перевод без изменения.

Алиша Сессил

Обзор методов анализа и мониторинга сетевого трафика

Так как продолжают расти частные внутренние сети компаний, чрезвычайно важно, чтобы сетевые администраторы знали и умели управлять вручную различными типами трафика, который путешествует по их сети. Мониторинг и анализ трафика необходимы для того, чтобы более эффективно диагностировать и решать проблемы, когда они происходят, таким образом не доводя сетевые сервисы до простоя в течении длительного времени. Доступно много различных инструментов, которые позволяют помочь администраторам с мониторингом и анализом сетевого трафика. Данная статья обсуждает методы мониторинга ориентированные на маршрутизаторы и методы мониторинга не ориентированные на маршрутизаторы (активные и пассивные методы). Статья даёт обзор трёх доступных и наиболее широко используемых методов мониторинга сети, встроенных в маршрутизаторы (SNMP, RMON и Cisco Netflow) и предоставляет информацию о двух новых методах мониторинга, которые используют сочетание пассивного и активного методов мониторинга (WREN и SCNM).

1. Важность мониторинга и анализа сети

Сетевой мониторинг (мониторинг сети) - это сложная задача, требующая больших затрат сил, которая является жизненно важной частью работы сетевых администраторов. Администраторы постоянно стремятся поддержать бесперебойную работу своей сети. Если сеть «упадёт» хотя бы на небольшой период времени, производительность в компании сократится и (в случае организаций предоставляющих государственные услуги) сама возможность предоставления основных услуг будет поставлена под угрозу. В связи с этим администраторам необходимо следить за движением сетевого трафика и производительностью на всей сети и проверять, появились ли в ней бреши в безопасности.

2. Способы мониторинга и анализа

«Анализ сети - это процесс захвата сетевого трафика и его быстрого просмотра для определения того, что произошло с сетью» - Анжелла Оребаух. В следующих разделах обсуждаются два способа мониторинга сети: первый - маршрутизаторо-ориентированный, второй - не ориентированный на маршрутизаторы. Функциональность мониторинга, который встроен в сами маршрутизаторы и не требует дополнительной установки программного или аппаратного обеспечения, называют методами, основанными на маршрутизаторе. Не основанные на маршрутизаторах методы требуют установки аппаратного и программного обеспечения и предоставляют большую гибкость. Обе техники обсуждаются ниже в соответствующих разделах.

2.1. Методы мониторинга основанные на маршрутизаторе

Методы мониторинга основанные на маршрутизаторе - жёстко заданы (вшиты) в маршрутизаторах и, следовательно, имеют низкую гибкость. Краткое описание наиболее часто используемых методов такого мониторинга приведены ниже. Каждый метод развивался много лет прежде чем стать стандартизованным способом мониторинга.

2.1.1. Протокол простого сетевого мониторинга (SNMP), RFC 1157

SNMP - протокол прикладного уровня, который является частью протокола TCP/IP. Он позволяет администраторам руководить производительностью сети, находить и устранять сетевые проблемы, планировать рост сети. Он собирает статистику по трафику до конечного хоста через пассивные датчики, которые реализуются вместе с маршрутизатором. В то время, как существуют две версии (SNMPv1 и SNMPv2), данный раздел описывает только SNMPv1. SNMPv2 построен на SNMPv1 и предлагает ряд усовершенствований, таких как добавление операций с протоколами. Стандартизируется ещё один вариант версии SNMP. Версия 3 (SNMPv3) находится на стадии рассмотрения.

Для протокола SNMP присущи три ключевых компонента: управляемые устройства (Managed Devices), агенты (Agents) и системы управления сетью (Network Management Systems - NMSs). Они показаны на рис. 1.

Рис. 1. Компоненты SNMP

Управляемые устройства включают в себя SNMP-агента и могут состоять из маршрутизаторов, переключателей, коммутаторов, концентраторов, персональных компьютеров, принтеров и других элементов, подобных этим. Они несут ответственность за сбор информации и делают её доступной для системы управления сетью (NMS).

Агенты включают в себя программное обеспечение, которое владеет информацией по управлению, и переводят эту информацию в форму, совместимую с SNMP. Они закрыты для устройства управления.

Системы управления сетью (NMS) выполняют приложения, которые занимаются мониторингом и контролем устройств управления. Ресурсы процессора и памяти, которые необходимы для управления сетью, предоставляются NMS. Для любой управляемой сети должна быть создана хотя бы одна система управления. SNMP может действовать исключительно как NMS, или агент, или может исполнять свои обязанности или др.

Существует 4 основных команды, использующиеся SNMP NMS для мониторинга и контроля управляемых устройств: чтение, запись, прерывание и операции пересечения. Операция чтения рассматривает переменные, которые хранятся управляемыми устройствами. Команда записи меняет значения переменных, которые хранятся управляемыми устройствами. Операции пересечения владеют информацией о том, какие переменные управляемых устройств поддерживают, и собирают информацию из поддерживаемых таблиц переменных. Операция прерывания используется управляемыми устройствами для того, чтобы сообщить NMS о наступлении определённых событий.

SNMP использует 4 протокольные операции в порядке действия: Get, GetNext, Set и Trap. Команда Get используется, когда NMS выдаёт запрос на информацию для управляемых устройств. SNMPv1-запрос состоит из заголовка сообщения и единицы данных протокола (PDU). PDU-сообщения содержит информацию, которая необходима для удачного выполнения запроса, который будет либо получать информацию от агента, либо задавать значение в агенте. Управляемое устройство использует SNMP агентов, расположенных в нём, для получения необходимой информации и затем посылает сообщение NMS"у, с ответом на запрос. Если агент не владеет какой либо информацией по отношению к запросу, он ничего не возвращает. Команда GetNext будет получать значение следующего экземпляра объекта. Для NMS также возможно посылать запрос (операция Set), когда устанавливается значение элементов без агентов. Когда агент должен сообщить NMS-события, он будет использовать операцию Trap.

Как говорилось ранее, SNMP - протокол уровня приложений, который использует пассивные сенсоры, чтобы помочь администратору проследить за сетевым трафиком и производительностью сети. Хотя, SNMP может быть полезным инструментом для сетевого администратора, он создаёт возможность для угрозы безопасности, потому что он лишён возможности аутентификации. Он отличается от удалённого мониторинга (RMON), который обсуждается в следующем разделе, тем, что RMON работает на сетевом уровне и ниже, а не на прикладном.

2.1.2. Удалённый мониторинг (RMON), RFS 1757

RMON включает в себя различные сетевые мониторы и консольные системы для изменения данных, полученных в ходе мониторинга сети. Это расширение для SNMP информационной базы данных по управлению (MIB). В отличии от SNMP , который должен посылать запросы о предоставлении информации, RMON может настраивать сигналы, которые будут «мониторить» сеть, основанную на определённом критерии. RMON предоставляет администраторам возможности управлять локальными сетями также хорошо, как удалёнными от одной определённой локации/точки. Его мониторы для сетевого уровня приведены ниже. RMON имеет две версии RMON и RMON2. Однако в данной статье говорится только о RMON. RMON2 позволяет проводить мониторинг на всех сетевых уровнях. Он фокусируется на IP-трафике и трафике прикладного уровня.

Хотя существует 3 ключевых компонента мониторинговой среды RMON, здесь приводятся только два из них. Они показаны на рис. 2 ниже.


Рис. 2. Компоненты RMON

Два компонента RMON это датчик, также известный как агент или монитор, и клиент, также известный как управляющая станция (станция управления). В отличии от SNMP датчик или агент RMON собирает и хранит сетевую информацию. Датчик - это встроенное в сетевое устройство (например маршрутизатор или переключатель) программное обеспечение. Датчик может запускаться также и на персональном компьютере. Датчик должен помещаться для каждого различного сегмента локальной или глобальной сети, так как они способны видеть трафик, который проходит только через их каналы, но они не знают о трафике за их приделами. Клиент - это обычно управляющая станция, которая связана с датчиком, использующим SNMP для получения и коррекции RMON-данных.

RMON использует 9 различных групп мониторинга для получения информации о сети.

  • Statistics - статистика измеренная датчиком для каждого интерфейса мониторинга для данного устройства.
  • History - учёт периодических статистических выборок из сети и хранение их для поиска.
  • Alarm - периодически берёт статистические образцы и сравнивает их с набором пороговых значений для генерации события.
  • Host - содержит статистические данные, связанные с каждым хостом, обнаруженным в сети.
  • HostTopN - готовит таблицы, которые описывают вершину хостов (главный хост).
  • Filters - включает фильтрацию пакетов, основываясь на фильтровом уравнении для захвата событий.
  • Packet capture - захват пакетов после их прохождения через канал.
  • Events - контроль генерации и регистрация событий от устройства.
  • Token ring - поддержка кольцевых лексем.

Как установлено выше, RMON, строится на протоколе SNMP. Хотя мониторинг трафика может быть выполнен при помощи этого метода, аналитические данные об информации, полученные SNMP и RMON имеют низкую производительность. Утилита Netflow, которая обсуждается в следующем разделе, работает успешно со многими пакетами аналитического программного обеспечения, чтобы сделать работу администратора намного проще.

2.1.3. Netflow, RFS 3954

Netflow - это расширение, которое было представлено в маршрутизаторах Cisco, которые предоставляют возможность собирать IP сетевой трафик, если это задано в интерфейсе. Анализируя данные, которые предоставляются Netflow, сетевой администратор может определить такие вещи как: источник и приёмник трафика, класс сервиса, причины переполненности. Netflow включает в себя 3 компонента: FlowCaching (кеширующий поток), FlowCollector (собиратель информации о потоках) и Data Analyzer (анализатор данных). Рис. 3 показывает инфраструктуру Netflow. Каждый компонент, показанный на рисунке, объясняется ниже.


Рис. 3. Инфраструктура NetFlow

FlowCaching анализирует и собирает данные о IP потоках, которые входят в интерфейс, и преобразует данные для экспорта.

Из Netflow-пакетов может быть получена следующая информация:

  • Адрес источника и получателя.
  • Номер входящего и выходящего устройства.
  • Номер порта источника и приёмника.
  • Протокол 4 уровня.
  • Количество пакетов в потоке.
  • Количество байтов в потоке.
  • Временной штамп в потоке.
  • Номер автономной системы (AS) источника и приёмника.
  • Тип сервиса (ToS) и флаг TCP.

Первый пакет потока, проходящий через стандартный путь переключения, обрабатывается для создания кэша. Пакеты с подобными характеристиками потока используются для создания записи о потоке, которая помещается в кэш для всех активных потоков. Эта запись отмечает количество пакетов и количество байт в каждом потоке. Кэшируемая информация затем периодически экспортируется в Flow Collector (сборщик потоков).

Flow Collector - ответственен за сбор, фильтрование и хранение данных. Он включает в себя историю об информации о потоках, которые были подключены при помощи интерфейса. Снижение объёма данных также происходит при помощи Flow Collector"а при помощи выбранных фильтров и агрегации.

Data Analyzer (анализатор данных) необходим, когда нужно представить данные. Как показано на рисунке, собранные данные могут использоваться для различных целей, даже отличных от мониторинга сети, таких как планирование, учёт и построение сети.

Преимущество Netflow над остальными способами мониторинга, такими как SNMP и RMON, в том, что в ней существует программные пакеты, предназначенные для различного анализа трафика, которые существуют для получения данных от Netflow-пакетов и представления их в более дружелюбном для пользователя виде.

При использовании инструментов, таких как Netflow Analyzer (это только один инструмент, который доступен для анализирования Netflow-пакетов), информация, приведённая выше, может быть получена от Netflow-пакетов для создания диаграмм и обычных графиков, которые администратор может изучить для большего понимания о его сети. Наибольшее преимущество использования Netflow в отличии от доступных аналитических пакетов в том, что в данном случае могут быть построены многочисленные графики, описывающие активность сети в любой момент времени.

2.2. Технологии не основанные на маршрутизаторах

Хотя технологии, не встроенные в маршрутизатор всё же ограничены в своих возможностях, они предлагают большую гибкость, чем технологии встроенные в маршрутизаторы. Эти методы классифицируются как активные и пассивные.

2.2.1. Активный мониторинг

Активный мониторинг сообщает проблемы в сети, собирая измерения между двумя конечными точками. Система активного измерения имеет дело с такими метриками, как: полезность, маршрутизаторы/маршруты, задержка пакетов, повтор пакетов, потери пакетов, неустойчивая синхронизация между прибытием, измерение пропускной способности.

Главным образом использование инструментов, такие как команда ping, которая измеряет задержку и потери пакетов, и traceroute, которая помогает определить топологию сети, является примером основных активных инструментов измерения. Оба эти инструмента посылают пробные ICMP-пакеты до точки назначения и ждут, когда эта точка ответит отправителю. Рис. 4 - пример команды ping, которая использует активный способ измерения, посылая Echo-запрос от источника через сеть в установленную точку. Затем получатель посылает Echo-запрос обратно источнику от которого пришёл запрос.


Рис. 4. Команда ping (Акстивное измерение)

Данный метод может не только собирать единичные метрики об активном измерении, но и может определять топологию сети. Ещё один важный пример активного измерения - утилита iperf. Iperf - это утилита, которая измеряет качество пропускной способности TCP и UDP протоколов. Она сообщает пропускную способность канала, существующую задержку и потери пакетов.

Проблема, которая существует с активным мониторингом, - это то, что представленные пробы в сети могут вмешиваться в нормальный трафик. Часто время активных проб обрабатывается иначе, чем нормальный трафик, что ставит под вопрос значимость предоставленной информации от этих проб.

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

2.2.2. Пассивный мониторинг

Пассивный мониторинг в отличии от активного не добавляет трафик в сеть и не изменяет трафик, который уже существует в сети. Также в отличии от активного мониторинга, пассивный собирает информацию только об одной точке в сети. Измерения происходят гораздо лучше, чем между двумя точками, при активном мониторинге. Рис. 5 показывает установку системы пассивного мониторинга, где монитор размещён на единичном канале между двумя конечными точками и наблюдает трафик когда тот проходит по каналу.


Рис. 5. Установка пассивного мониторинга

Пассивные измерения имеют дело с такой информацией, как: трафик и смесь протоколов, количество битов (битрейт), синхронизация пакетов и время между прибытием. Пассивный мониторинг может быть осуществлён, при помощи любой программы, вытягивающей пакеты.

Хотя пассивный мониторинг не имеет затрат, которые имеет активный мониторинг, он имеет свои недостатки. С пассивным мониторингом, измерения могут быть проанализированы только оф-лайн и они не представляют коллекцию. Это создаёт проблему, связанную с обработкой больших наборов данных, которые собраны во время измерения.

Пассивный мониторинг может быть лучше активного в том, что данные служебных сигналов не добавляются в сеть, но пост-обработка может вызвать большое количество временных затрат. Вот почему существует комбинация этих двух методов мониторинга.

2.2.3. Комбинированный мониторинг

После прочтения разделов выше, можно благополучно переходить к заключению о том, что комбинирование активного и пассивного мониторинга - лучший способ, чем использование первого или второго по отдельности. Комбинированные технологии используют лучшие стороны и пассивного, и активного мониторинга сред. Две новые технологии, представляющие комбинированные технологии мониторинга, описываются ниже. Это «Просмотр ресурсов на концах сети» (WREN) и «Монитор сети с собственной конфигурацией» (SCNM).

2.2.3.1. Просмотр ресурсов на концах сети (WREN)

WREN использует комбинацию техник активного и пассивного мониторинга, активно обрабатывая данные, когда трафик мал, и пассивно обрабатывая данные на протяжении времени большого трафика. Он смотрит трафик и от источника, и от получателя, что делает возможным более аккуратные измерения. WREN использует трассировку пакетов от созданного приложением трафика для измерения полезной пропускной способности. WREN разбит на два уровня: основной уровень быстрой обработки пакетов и анализатор трассировок пользовательского уровня.

Основной уровень быстрой обработки пакетов отвечает за получение информации, связанной с входящими и исходящими пакетами. Рис. 6 показывает список информации, которая собирается для каждого пакета. К Web100 добавляется буфер для сбора этих характеристик. Доступ к буферу осуществляется при помощи двух системных вызовов. Один вызов начинает трассировку и предоставляет необходимую информацию для её сбора, пока второй вызов возвращает трассировку из ядра.

Рис. 6. Информация, собранная на главном уровне трассировок пакетов

Объект трассировки пакетов - способен координировать вычисления между различными машинами. Одна машина будет активировать работу другой машины, задавая флаг в заголовке уходящего пакета для начала обработки некоторого диапазона пакетов, которые она трассирует. Другая машина будет в свою очередь трассировать все пакеты, для которых она видит, что в заголовке установлен похожий флаг. Такая координация обеспечивает то, что информация об похожих пакетах хранится в каждой конечной точке независимо от связи и того, что происходит между ними.

Анализатор трассировок пользовательского уровня - другой уровень в среде WREN. Это компонент, который начинает трассировку любого пакета, собирает и обрабатывает возвращённые данные на уровне ядра оператора. Согласно проектированию, компоненты пользовательского уровня не нуждаются в чтении информации от объекта трассировки пакетоввсё время. Они могут быть проанализированы незамедлительно после того, как трассировка будет завершена, чтобы сделать заключение в реальном времени, или данные могут быть сохранены для дальнейшего анализа.

Когда трафик мал, WREN будет активно вводить трафик в сеть сохраняя порядок следования потоков измерения. После многочисленных исследований, найдено, что WREN представляет похожие измерения в перенасыщенных и в не-перенасыщенных средах.

В текущей реализации WREN, пользователи не принуждаются только к захвату трассировок, которые были инициированы ими. Хотя любой пользователь может следить за трафиком приложений других пользователей, они ограничены в информации, которая может быть получена от трассировок других пользователей. Они могут только получить последовательность и подтверждение чисел, но не могут получить актуальные сегменты данных из пакетов.

В общем, WREN - это очень полезная установка, которая использует преимущества и активного, и пассивного мониторинга. Хотя эта технология находится на раннем этапе развития, WREN может предоставить администраторам полезные ресурсы в мониторинге и анализе их сетей. Монитор Собственного конфигурирования сети (SCNM) - другой инструментарий, который использует технологии и активного, и пассивного мониторинга.

2.2.3.2. Сетевой монитор с собственной конфигурацией (SCNM)

SCNM - это инструмент мониторинга, который использует связь пассивных и активных измерений для сбора информации на 3 уровне проникновения, выходящих маршрутизаторов, и других важных точек мониторинга сети. Среда SCNM включает и аппаратный, и программный компонент.

Аппаратное средство устанавливается в критических точках сети. Оно отвечает за пассивный сбор заголовков пакетов. Программное обеспечение запускается на конечной точке сети. Рис. 7, приведённый ниже, показывает программный компонент SCNM среды.


Рис. 7. Программный компонент SCNM

Программное обеспечение отвечает за создание и посылку активированных пакетов, которые используются для старта мониторинга сети. Пользователи будут посылать в сеть пакеты активации, содержащие детали о пакетах, которые они хотят получить для мониторинга и сбора. Пользователи не нуждаются в знании местоположения SCNM-хоста, принимая за истину то, что все хосты открыты для «прослушки» пакетов. На основе информации, которая существует в рамках активационного пакета, фильтр помещается в поток сбора данных, который также работает в конечной точке . Собираются заголовки пакетов сетевого и транспортного уровня, которые соответствуют фильтру. Фильтр будет автоматически введён в тайм аут, после точно заданного времени, если он получает другие пакеты приложения. Служба выборки пакетов, которая запускается на SCNM-хосте, использует команду tcpdump (подобно программе выборки пакетов) в порядке полученных запросов и записи трафика, который соответствует запросу.

Когда инструментами пассивного мониторинга определяется проблема, трафик может быть сгенерирование при помощи инструментов активного мониторинга, позволяя собирать добавляемые данные для более детального изучения проблемы. При развёртывании этого монитора в сети на каждом маршрутизаторе на протяжении пути, мы может изучать только секции сети, которые имеют проблемы.

SCNM предназначен для установки и использования, главным образом, администраторами. Тем не менее обычные пользователи могут использовать некоторую часть этой функциональности. Хотя обычные пользователи способны использовать части среды SCNM мониторинга, им позволено смотреть только свои собственные данные.

В заключение скажем, что SCNM - это ещё один способ комбинированного мониторинга, который использует и активный, и пассивный методы, чтобы помочь администраторам мониторить и анализировать их сети.

3. Заключение

Подбирая частные инструменты для использования их в мониторинге сети, администратор должен сначала решить, хочет ли он использовать хорошо зарекомендовавшие себя системы, которые уже использовались много лет, или новые. Если существующие системы более подходящее решение, тогда NetFlow - наиболее полезный инструмент для использования, так как в связки с этой утилитой могут использоваться анализирующиеся пакеты данных для представления данных в более дружелюбном пользователю виде. Тем не менее, если администратор готов попробовать новую систему, решения комбинированного мониторинга, такие как WREN или SCNM, - лучшее направление для дальнейшей работы.

Слежение и анализ сети - жизненно необходимы в работе системного администратора. Администраторы должны стараться содержать свою сеть в порядке, как для не разрозненной производительности внутри компании, так и для связи с любыми существующими публичными сервисами. Согласно вышеописанной информации, некоторое число маршрутизаторо-ориентированных технологий и не основанные на маршрутизаторах, пригодны для помощи сетевым администраторам в ежедневном мониторинге и анализе их сетей. Здесь коротко описываются SNMP, RMON, и Cisco"s NetFlow - пример нескольких технологий, основанных на маршрутизаторах. Примеры не основанных на маршрутизаторах технологий, которые обсуждались в статье, - это активный, пассивный мониторинг и их сочетание.

В этой статье мы рассмотрим, что такое анализ сетевого трафика для мониторинга и управления производительностью сетевых приложений, а также коснёмся различий между анализом сетевого трафика в режиме реального времени и ретроспективным анализом трафика (Retrospective Network Analysis, RNA).

Введение

Есть такой маркетинговый приём: выбрать востребованное на рынке свойство продукта или услуги и заявить, что у твоего продукта или услуги это востребованное свойство тоже есть. Всем нужна белизна зубов – заявим, что и наша зубная паста отбеливает зубы.

С управлением производительностью приложений (APM, Application Performance Management, также Application Performance Monitoring) та же история. Сегодня практически каждый производитель систем сетевого управления заявляет, что его продукты позволяют управлять производительностью приложений. Конечно, «пони тоже кони», но давайте разберёмся, что же такое APM и какой функциональностью должен обладать инструментарий, чтобы носить это гордое имя.

Признаки зрелого APM-решения

Для очень многих измерение времени реакции бизнес-приложения и управление его производительностью – это практически одно и то же. На самом деле, это не совсем так. Измерять время реакции – это необходимо, но этого недостаточно.

APM – это сложный процесс, который включает в себя также измерение, оценку и документирование метрик, относящихся к ИТ-инфраструктуре, и, самое главное, обеспечивающий возможность увязки друг с другом качества работы приложений и качества работы ИТ-инфраструктуры. Другими словами, нужно не только определить, что приложение работает плохо, но и найти «виноватого». Для этого, кроме измерения времени реакции, нужно отслеживать ошибки приложений, контролировать диалог клиентов с серверами, видеть тренды. И всё это нужно делать одновременно для всего активного сетевого оборудования (коммутаторы, маршрутизаторы и т.д.), всех серверов, а также каналов связи.

В приведённой ниже таблице перечислены 10 ключевых признаков зрелого APM-решения.

Ключевой признак Комментарий
1. Комплексный мониторинг Для быстрого определения «масштабов бедствия» и корневых причин сбоев необходимо одновременно контролировать метрики, характеризующие работу приложений, и метрики, характеризующие работу всей ИТ-инфраструктуры без исключения.
2. Высокоуровневые отчёты Необходимы для понимания качества предоставления ИТ-сервисов в масштабе всего предприятия. Должны включать предустановленные панели (dashboards), отчёты, пороговые значения, базовые линии, шаблоны сообщений о сбоях. Обязательно должна быть возможность детализации информации (drill down).
3. Возможность настроить безопасный обмен данными Для быстрого устранения проблем и планирования мощностей необходима кооперация между различными отделами ИТ-Службы. Поэтому зрелое APM-решение должно обеспечивать возможность безопасного обмена данными. Это относится как к real time данным, так и к результатам статистической, экспертной и других обработок.
4. Непрерывный захват сетевых пакетов Контролируя объекты по SNMP, WMI и т.п., безусловно, можно оценить качество работы приложений, но увидеть всю картину целиком и понять, что и почему произошло – сложно. Более правильно – постоянно захватывать весь сетевой трафик полностью (не только заголовки), а когда происходит какое-то, требующее расследование событие, то анализировать содержимое захваченных сетевых пакетов.
5. Детальная информация о работе приложений Анализировать только время реакции приложения – недостаточно. Чтобы быстро диагностировать сбои, нужна информация о запросах (которые делает приложение), как они выполняются, коды возникающих ошибок и другая информация.
6. Экспертный анализ Серьёзный экспертный анализ существенно ускоряет диагностику проблем, т.к., во-первых, позволяет автоматизировать процесс анализ информации, во-вторых, если проблема известна, позволяет сразу получить готовое решение.
7. Сквозной (multiple segment / multihop) анализ Поскольку всё больше бизнес-приложений работают в облаке или через WAN, нужно уметь видеть все задержки и ошибки, возникающие в каждом сегменте сети, через который проходит сетевой трафик (один и тот же пакет). Только так можно быстро локализовать корневую причину сбоя.
8. Гибкие базовые линии Гибкие (настраиваемые) базовые линии позволяют эффективно контролировать как внутренние, так и облачные приложения. Для облачных приложений пороговые значения контролируемых метрик (прописываемые в SLA) обычно статические (известны заранее) и устанавливаются вручную. Для внутренних приложений лучше подходят динамические базовые линии, т.е. изменяемые автоматически с течением времени, в зависимости о производительности работы приложения.
9. Возможность реконструкции информационных потоков При анализе проблем, связанных с плохим качеством передачи голоса и видео, а также проблем в области информационной безопасности, важно иметь возможность воспроизвести сетевую активность и работу приложения в тот момент (а также до и после), когда произошло критическое событие.
10. Масштабируемость Думается, комментарии излишни.

Анализ сетевого трафика



Опытные ИТ-специалисты скажут, за перечисленными выше признаками торчат уши APM-решения, основанного на анализе сетевого трафика. Это действительно так.

Компания Network Instruments выделяет четыре типа решений для управления производительностью приложений:

  • решения, основанные на синтетических транзакциях (GUI-роботы)
  • решения, использующие программные агенты на стороне сервера
  • решения, использующие программные агенты на стороне клиента
  • решения, основанные на анализе сетевого трафика
Решения, основанные на анализе сетевого трафика, стоят в этом списке особняком.

В отличие от решений, основанных на синтетических транзакциях или использующих программные агенты на стороне сервера или клиента, сбор данных осуществляется без использования ресурсов системы.

Анализатор сетевого трафика обычно состоит из нескольких зондов и консоли удалённого администрирования. Зонды подключаются к SPAN-портам, что позволяет APM-решению, основанному на анализе сетевого трафика, пассивно слушать трафик, не потребляя ни ресурсы сервера (как это делают программные агенты на стороне сервера и синтетические транзакции), ни клиента (как это делают агенты на стороне клиента) и не создавая дополнительного трафика (как это делают синтетические транзакции и агенты на стороне клиента).

В основе собственно анализа лежит декодирование сетевых протоколов всех уровней, включая уровень приложения. Например, Observer от Network Instruments поддерживает декодирование и анализ всех семи уровней OSI-модели для таких приложений и сервисов, как SQL, MS-Exchange, POP3, SMTP, Oracle, Citrix, HTTP, FTP и др.

Если требуется получить информацию о задержках, наиболее близкую к восприятию пользователя, зонды подключаются максимально близко к клиентским устройствам. Правда, в этом случае потребуется большое количество зондов. Если точные данные по задержкам не столь критичны, а количество используемых зондов требуется сократить, зонды подключаются ближе к серверу приложений. Впрочем, изменения в задержке будут видны и в том, и в другом случаях.

Примечание. Можно использовать также мониторинг-свичи, собирающие информацию с нескольких SPAN-портов и TAP’ов для последующего перенаправления в систему мониторинга. Мониторинг-свичи также могут проводить первичный анализ трафика.

Второй важный момент. У всех четырёх типов решений, перечисленных Network Instruments, есть свои преимущества и своя область применения, в которой они справляются с задачами лучше других. Например, самую подробную информацию о приложении позволяют собрать программные агенты, получающие информацию непосредственно из приложения на стороне сервера или клиента через ARM-образный API. Эта информация очень полезна на этапе разработке и первоначальной обкатки приложения, но будет избыточна в процессе нормальной эксплуатации.

С другой стороны, как GUI-роботы с синтетическими транзакциями, так и программные агенты собирают данные о состоянии конкретного приложения (или нескольких приложений). Применение программных агентов с внедрением в код вообще предъявляет довольно высокие требования – вендор должен встроить в приложение поддержку конкретного инструмента мониторинга или предоставить API. Для того чтобы узнать контекст, в котором выполняется приложение, необходимо использовать другие инструменты (возможно, включённые в ту же комплексную систему мониторинга, возможно – отдельные).

Традиционная парадигма сетевого мониторинга – это централизованный сбор, объединение и анализ данных, получаемых из внешних источников информации. Это SNMP-агенты, WMI-провайдеры, различные логи и т.п. Задача системы мониторинга – собрать эти данные, в удобном виде их показать, проанализировать с использованием сервисно-ресурсной модели, и, таким образом, понять, что происходит. Так работают практически все системы мониторинга, в том числе система мониторинга ProLAN .

Анализатор сетевых протоколов позволяет увидеть сразу контекст.

Во-первых, можно увидеть, как работало интересующее нас приложение на фоне работы сетевых сервисов и компонентов ИТ-инфраструктуры. Например, multihop-анализ позволяет выявить сбоящий маршрутизатор, из-за которого рвётся соединение между сервером и клиентом, и т.п. В принципе, анализатор сетевых протоколов может использоваться в качестве универсального решения, одновременно выполняющего функции и управления производительностью приложений, и мониторинга ИТ-инфраструктуры, и управления безопасности.

Во-вторых, никакой другой способ не позволяет увидеть, что происходит на уровне отдельной транзакции и отдельного пакета. Какие пакеты были отправлены, какие потеряны, какие прошли с ошибками (каждый конкретный пакет, а не сколько вообще) и т.п. Анализ работы приложения на уровне отдельной транзакции может быть реализован только с помощью анализатора сетевых протоколов.

Ретроспективный анализ сетевого трафика



Анализ сетевого трафика может проводиться двумя способами:
  • анализ трафика в режиме реального времени (на лету)
  • ретроспективный анализ трафика
Ретроспективный анализ трафика предполагает, что весь трафик или какая-то его часть сначала записывается на диск, а потом анализируется.

Рассмотрим, как это работает и зачем это нужно, на примере GigaStor – решения для записи и ретроспективного анализа трафика от Network Instruments. Это программно-аппаратный комплекс, имеющий в своём составе аппаратный зонд, полнодуплексную сетевую карту, хранилище данных и локальную консоль управления. Для удалённого администрирования понадобится интеграция с другими продуктами Network Instruments – уже упомянутым Observer или Observer Reporting Server. Сетевая карта позволяет захватывать трафик из сетей скоростью до 40 Гб/с, а дисковые массивы – хранить до 5 ПБ данных (альтернатива – выгрузка в SAN до 576 ТБ).

Перехват сетевого трафика позволяет узнать, что сейчас происходит с приложениями, пользователями и ИТ-инфраструктурой. Но как узнать, что было пять минут, или час, или день назад? Традиционный способ заключается в том, чтобы снимать значения метрик и записывать их в базу данных. Так делает подавляющее большинство систем мониторинга. Значения и оценки метрик позволяют получить некоторое представление о том, что было в произвольный момент времени, но не более. Тем, что было записано, мы можем воспользоваться. То, что не было записано, потеряно безвозвратно.

Сниффинг пакетов - это разговорный термин, который относится к искусству анализа сетевого трафика. Вопреки распространенному мнению, такие вещи, как электронные письма и веб-страницы, не проходят через сеть интернет одним куском. Они разбиты на тысячи небольших пакетов данных и таким образом отправляются через интернет. В этой статье мы рассмотрим лучшие бесплатные анализаторы сети и снифферы пакетов.

Есть множество утилит, которые собирают сетевой трафик, и большинство из них используют pcap (в Unix-подобных системах) или libcap (в Windows) в качестве ядра. Другой вид утилит помогает анализировать эти данные, так как даже небольшой объем траффика может генерировать тысячи пакетов, в которых трудно ориентироваться. Почти все эти утилиты мало отличаются друг от друга в сборе данных, основные отличия заключаются в том, как они анализируют данные.

Анализ сетевого трафика требует понимания того, как работает сеть. Нет никакого инструмента, который бы волшебным образом заменил знания аналитика об основах работы сети, такие как "3-х этапное рукопожатие" TCP, которое используется для инициирования соединения между двумя устройствами. Аналитики также должны иметь некоторое представление о типах сетевого трафика в нормально функционирующей сети, таких как ARP и DHCP. Это знание важно, потому что аналитические инструменты просто покажут вам то, о чем вы их попросите. Вам решать, что нужно просить. Если вы не знаете, как обычно выглядит ваша сеть, может быть сложно понять, что вы нашли то, что нужно, в массе собранных вами пакетов.

Лучшие снифферы пакетов и анализаторы сети

Промышленные инструменты

Начнем с вершины и далее спустимся к основам. Если вы имеете дело с сетью уровня предприятия, вам понадобится большая пушка. Хотя в основе почти все использует tcpdump (подробнее об этом позже), инструменты уровня предприятия могут решать определенные сложные проблемы, такие как корреляция трафика со множества серверов, предоставление интеллектуальных запросов для выявления проблем, предупреждение об исключениях и создание хороших графиков, чего всегда требует начальство.

Инструменты уровня предприятия, как правило, заточены на потоковую работу с сетевым трафиком, а не на оценку содержимого пакетов. Под этим я подразумеваю, что основное внимание большинства системных администраторов на предприятии заключается в том, чтобы сеть не имела узких мест в производительности. Когда такие узкие места возникают, цель обычно заключается в том, чтобы определить, вызвана ли проблема сетью или приложением в сети. С другой стороны, эти инструменты обычно могут обрабатывать такой большой трафик, что они могут помочь предсказать момент, когда сегмент сети будет полностью загружен, что является критическим моментом управления пропускной способностью сети.

Это очень большой набор инструментов управления IT. В этой статье более уместна утилита Deep Packet Inspection and Analysis которая является его составной частью. Сбор сетевого трафика довольно прост. С использованием таких инструментов, как WireShark, базовый анализ также не является проблемой. Но не всегда ситуация полностью понятна. В очень загруженной сети может быть трудно определить даже очень простые вещи, например:

Какое приложение в сети создает этот трафик?
- если приложение известно (скажем, веб-браузер), где его пользователи проводят большую часть своего времени?
- какие соединения самые длинные и перегружают сеть?

Большинство сетевых устройств, чтобы убедиться, что пакет идет туда, куда нужно, используют метаданные каждого пакета. Содержимое пакета неизвестно сетевому устройству. Другое дело - глубокая инспекция пакетов; это означает, что проверяется фактическое содержимое пакета. Таким образом можно обнаружить критическую сетевую информацию, которую нельзя почерпнуть из метаданных. Инструменты, подобные тем, которые предоставляются SolarWinds, могут выдавать более значимые данные, чем просто поток трафика.

Другие технологии управления сетями с большим объемом данных включают NetFlow и sFlow. У каждой есть свои сильные и слабые стороны,

Вы можете узнать больше о NetFlow и sFlow.

Анализ сетей в целом является передовой темой, которая базируется как на основе полученных знаний, так и на основе практического опыта работы. Можно обучить человека детальным знаниям о сетевых пакетах, но если этот человек не обладает знаниями о самой сети, и не имеет опыта выявления аномалий, он не слишком преуспеет. Инструменты, описанные в этой статье, должны использоваться опытными сетевыми администраторами, которые знают, что они хотят, но не уверены в том, какая утилита лучше. Они также могут использоваться менее опытными системными администраторами, чтобы получить повседневный опыт работы с сетями.

Основы

Основным инструментом для сбора сетевого трафика является

Это приложение с открытым исходным кодом, которое устанавливается практически во всех Unix-подобных операционных системах. Tcpdump - отличная утилита для сбора данных, которая имеет очень сложный язык фильтрации. Важно знать, как фильтровать данные при их сборе, чтобы в итоге получить нормальный набор данных для анализа. Захват всех данных с сетевого устройства даже в умеренно загруженной сети может породить слишком много данных, которые будет очень трудно проанализировать.

В некоторых редких случаях достаточно будет выводить захваченные tcpdump данные прямо на экран, чтобы найти то, что вам нужно. Например, при написании этой статьи я собрал трафик и заметил, что моя машина отправляет трафик на IP-адрес, который я не знаю. Оказывается, моя машина отправляла данные на IP-адрес Google 172.217.11.142. Поскольку у меня не было никаких продуктов Google, и не был открыт Gmail, я не знал, почему это происходит. Я проверил свою систему и нашел следующее:

[ ~ ]$ ps -ef | grep google user 1985 1881 0 10:16 ? 00:00:00 /opt/google/chrome/chrome --type=service

Оказывыается, что даже когда Chrome не работает, он остается запущенным как служба. Я не заметил бы этого без анализа пакетов. Я перехватил еще несколько пакетов данных, но на этот раз дал tcpdump задачу записать данные в файл, который затем открыл в Wireshark (подробнее об этом позже). Вот эти записи:

Tcpdump - любимый инструмент системных администраторов, потому что это утилита командной строки. Для запуска tcpdump не требуется графический интерфейс. Для производственных серверов графический интерфес скорее вреден, так как потребляет системные ресурсы, поэтому предпочтительны программы командной строки. Как и многие современные утилиты, tcpdump имеет очень богатый и сложный язык, который требует некоторого времени для его освоения. Несколько самых базовых команд включают в себя выбор сетевого интерфейса для сбора данных и запись этих данных в файл, чтобы его можно было экспортировать для анализа в другом месте. Для этого используются переключатели -i и -w.

# tcpdump -i eth0 -w tcpdump_packets tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes ^C51 packets captured

Эта команда создает файл с захваченными данными:

file tcpdump_packets tcpdump_packets: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)

Стандартом для таких файлов является формат pcap. Он не является текстом, поэтому его можно анализировать только с помощью программ, которые понимают данный формат.

3. Windump

Большинство полезных утилит с открытым исходным кодом в конечном итоге клонируют в другие операционные системы. Когда это происходит, говорят, что приложение было перенесено. Windump - это порт tcpdump и ведет себя очень похожим образом.

Самое существенное различие между Windump и tcpdump заключается в том, что Windump нуждается в библиотеке Winpcap, установленной до запуска Windump. Несмотря на то, что Windump и Winpcap предоставляются одним и тем же майнтайнером, их нужно скачивать отдельно.

Winpcap - это библиотека, которая должна быть предварительно установлена. Но Windump - это exe-файл, который не нуждается в установке, поэтому его можно просто запускать. Это нужно иметь в виду, если вы используете сеть Windows. Вам не обязательно устанавливать Windump на каждой машине, поскольку вы можете просто копировать его по мере необходимости, но вам понадобится Winpcap для поддержки Windup.

Как и в случае с tcpdump, Windump может выводить сетевые данные на экран для анализа, фильтровать таким же образом, а также записывать данные в файл pcap для последующего анализа.

4. Wireshark

Wireshark является следующим самым известным инструментом в наборе системного администратора. Он позволяет не только захватывать данные, но также предоставляет некоторые расширенные инструменты анализа. Кроме того, Wireshark является программой с открытым исходным кодом и перенесен практически на все существующие серверные операционные системы. Под названием Etheral, Wireshark теперь работает везде, в том числе в качестве автономного переносимого приложения.

Если вы анализируете трафик на сервере с графическим интерфейсом, Wireshark может сделать все за вас. Он может собрать данные, а затем анализировать их все здесь же. Однако на серверах графический интерфейс встречается редко, поэтому вы можете собирать сетевые данные удаленно, а затем изучать полученный файл pcap в Wireshark на своем компьютере.

При первом запуске Wireshark позволяет либо загрузить существующий файл pcap, либо запустить захват трафика. В последнем случае вы можете дополнительно задать фильтры для уменьшения количества собираемых данных. Если вы не укажете фильтр, Wireshark будет просто собирать все сетевые данные с выбранного интерфейса.

Одной из самых полезных возможностей Wireshark является возможность следовать за потоком. Лучше всего представить поток как цепочку. На скриншоте ниже мы можем видеть множество захваченных данных, но меня больше всего интересовал IP-адрес Google. Я могу щелкнуть правой кнопкой мыши и следовать потоку TCP, чтобы увидеть всю цепочку.

Если захват трафика производился на другом компьютере, вы можете импортировать файл PCAP с помощью диалога Wireshark File -> Open. Для импортированных файлов доступны те же фильтры и инструменты, что и для захваченных сетевых данных.

5. tshark

Tshark - это очень полезное звено между tcpdump и Wireshark. Tcpdump превосходит их при сборе данных и может хирургически извлекать только те данные, которые вам нужны, однако его возможности анализа данных очень ограничены. Wireshark отлично справляется как с захватом, так и с анализом, но имеет тяжелый пользовательский интерфейс и не может использоваться на серверах без графического интерфейса. Попробуйте tshark, он работает в командной строке.

Tshark использует те же правила фильтрации, что и Wireshark, что не должно удивлять, так как они по сути являются одним и тем же продуктом. Приведенная ниже команда говорит tshark только о том, что необходимо захватить IP-адрес пункта назначения, а также некоторые другие интересующие нас поля из HTTP-части пакета.

# tshark -i eth0 -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/phoenix.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /images/images/title.png 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /favicon.ico

Если вы хотите записать трафик в файл, используйте для этого параметр-W, а затем переключатель -r (чтение), чтобы прочитать его.

Сначала захват:

# tshark -i eth0 -w tshark_packets Capturing on "eth0" 102 ^C

Прочитайте его здесь же, или перенесите в другое место для анализа.

# tshark -r tshark_packets -Y http.request -T fields -e ip.dst -e http.user_agent -e http.request.uri 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /contact 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/ 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /reservations/styles/styles.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/code/jquery_lightbox/jquery_lightbox/js/jquery-1.2.6.pack.js 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/styles/index.css 172.20.0.122 Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 /res/images/title.png

Это очень интересный инструмент, который скорее попадает в категорию инструментов сетевого криминалистического анализа, а не просто снифферов. Сфера криминалистики, как правило, занимается расследованиями и сбором доказательств, и Network Miner выполняет эту работу просто отлично. Также, как wireshark может следовать потоку TCP, чтобы восстановить всю цепочку передачи паков, Network Miner может следовать потоку для того, чтобы восстановить файлы, которые были переданы по сети.

Network Miner может быть стратегически размещен в сети, чтобы иметь возможность наблюдать и собирать трафик, который вас интересует, в режиме реального времени. Он не будет генерировать свой собственный трафик в сети, поэтому будет работать скрытно.

Network Miner также может работать в автономном режиме. Вы можете использовать tcpdump, чтобы собрать пакеты в интересующей вас точке сети, а затем импортировать файлы PCAP в Network Miner. Далее можно будет попробовать восстановить какие-либо файлы или сертификаты, найденные в записанном файле.

Network Miner сделан для Windows, но с помощью Mono он может быть запущен в любой ОС, которая поддерживает платформу Mono, например Linux и MacOS.

Есть бесплатная версия, начального уровня, но с приличным набором функций. Если вам нужны дополнительные возможности, такие как геолокация и пользовательские сценарии, потребуется приобрести профессиональную лицензию.

7. Fiddler (HTTP)

Технически не является утилитой для захвата сетевых пакетов, но он так невероятно полезен, что попал в этот список. В отличие от других перечисленных здесь инструментов, которые предназначены для захвата трафика в сети из любого источника, Fiddler скорее служит инструментом отладки. Он захватывает HTTP трафик. Хотя многие браузеры уже имеют эту возможность в своих средствах разработчика, Fiddler не ограничивается трафиком браузера. Fiddler может захватить любой HTTP-трафик на компьютере, в том числе и не из веб-приложений.

Многие настольные приложения используют HTTP для подключения к веб-службам, и помимо Fiddler, единственным способом захвата такого трафика для анализа является использование таких инструментов, как tcpdump или Wireshark. Однако они работают на уровне пакетов, поэтому для анализа необходимо реконструировать этии пакеты в потоки HTTP. Это может потребовать много работы для выполнения простых исследований и здесь на помощь приходит Fiddler. Fiddler поможет обнаружить куки, сертификаты, и прочие полезные данные, отправляемые приложениями.

Fiddler является бесплатным и, так же, как Network Miner, он может быть запущен в Mono практически на любой операционной системе.

8. Capsa

Анализатор сети Capsa имеет несколько редакций, каждая из которых имеет различные возможности. На первом уровне Capsa бесплатна, и она по существу позволяет просто захватывает пакеты и производить их базовый графический анализ. Панель мониторинга уникальна и может помочь неопытному системному администратору быстро определить проблемы в сети. Бесплатный уровень предназначен для людей, которые хотят узнать больше о пакетах, и наращивать свои навыки в анализе.

Бесплатная версия позволяет контролировать более 300 протоколов, подходит для мониторинга электронной почты, а также сохранения содержимого электронной почты, она также поддерживает триггеры, которые могут использоваться для включения оповещений при возникновении определенных ситуаций. В связи с этим Capsa в какой-то степени может использоваться в качестве средства поддержки.

Capsa доступна только для Windows 2008/Vista/7/8 и 10.

Заключение

Несложно понять, как с помощью описанных нами инструментов системный админимтратор может создать инфраструктуру мониторинга сети. Tcpdump или Windump могут быть установлены на всех серверах. Планировщик, такой как cron или планировщик Windows, в нужный момент запускает сеанса сбора пакетов и записывает собранные данные в файл pcap. Далее системный администратор может передать эти пакеты центральной машине и анализировать их с помощью wireshark. Если сеть слишком велика для этого, имеются инструменты корпоративного уровня, такие как SolarWinds, чтобы превратить все сетевые пакеты в управляемый набор данных.