Принципы организации учёта IP-трафика. Анализ сетевого трафика в управлении производительностью приложений Программа для сканирования трафика

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

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

В сети Ethernet существуют следующие основные возможности прослушивания трафика:

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

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

Примечание : Хорошим выбором базового инструмента для анализа сетевого трафика в графической среде является бесплатный пакет wireshark [ 43 ] , доступный для Windows и в репозиториях некоторых дистрибутивов Linux.

Утилита tcpdump

Консольная утилита tcpdump входит в состав большинства Unix-систем и позволяет перехватывать и отображать сетевой трафик [ 44 ] . Утилита использует libpcap , переносимую C/C++ библиотеку для перехвата сетевого трафика.

Для установки tcpdump в Debian можно использовать команду:

# apt-get install tcpdump

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

tcpdump <опции> <фильтр-выражение>

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

# tcpdump -i eth0

Можно отключить преобразования IP адресов в доменные имена (т.к. при больших объемах трафика создается большое число запросов к DNS-серверу ) - опция -n :

# tcpdump -n -i eth0

Для вывода данных канального уровня (например, mac адреса и прочее) - опция -e :

# tcpdump -en -i eth0

Вывод дополнительной информации (например, TTL , опции IP ) - опция -v :

# tcpdump -ven -i eth0

Увеличение размера захватываемых пакетов (больше 68 байт по умолчанию) - опция -s с указанием размера (-s 0 - захватывать пакеты целиком):

Запись в файл (непосредственно пакеты - " дамп ") - опция -w с указанием имени файла:

# tcpdump -w traf.dump

Чтение пакетов из файла - опция - r с указанием имени файла:

# tcpdump -r traf.dump

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

Дополнительную информацию по ключам и формате фильтров tcpdump можно получить в справочном руководстве (man tcpdump ).

Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump

Для выделения Ethernet -фреймов используются следующие конструкции tcpdump (общий вид):

tcpdump ether { src | dst | host } MAC_ADDRESS

где src - MAC-адрес источника, dst - MAC-адрес назначения, host - src или dst , а также для выделения широковещательного трафика.

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

Принципы работы пакетных снифферов

Дальнейшем в рамках данной статьи мы будем рассматривать только программные снифферы, предназначенные для сетей Ethernet. Сниффер — это программа, которая работает на уровне сетевого адаптера NIC (Network Interface Card) (канальный уровень) и скрытым образом перехватывает весь трафик. Поскольку снифферы работают на канальном уровне модели OSI, они не должны играть по правилам протоколов более высокого уровня. Снифферы обходят механизмы фильтрации (адреса, порты и т.д.), которые драйверы Ethernet и стек TCP/IP используют для интерпретации данных. Пакетные снифферы захватывают из провода все, что по нему приходит. Снифферы могут сохранять кадры в двоичном формате и позже расшифровывать их, чтобы раскрыть информацию более высокого уровня, спрятанную внутри (рис. 1).

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

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

Ограничения использования снифферов

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

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

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

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

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

Другая причина, по которой снифферы перестали быть настолько опасными, как раньше, заключается в том, что в настоящее время наиболее важные данные передаются в зашифрованном виде. Открытые, незашифрованные службы быстро исчезают из Интернета. К примеру, при посещении web-сайтов все чаще используется протокол SSL (Secure Sockets Layer); вместо открытого FTP используется SFTP (Secure FTP), а для других служб, которые не применяют шифрование по умолчанию, все чаще используются виртуальные частные сети (VPN).

Итак, те, кто беспокоится о возможности злонамеренного применения пакетных снифферов, должны иметь в виду следующее. Во-первых, чтобы представлять серьезную угрозу для вашей сети, снифферы должны находиться внутри самой сети. Во-вторых, сегодняшние стандарты шифрования чрезвычайно затрудняют процесс перехвата конфиденциальной информации. Поэтому в настоящее время пакетные снифферы постепенно утрачивают свою актуальность в качестве инструментов хакеров, но в то же время остаются действенным и мощным средством для диагностирования сетей. Более того, снифферы могут с успехом использоваться не только для диагностики и локализации сетевых проблем, но и для аудита сетевой безопасности. В частности, применение пакетных анализаторов позволяет обнаружить несанкционированный трафик, обнаружить и идентифицировать несанкционированное программное обеспечение, идентифицировать неиспользуемые протоколы для удаления их из сети, осуществлять генерацию трафика для испытания на вторжение (penetration test) с целью проверки системы защиты, работать с системами обнаружения вторжений (Intrusion Detection System, IDS).

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

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

Обычно окно любого сниффера с графическим интерфейсом состоит их трех областей. В первой из них отображаются итоговые данные перехваченных пакетов. Обычно в этой области отображается минимум полей, а именно: время перехвата пакета; IP-адреса отправителя и получателя пакета; MAC-адреса отправителя и получателя пакета, исходные и целевые адреса портов; тип протокола (сетевой, транспортный или прикладного уровня); некоторая суммарная информация о перехваченных данных. Во второй области выводится статистическая информация об отдельном выбранном пакете, и, наконец, в третьей области пакет представлен в шестнадцатеричном виде или в символьной форме — ASCII.

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

Одна из проблем, с которой могут сталкиваться анализаторы пакетов, — невозможность корректной идентификации протокола, использующего порт, отличный от порта по умолчанию. К примеру, с целью повышения безопасности некоторые известные приложения могут настраиваться на применение портов, отличных от портов по умолчанию. Так, вместо традиционного порта 80, зарезервированного для web-сервера, данный сервер можно принудительно перенастроить на порт 8088 или на любой другой. Некоторые анализаторы пакетов в подобной ситуации не способны корректно определить протокол и отображают лишь информацию о протоколе нижнего уровня (TCP или UDP).

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

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

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

CommView предоставляет возможность вести статистику по всем IP-соединениям, декодировать IP-пакеты до низкого уровня и анализировать их. Встроенная система фильтров по нескольким параметрам позволяет настроить слежение исключительно за необходимыми пакетами, что позволяет сделать их анализ более эффективным. Программа может распознавать пакеты более чем семи десятков самых распространенных протоколов (в том числе DDNS, DHCP, DIAG, DNS, FTP, HTTP, HTTPS, ICMP, ICQ, IMAP, IPsec, IPv4, IPv6, IPX, LDAP, MS SQL, NCP, NetBIOS, NFS, NLSP, POP3, PPP, PPPoE, SMB, SMTP, SOCKS, SPX, SSH, TCP, TELNET, UDP, WAP и др.), а также сохранять их в файлы для последующего анализа. Множество других инструментов, таких как определение изготовителя сетевого адаптера по MAC-адресу, реконструкция HTML и удаленный перехват пакетов с помощью дополнительной утилиты CommView Remote Agent также могут быть полезны в определенных случаях.

Работа с программой

Для начала нужно выбрать сетевой интерфейс, на котором будет отслеживаться трафик.

CommView поддерживает практически любой тип адаптеров Ethernet - 10, 100 и 1000 Мбит/с, а также аналоговые модемы, xDSL, Wi-Fi и др. Анализируя трафик адаптера Ethernet, CommView может перехватывать не только входящие и исходящие, но и транзитные пакеты, адресованные любому из компьютеров локального сегмента сети. Стоит отметить, что если стоит задача мониторинга всего трафика сегмента локальной сети, то требуется, чтобы компьютеры в ней были подключены через хаб, а не через свитч. Некоторые современные модели свитчей имеют функцию port mirroring, что позволяет их также сконфигурировать для мониторинга сети с помощью CommView. Подробнее об этом можно прочитать . Выбрав нужное соединение, можно приступать к захвату пакетов. Кнопки запуска и остановки захвата находятся около строки выбора интерфейса. Для работы с контроллером удаленного доступа, VPN и PPPoE при инсталляции программы необходимо установить соответствующий драйвер.

Главное окно программы разделено на несколько вкладок, отвечающих за тот или иной участок работы. Первая из них, «Текущие IP-соединения» , отображает подробную информацию о действующих IP-соединениях компьютера. Здесь можно увидеть локальный и удаленный IP-адрес, количество переданных и принятых пакетов, направление передачи, число установленных IP-сессий, порты, имя хоста (если в настройках программы не отключена функция распознавания DNS), и имя процесса, принимающего или передающего пакета данной сессии. Последняя информация недоступна для транзитных пакетов, а также на компьютерах, работающих под управлением Windows 9x/ME.

Вкладка «Текущие IP-соединения»

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

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

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

Вторая вкладка, «Пакеты» , отображает все перехваченные на выбранном сетевом интерфейсе пакеты и подробную информацию о них.

Вкладка «Пакеты»

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

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

В нижнем окне отображается декодированная детальная информация о выбранном пакете.

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

Контекстное меню позволяет скопировать в буфер обмена MAC-, IP-адреса и целые пакеты, присваивать псевдонимы, применять быстрый фильтр для выбора требуемых пакетов, а также воспользоваться инструментами «Реконструкция TCP-сессии» и «Генератор пакетов».

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

Полученные данные можно экспортировать в виде текстового, RTF- или двоичного файла.

Вкладка «Log-файлы» . Здесь можно настроить параметры сохранения перехваченных пакетов в файл. CommView сохраняет log-файлы в собственном формате NCF; для их просмотра используется встроенная утилита, запустить которую можно из меню «Файл».

Имеется возможность включения автосохранения перехваченных пакетов по мере их поступления, ведения протоколов сессий HTTP в форматах TXT и HTML, сохранения, удаления, объединения и разделения log-файлов. Следует помнить, что пакет не сохраняется сразу по его прибытии, поэтому при просмотре log-файла в реальном времени в нем, скорее всего, не будет самых последних пакетов. Для того чтобы программа немедленно переслала буфер в файл, нужно нажать кнопку «Закончить захват».

Во вкладке «Правила» можно задать условия перехвата или игнорирования пакетов.

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

Для того чтобы включить какое-нибудь правило, нужно выбрать соответствующий раздел с левой стороны окна. Всего доступно семь типов правил: простые - «Протоколы и направление», «Mac-адреса», «IP-адреса», «Порты», «Текст», «TCP-флаги», «Процесс», а также универсальное правило «Формулы». Для каждого из простых правил предусмотрена возможность выбора индивидуальных параметров, таких как выбор направления или протокола. Универсальное правило «Формула» является мощным и гибким механизмом создания фильтров с помощью булевой логики. Подробный справочник по его синтаксису можно найти .

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

Вкладка «Предупреждения» позволяет создавать, изменять, удалять правила предупреждений, а также просматривать текущие события, соответствующие этим правилам

Для того чтобы задать правило предупреждения, нужно, нажав кнопку «Добавить...», в открывшемся окне выбрать необходимые условия, при появлении которых сработает извещение, а также способ уведомления пользователя об этом.

CommView позволяет задать следующие типы отслеживаемых событий:

  • «Обнаружение пакета», соответствующего указанной формуле. Синтаксис формул подробно описан в руководстве пользователя;
  • «Байты в секунду». Это предупреждение сработает при превышении указанного уровня загрузки сети;
  • «Пакеты в секунду». Срабатывает при превышении заданного уровня частоты передачи пакетов;
  • «Бродкасты в секунду». То же, только для широковещательных пакетов;
  • «Мультикасты в секунду» - то же для многоадресных пакетов.
  • «Неизвестный MAC-адрес». Это предупреждение можно использовать для обнаружения подключений нового или несанкционированного оборудования в сеть, задав предварительно список известных адресов с помощью опции «Настройка»;
  • предупреждение «Неизвестный IP-адрес» сработает при перехвате пакетов с неизвестными IP-адресами отправителя либо получателя. Если предварительно задать список известных адресов, то это предупреждение можно использовать для обнаружения несанкционированных подключений через корпоративный брандмауэр.

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

Окно статистики в режиме «Общее»

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

Доступность, стоимость, системные требования

Текущая версия программы - CommView 5.1. С web-сайта Tamosoft можно , которая будет функционировать в течение 30 дней.

Разработчик предлагает покупателям два варианта лицензий:

  • Home License (домашняя лицензия), стоимостью 2000 рублей, дает право пользоваться программой дома на некоммерческой основе, при этом количество хостов, доступных для наблюдения в вашей домашней сети, ограничивается пятью. В рамках данного типа лицензии не позволяется работать удаленно с помощью Remote Agent.
  • Enterprise License (корпоративная, стоимость - 10000 рублей) предоставляет право на коммерческое и некоммерческое использование программы одним лицом, которое лично пользуется программой на одной или на нескольких машинах. Программа также может быть установлена на одной рабочей станции и использоваться несколькими людьми, но не одновременно.

Приложение работает в операционных системах Windows 98/Me/NT/2000/XP/2003. Для работы необходим сетевой адаптер Ethernet, Wireless Ethernet, Token Ring с поддержкой стандарта NDIS 3.0 или стандартный контроллер удаленного доступа.

Плюсы:

  • локализованный интерфейс;
  • прекрасная справочная система;
  • поддержка разных типов сетевых адаптеров;
  • развитые средства анализа пакетов и определения протоколов;
  • визуализация статистики;
  • функциональная система предупреждений.

Минусы:

  • слишком высокая стоимость;
  • отсутствие пресетов для правил перехвата и предупреждений;
  • не очень удобный механизм выбора пакета во вкладке «Пакеты».

Заключение

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

Оригинал: 8 best packet sniffers and network analyzers
Автор: Jon Watson
Дата публикации: 22 ноября 2017 года
Перевод: А. Кривошей
Дата перевода: декабрь 2017 г.

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

Есть множество утилит, которые собирают сетевой трафик, и большинство из них используют 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, чтобы превратить все сетевые пакеты в управляемый набор данных.

Почитайте другие статьи о перехвате и анализе сетевого трафика :

  • Dan Nanni, Утилиты с интерфейсом командной строки для мониторинга сетевого трафика в Linux
  • Paul Cobbaut, Администрирование систем Linux. Перехват сетевого трафика
  • Paul Ferrill, 5 инструментов для мониторинга сети в Linux
  • Pankaj Tanwar, Захват пакетов при помощи библиотеки libpcap
  • Riccardo Capecchi, Использование фильтров в Wireshark
  • Nathan Willis, Анализ сети с помощью Wireshark
  • Prashant Phatak,

В этой статье мы рассмотрим, что такое анализ сетевого трафика для мониторинга и управления производительностью сетевых приложений, а также коснёмся различий между анализом сетевого трафика в режиме реального времени и ретроспективным анализом трафика (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 ТБ).

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