Мониторинг сетевого трафика. Лучшие программы для учета Интернет-трафика

Принципы организации учёта IP-трафика

antonvn23 января 2012 в 19:07

Любой админ рано либо поздно получает аннотацию от руководства: «посчитать, кто прогуливается в сеть, и сколько качает». Для провайдеров она дополняется задачками «пустить кого нужно, взять оплату, ограничить доступ». Что считать? Как? Где? Обрывочных сведений много, они не структурированы. Избавим начинающего администратора от утомительных поисков, снабдив его общими познаниями, и полезными ссылками на матчасть.
В данной статье я постараюсь обрисовать принципы организации сбора, учёта и контроля трафика в сети. Мы разглядим проблематику вопросца, и перечислим вероятные методы съема инфы с сетевых устройств.

Это 1-ая теоретическая статья из цикла статей, посвящённого сбору, учёту, управлению и биллингу трафика и IT-ресурсов.

Структура доступа в сеть Интернет

В общем случае, структура доступа в сеть смотрится последующим образом:

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

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

Сетевой трафик

Для начала нужно найти, а что же предполагается под «сетевым трафиком», и какую полезную статистическую информацию можно извлечь из потока пользовательских данных.
Доминирующим протоколом межсетевого взаимодействия пока остается IP версии 4. Протокол IP соответствует 3му уровню модели OSI (L3). Информация (данные) меж отправителем и получателем упаковывается в пакеты – имеющие заголовок, и «полезную нагрузку». Заголовок описывает, откуда и куда идет пакет (IP-адреса отправителя и получателя), размер пакета, тип полезной перегрузки. Основную часть сетевого трафика составляют пакеты с полезной перегрузкой UDP и TCP – это протоколы 4-го уровня (L4). Кроме адресов, заголовок этих 2-ух протоколов содержит номера портов, которые определяют тип службы (приложения), передающего данные.

Для передачи IP-пакета по проводам (или радио) сетевые устройства обязаны «оборачивать» (инкапсулировать) его в пакет протокола 2го уровня (L2). Самым всераспространенным протоколом такового типа является Ethernet. Фактическая передача «в провод» идет на 1м уровне. Традиционно, устройство доступа (маршрутизатор) не занимается анализом заголовков пакетов на уровне, выше 4го (исключение – интеллектуальные межсетевые экраны).
Информация из полей адресов, портов, протоколов и счетчики длин из L3 и L4 заголовков пакетов данных и составляет тот «исходный материал», который употребляется при учёте и управлении трафиком. Фактически размер передаваемой инфы находится в поле Length («Длина пакета») заголовка IP (включая длину самого заголовка). Кстати, из-за фрагментации пакетов вследствие механизма MTU общий размер передаваемых данных постоянно больше размера полезной нагрузки.

Суммарная длина увлекательных нам в данном контексте IP- и TCP/UDP- полей пакета составляет 2…10% общей длины пакета. Ежели обрабатывать и хранить всю эту информацию попакетно, не хватит никаких ресурсов. К счастью, подавляющий размер трафика структурирован так, что состоит из набора «диалогов» меж наружными и внутренними сетевыми устройствами, так именуемых «потоков». К примеру, в рамках одной операции пересылки электронного письма (протокол SMTP) раскрывается TCP-сессия меж клиентом и сервером. Она характеризуется неизменным набором характеристик {IP-адрес источника, TCP-порт источника, IP-адрес получателя TCP-порт получателя}. Заместо того, чтоб обрабатывать и хранить информацию попакетно, еще удобнее хранить характеристики потока (адреса и порты), а также доп информацию – число и сумму длин переданных пакетов в каждую сторону, опционально продолжительность сессии, индексы интерфейсов маршрутизатора, значение поля ToS и прочее. Таковой подход выгоден для нацеленных на соединение протоколов (TCP), где можно очевидно перехватить момент завершения сессии. Но и для не нацеленных на сессии протоколов можно проводить агрегацию и логическое завершение записи о потоке по, к примеру, таймауту. Ниже приведена выдержка из SQL-базы своей системы биллинга, осуществляющей протоколирование инфы о потоках трафика:

Нужно отметить вариант, когда устройство доступа осуществляет трансляцию адресов (NAT, маскарадинг) для организации доступа в Веб компов локальной сети, используя один, наружный, общественный IP-адрес. В этом случае особый механизм осуществляет замену IP-адресов и TCP/UDP портов пакетов трафика, заменяя внутренние (не маршрутизируемые в Интернете) адреса согласно собственной динамической таблице трансляции. В таковой конфигурации нужно держать в голове, что для корректного учета данных по внутренним хостам сети съём статистики должен производиться методом и в том месте, где итог трансляции ещё не «обезличивает» внутренние адреса.

Читайте также  Как распечатать без onenote. как убрать эту штуку в Worde?HELP!

Методы сбора инфы о трафике/статистике

Снимать и обрабатывать информацию о проходящем трафике можно конкретно на самом устройстве доступа (ПК-маршрутизатор, VPN-сервер), с этого устройства передавая ее на отдельный сервер (NetFlow, SNMP), либо «с провода» (tap, SPAN). Разберем все варианты по-порядку.

ПК-маршрутизатор

Разглядим простой вариант – устройство доступа (маршрутизатор) на базе ПК c ОС Linux.

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

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

Libpcap


В первом случае копия пакета, проходящего через интерфейс, опосля прохождения фильтра (man pcap-filter) может быть запрошена клиентской програмкой на сервере, написанной с внедрением данной библиотеки. Пакет поступает вкупе с заголовком 2го уровня (Ethernet). Можно ограничить длину захватываемой инфы (если нас интересует лишь информация из его заголовка). Примерами таковых программ могут быть tcpdump и Wireshark. Существует реализация libpcap под Windows. В случае внедрения трансляции адресов на ПК-маршрутизаторе таковой перехват можно осуществлять лишь на его внутреннем интерфейсе, присоединенном к локальным юзерам. На наружном интерфейсе, опосля трансляции, IP-пакеты не содержат инфы о внутренних хостах сети. Но при таком методе нереально учитывать трафик, создаваемый самим сервером в сети Веб (что принципиально, ежели на нем работают веб– либо почтовый сервис).

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

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

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

Межсетевой экран


Захват данных, проходящих через межсетевой экран, дозволяет учитывать и трафик самого сервера, и трафик юзеров сети, даже при работе трансляции адресов. Основное в этом случае – верно сконструировать правило захвата, и поставить его в необходимое место. Данным правилом активизируется передача пакета в сторону системной библиотеки, откуда приложение учета и управления трафиком может его получить. Для ОС Линукс в качестве межсетевого экрана используют iptables, а средства перехвата – ipq, netfliter_queue либо ulog. Для OC FreeBSD – ipfw с правилами типа tee либо divert. В любом случае механизм межсетевого экрана дополняется возможностью работы с пользовательской програмкой последующим способом:

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

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

Netflow

Этот протокол был разработан компанией Cisco Systems для экспорта инфы о трафике с маршрутизаторов с целью учета и анализа трафика. Более популярная на данный момент версия 5 предоставляет получателю поток структурированных данных в виде UDP-пакетов, содержащих информацию о прошедшем трафике в виде так именуемых flow records:

Читайте также  Программа для роутера билайн. Билайн мастер настройки

Размер инфы о трафике меньше самого трафика на несколько порядков, что в особенности актуально в огромных и распределенных сетях. Естественно же, перекрыть передачу инфы при сборе статистики по netflow нереально (если не употреблять доп механизмы).
В настоящее время становится популярным предстоящее развитие этого протокола – версия 9, основанная на шаблонной структуре flow record, реализации для устройств остальных производителей (sFlow). Не так давно был принят эталон IPFIX, который дозволяет передавать статистику и по протоколам наиболее глубочайших уровней (например, по типу приложения).
Реализация netflow-источников (агентов, probe) доступна для ПК-маршрутизаторов, как в виде работающих по обрисованных выше механизмам утилит (flowprobe, fprobe, softflowd), так и конкретно интегрированных в ядро ОС (FreeBSD: ng_netgraph, Linux: ipt_neflow). Для программных маршрутизаторов поток статистики netflow можно принимать и обрабатывать локально на самом маршрутизаторе, либо отправлять по сети (протокол передачи – поверх UDP) на принимающее устройство (коллектор).

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

Функции экспорта netflow поддерживают маршрутизаторы Cisco Systems, Mikrotik, и некие остальные. Аналогичный функционал (с иными протоколами экспорта) поддерживается всеми большими производителями сетевого оборудования.

Libpcap “снаружи”

Незначительно усложним задачку. Что, ежели ваше устройство доступа – аппаратный маршрутизатор другого производителя? К примеру, D-Link, ASUS, Trendnet и т.д. На нем, быстрее всего, нереально поставить доп программное средство съема данных. Как вариант – интеллектуальное устройство доступа у вас есть, но настроить его не представляется вероятным (нет прав, либо оно управляется вашим провайдером). В таком случае можно собирать информацию о трафике конкретно в точке стыка устройства доступа с внутренней сетью, пользуясь «аппаратными» средствами копирования пакетов. В таком случае обязательно будет нужно раздельно стоящий сервер с выделенной сетевой картой для приема копий Ethernet-пакетов.
Сервер должен применять механизм сбора пакетов по способу libpcap, описанному выше, и наша задачка — на вход выделенной для этого сетевой карты подать поток данных, схожий выходящему из сервера доступа. Для этого можно использовать:

  • Ethernet – хаб (hub): устройство, просто пересылающее пакеты меж всеми своими портами без разбора. В современных реалиях его можно отыскать где-нибудь на пыльном складе, и использовать таковой способ не рекомендуется: ненадежно, низкая скорость (хабов на скорости 1 Гбит/с не бывает)
  • Ethernet – коммутатор с возможностью зеркалирования (мирроринга, SPAN портов. Современные интеллектуальные (и дорогие) коммутаторы разрешают копировать на указанный порт весь трафик (входящий, выходящий, оба) другого физического интерфейса, VLANа, в том числе удаленного (RSPAN)
  • Аппаратный раздвоитель, который может востребовать установки для сбора 2-ух сетевых карт заместо одной – и это кроме основной, системной.


Естественно, вы сможете настроить SPAN-порт и на самом устройстве доступа (маршрутизаторе), ежели оно это дозволяет – Cisco Catalyst 6500, Cisco ASA. Вот пример таковой конфигурации для коммутатора Cisco:

SNMP

Что, ежели маршрутизатора под нашим контролем нет, с netflow связываться нет желания, нас не интересуют детали трафика наших юзеров. Они просто подключены в сеть через управляемый коммутатор, и нам нужно просто грубо оценить размер трафика, приходящегося на каждый из его портов. Как вы понимаете, сетевые устройства с возможностью удаленного управления поддерживают, и могут показать счетчики пакетов (байт), проходящих через сетевые интерфейсы. Для их опроса верно будет употреблять стандартизованный протокол удаленного управления SNMP. При помощи его можно довольно просто получить не лишь значения указанных счетчиков, но также остальные характеристики, такие как имя и описание интерфейса, видимые через него MAC-адреса, и другую полезную информацию. Это делается как утилитами командной строчки (snmpwalk), графическими SNMP-браузерами, так и наиболее сложными програмками мониторинга сети (rrdtools, cacti, zabbix, whats up gold и т.д.). Но, данный способ имеет два существенных недостатка:

  • блокировка трафика может производиться лишь методом полного отключения интерфейса, при помощи того же SNMP
  • счетчики трафика, снимаемые по SNMP, относятся к сумме длин Ethernet-пакетов (причем unicast, broadcast и multicast по-отдельности), в то время как другие описанные ранее средства дают величины относительно IP-пакетов. Это делает заметное расхождение (особенно на маленьких пакетах) из-за оверхеда, вызванного длиной Ethernet-заголовка (впрочем, с сиим можно приближенно бороться: L3_байт = L2_байт — L2_пакетов*38).

VPN

Раздельно стоит разглядеть вариант доступа юзеров к сети методом явного установления соединения к серверу доступа. Классическим примером может служить старенькый хороший dial-up, аналогом которого в современном мире являются VPN-службы удаленного доступа (PPTP, PPPoE, L2TP, OpenVPN, IPSEC)

Устройство доступа не лишь маршрутизирует IP-трафик юзеров, но также представляет из себя спец VPN-сервер, и терминирует логические туннели (часто зашифрованные), снутри которых передается пользовательский трафик.
Для учета такового трафика можно воспользоваться как всеми средствами, описанными выше (и для глубочайшего анализа по портам/протоколам они отлично подходят), так и доп механизмами, которые предоставляют средства управления VPN-доступом. В первую очередь речь пойдет о протоколе RADIUS. Его работа – довольно непростая тема. Мы же коротко упомянем, что контролем (авторизацией) доступа к VPN-серверу (RADIUS-клиенту) заведует особое приложение (RADIUS-сервер), имеющее за собой базу (текстовый файл, SQL, Active Directory) допустимых юзеров с их атрибутами (ограничения по скорости подключения, назначенные IP-адреса). Кроме процесса авторизации, клиент временами передает серверу сообщения аккаунтинга, информацию о состоянии каждой текущей работающей VPN-сессии, в том числе счетчики переданных б и пакетов.

Читайте также  Как удалить старые обновления. Как удалить установленные, скачанные и зависшие обновления Windows 10

Заключение

Сведем все описанные выше способы сбора инфы о трафике воедино:

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

  • как и куда попадают собранные данные о трафике
  • программное обеспечение для учета трафика
  • чем различается биллинг от обычной “считалки”
  • как можно накладывать ограничение на трафик
  • учёт и ограничение посещенных веб-сайтов
Теги:
Хабы:
  • 19
Реклама

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

10 наилучших бесплатных анализаторов и коллекторов Netflow для Windows

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

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

Термин «NetFlow» относится к протоколу Cisco, предназначенному для сбора инфы о трафике по IP и мониторинга сетевого трафика. NetFlow был принят в качестве обычного протокола для потоковых технологий.

Программное обеспечение NetFlow собирает и анализирует данные потоков, генерируемых маршрутизаторами, и представляет их в комфортном для юзеров формате.

Несколько остальных поставщиков сетевого оборудования имеют свои собственные протоколы для мониторинга и сбора данных. К примеру, Juniper, иной очень уважаемый поставщик сетевых устройств, именует собственный протокол «J-Flow«. HP и Fortinet употребляют термин «s-Flow«. Невзирая на то, что протоколы именуются по-разному, все они работают аналогичным образом. В данной для нас статье мы разглядим 10 бесплатных анализаторов сетевого трафика и коллекторов NetFlow для Windows.

SolarWinds Real-Time NetFlow Traffic Analyzer

Free NetFlow Traffic Analyzerявляется одним из более фаворитных инструментов, доступных для бесплатного скачки. Он дает возможность сортировать, помечать и показывать данные разными методами. Это дозволяет комфортно визуализировать и анализировать сетевой трафик. Инструмент непревзойденно подступает для мониторинга сетевого трафика по типам и периодам времени. А также выполнение тестов для определения того, сколько трафика потребляют разные приложения.

Этот бесплатный инструмент ограничен одним интерфейсом мониторинга NetFlow и сохраняет лишь 60 минут данных. Данный Netflow анализатор является массивным инвентарем, который стоит того, чтоб его применить.

Colasoft Capsa Free

Этот бесплатный анализатор трафика локальной сети дозволяет идентифицировать и выслеживать наиболее 300 сетевых протоколов, и дозволяет создавать настраиваемые отчеты. Он включает в себя мониторинг электронной почты и диаграммы последовательности TCP-синхронизации, все это собрано в одной настраиваемой панели.

Другие функции включают в себя анализ сохранности сети. К примеру, отслеживание DoS/DDoS-атак, активности червяков и обнаружение ARP-атак. А также декодирование пакетов и отображение инфы, статистические данные о каждом хосте в сети, контроль обмена пакетами и реконструкция потока. Capsa Free поддерживает все 32-битные и 64-битные версии Windows XP.

Минимальные системные требования для установки: 2 Гб оперативной памяти и процессор 2,8 ГГц. У вас также обязано быть соединение с веб по сети Ethernet (совместимой с NDIS 3 либо выше), Fast Ethernet либо Gigabit с драйвером со смешанным режимом. Он дозволяет пассивно фиксировать все пакеты, передаваемые по Ethernet-кабелю.

Angry IP Scanner

Это анализатор трафика Windows с открытым начальным кодом, стремительный и обычный в применении. Он не просит установки и может быть применен на Linux, Windows и Mac OSX. Данный инструмент работает через обычное пингование каждого IP-адреса и может определять MAC-адреса, исследовать порты, предоставлять NetBIOS-информацию, определять авторизованного юзера в системах Windows, обнаруживать веб-серверы и почти все другое. Его…

Оставьте комментарий