NexxDigital - компьютеры и операционные системы

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

Знаете, когда подключен безлимитный интернет, то следить за трафиком по сути то и не нужно, разве что ради интереса. Да сейчас все городские сетки как правило безлимитные, чего пока не скажешь про 3G интернет, тарифы которого обычно зашкаливают.

Я все это лето пользуюсь CDMA интернетом от Интертелеком, и знаю все эти нюансы с трафиком и тарифами не понаслышке. Я уже писал о том, как настроить и улучшить интернет от Интертелеком, читайте и . Так вот, у них “безлимитный” тариф стоит 150 гривен в месяц. Как видите, слово безлимитный я взял в кавычки, почему? Да потому, что там идет ограничение по скорости, правда только днем, но радоваться нечему, скорость там просто ужасная, лучше уже GPRS использовать.

Самый нормальный тариф, это 5 гривен в день по факту подключения, то есть не подключаешься сегодня не платишь. Но это не безлимитный, это 1000 мегабайт в день, до 12 часов ночи. Этот тариф у меня сейчас, но на нем хоть скорость приличная, реальная средняя скорость 200 Кбит/сек . Но 1000 Мб в день это не очень много при такой скорости, поэтому контролировать в таком случае трафик просто необходимо. Тем более что после использования этой 1000 Мб стоимость одного мегабайта 10 копеек, что не мало.

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

Следить за трафиком будет NetWorx

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

1. Что бы Вы не искали программу, я загрузил ее на свой хостинг, поэтому .

2. Запускаем скачанный файл и устанавливаем программу, процесс установки я описывать не буду об этом я писал в .

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

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

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

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

Нажимаем правой кнопкой на значок программы в трее и выбираем “Настройка”

На вкладке “График” выставляем как у меня на скриншоте, нажимаем “Ок” и “Применить” . Теперь иконка программы NetWorx в трее будет отображать активность интернет соединения.

6. И последним пунктом в настройке этой программы будет установка квоты. Вот например у меня в день Интертелеком дает только 1000 Мб, так что бы не расходовать больше этой нормы, я настроил программу так, что бы когда я расходую трафик на 80% она меня предупреждала.

Нажмите правой кнопкой мыши на иконку программы в трее и выберите пункт “Квота” .

Видите, сегодня я израсходовал свой лимит на 53% , ниже есть поле, где можно указать при каком проценте сообщать о том что заканчивается трафик. Давайте нажмем на кнопку “Настройка” и настроим квоту.

Здесь все очень просто, сначала устанавливаем какая у вас квота, у меня например дневная, затем задаем трафик я выбрал весь трафик, то есть входящий и исходящий. Выставляем “Часы” и “Единицы измерения” , у меня мегабайты. Ну и конечно же не забываем указать размер квоты, у меня 1000 мегабайт. Нажимаем “Ок” и все, наша квота настроена.

Все, программа полностью настроена и готова считать Ваш трафик. Она будет запускаться вместе с компьютером, а Вам же остается только иногда заглядывать и смотреть для интереса сколько трафика Вы уже спалили. Удачи!

Ещё на сайте:

NetWorx: как следить за интернет трафиком обновлено: Август 17, 2012 автором: admin

Времена, когда мы платили за домашний Интернет исходя из потраченного трафика, давно прошли. Сейчас практически у каждого в квартире своя “безлимитка”, ограничивающая использование Интернета разве что скоростью. Тем не менее проблема с количеством скачиваемого трафика для наших переносных устройств, таких как смартфон или планшет, никуда не делась, поэтому постоянно отслеживать израсходованные мегабайты приходится ежедневно, чтобы в один прекрасный момент не остаться без Интернета. Но вот как его удобнее всего отследить – вопрос, конечно, интересный.

Бизнес в России – это еще одна тема для вечных споров. Ведь всегда существует вероятность того, что оператор отключит вам Интернет за превышение лимита в то время, когда он еще не был достигнут. А как это проверить? Вдруг вас обманывают?

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

1) Использование встроенного в iOS решения по сбору статистики.
2) Установка отдельного приложения от оператора связи.
3) Установка стороннего приложения из App Store для сверки статистики.
4) Джейлбрейк и последующая установка стороннего ПО из Cydia.
5) Покупка безлимитного пакета для Интернета.

1. iOS уже все знает

Абсолютно в каждом iOS-устройстве присутствует встроенный трекер, который считает ваши потраченные мегабайты. Его использование является, пожалуй, самым простым из всех вышеперечисленных вариантов. Найти статистику использования на iOS можно перейдя в Настройки Сотовая связь и опуститься чуть ниже в меню до пункта Статистика тарифа по сотовой связи .

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

Плюсы:
— Уже есть в каждом iPhone и iPad.
— Простота в использовании.
— Работа в фоновом режиме.
— Статистика для каждого приложения.
— Возможность отключения определенных приложений.

Минусы:
— Статистику нужно сбрасывать каждый месяц или кропотливо за ней следить.
— Никаких уведомлений по достижению лимита.

2. Доверьтесь своему оператору

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

Плюсы:
— Самая точная статистика непосредственно от оператора сотовой связи.
— Приложение бесплатно.
— Уведомления о достижении лимита (далеко не всегда).

Минусы:
— Обычно отвратительный саппорт.
— Ужасная оптимизация приложений (для операторов России и СНГ).
— Не интуитивный интерфейс.
— Зачастую обоснованное недоверие к оператору.

3. Приложения из App Store

Кроме официальных приложений от операторов связи в магазине приложений Apple находится еще множество других решений, которые помогут вам отследить драгоценные мегабайты, а заодно уведомить вас о достижении определенного порога скачанного трафика. Самым популярным из них является, пожалуй, Data Usage со скромной ценой в 33 рубля. Однако есть и другие, даже бесплатные аналоги, но, к сожалению, разного качества. Отдельно стоит выделить приложение Traffic Monitor , которое давно неплохо себя зарекомендовало.


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

Минусы:
— Не все (и не всегда) приложения умеют корректно работать в фоновом режиме.
— За качество нужно платить (в виде исключения можно попробовать Traffic Monitor).

4. Приложения из Cydia

Тут, конечно, все понятно: сначала нужно сделать Jailbreak на своем устройстве, чтобы получить доступ к магазину приложений Cydia. Однако взлом устройства не подразумевает под собой того, что теперь можно бесплатно устанавливать все что угодно. Отнюдь. Как и в случае с App Store, в Cydia имеется достаточное количество приложений, но большинство из них также стоят денег.

Самыми популярными, пожалуй, являются WeeTrackData , которое, помимо работы в фоновом режиме, умеет встраиваться в центр уведомлений для быстрого к нему доступа, и CCMeters , которое также умеет отображаться в ЦУ, однако для его установки придется установить дополнительное программное обеспечение CCLoader.

Плюсы:
— Конечно же работа в фоне.
— Быстрый доступ к приложению из Центра уведомлений.
— Уведомления о достижении лимита.

Минусы:
— Необходим Jailbreak.
— Зачастую стоит денег.
— В зависимости от ПО возможно понадобится установка дополнительных компонентов.

4. Долой ограничения!

Одним из самых простых способов забыть о головной боли по поводу расходов трафика – подключить безлимитный Интернет. Несомненно, такой вариант может “влететь в копеечку”, но если для вас это не проблема – такой способ будет самым безболезненным. Другое дело, что далеко не все операторы предлагают именно безлимитные тарифы. Существуют пакеты на 80-100 ГБ, но они в любом случае заканчиваются. С другой стороны, вы же не качаете сутками Blu-Ray фильмы на iOS?

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

З.Ы.

Если смотреть на проблему с другой стороны, то можно задуматься не о подсчете трафика, а его минимизации. Например, использовать сторонние браузеры с такой возможностью. К слову, Opera Mini давно умеет его сжимать. Или если вы не переносите на дух что-то отличное от Safari, можете попробовать Onavo Extend – отдельное приложение, работающее по тому же принципу. К сожалению, не доступно в Русскоязычной версии App Store.

А сколько трафика в месяц тратите вы? Хватает ли того, что предлагают операторы? Расскажите нам об этом в комментариях!

Программ для учёта трафика в локальной сети достаточно много: как платных, так и бесплатных, сильно различающихся по функционалу. Одна из наиболее популярных Open Source программ – SAMS. Она работает на платформе Linux совместно со Squid.

SAMS требует наличия PHP5, будем использовать Ubuntu Server 14.04. Нам понадобятся пакеты Squid, Apache2, PHP5 с модулями.

Учет трафика интернета в локальной сети linux

Попробуем разобраться, как это работает.

Squid раздаёт интернет, принимая запросы на порту 3128. При этом он пишет детальный лог access.log. Всё управление осуществляется через файл squid.conf. Squid обладает широкими возможностями по управлению доступом к интернету: разграничение доступа по адресам, контроль полосы пропускания для конкретных адресов, групп адресов и сетей.

SAMS работает на основе анализа логов прокси-сервера Squid. Система учёта трафика в локальной сети следит за статистикой прокси-сервера, и в соответствии с заданными политиками принимает решение о блокировке, разблокировке или ограничении скорости для клиента Squid.

Установка SAMS

Устанавливаем пакеты.

apt-get install apache2 php5 php5-mysql mysql-server php5-gd squid3

Скачиваем и устанавливаем SAMS

wget https://github.com/inhab-magnus/sams2-deb/archive/master.zip

unzip master.zip

cd sams2-deb-master/

dpkg -i sams2_2.0.0-1.1_amd64.deb

Устанавливаем web-интерфейс

dpkg -i apache2/sams2-web_2.0.0-1.1_all.deb

В файл /etc/sams2.conf вносим изменения.

DB_PASSWORD=/Пароль к MySql/

Запускаем SAMS

service sams2 start

Настройка Squid

Вносим изменения в файл /etc/squid3/squid.conf

http_port 192.168.0.110:3128
cache_dir ufs /var/spool/squid3 2048 16 256

Включаем логирование и ротацию логов с хранением в 31 день.

access_log daemon:/var/log/squid3/access.log squid

logfile_rotate 31

Останавливаем Squid, создаём кэш.

service squid3 stop

service squid3 start

Для чистоты эксперимента настраиваем один из браузеров на работу с прокси 192.168.0.110 через порт 3128. Попробовав подключиться, получаем отказ в соединении – в Squid не настроены права на доступ к прокси.

Начальная настройка SAMS

В другом браузере открываем адрес (192.168.0.110 – адрес сервера).

http://192.168.0.110/sams2

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

Указываем сервер базы данных (127.0.0.1), логин и пароль от MySql.

Начальная настройка системы учёта трафика выполнена. Остаётся только выполнить настройку программы.

Мониторинг трафика в локальной сети

Логинимся в систему под администратором (admin/qwerty).

Стоит сразу сказать об авторизации пользователей.

В ветке Squid открываем прокси-сервер и нажимаем внизу кнопку «Настройка прокси-сервера».

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

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

Заполняем поле «Пользователь» и «IP адрес». В качестве имени пользователя возьмём тот же IP (IP компьютера, не сервера!). В поле «Разрешенный трафик» вносим «0», то есть без ограничений. Все остальные поля опускаем.

Будет добавлен новый acl для этого IP-адреса и разрешение для работы через Squid. Если конфиг не был изменен автоматически, переходим в ветку прокси и нажимаем кнопку «Переконфигурировать Squid». Изменения в конфиг будут внесены вручную.

Пробуем открыть любой URL в браузере. Проверяем access.log и видим запросы, обрабатываемые прокси. Для проверки работы SAMS откроем страницу «Пользователи», внизу нажмём кнопку «Пересчитать трафик пользователей».

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

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

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

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

1. С использованием SNMP-протокола (Simple Network Management Protocol) . Плюсом данного метода является отсутствие необходимости устанавливать дополнительное ПО на компьютеры пользователей. В данном случае программа учета трафика устанавливается только на ПК системного администратора, а на удаленных компьютерах необходимо лишь правильно настроить работу службы SNMP, что для специалиста совсем не трудно. Данный протокол позволяет учитывать трафик, во-первых, на компьютерах под ОС Windows и Linux, а во-вторых, на сетевых принтерах, на коммутаторах и других сетевых устройствах. Поэтому у системного администратора появляется возможность также контролировать работу активного сетевого оборудования компании. Зачастую, по умолчанию протокол SNMP отключен в ОС и его необходимо доустановить и настроить.

2. С помощью службы WMI (Windows Management Instrumentation) , являющейся альтернативой SNMP. Данный метод учета трафика, также как и предыдущий, не требует установки никаких дополнительных модулей на подконтрольные компьютеры. Однако, этот способ подходит только для ОС Windows.

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

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

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

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

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

Подробней о программе учета трафика можно узнать тут http://www.10-strike.com/rus/bandwidth-monitor/

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

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

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

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

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

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

Для передачи 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 портов пакетов трафика, заменяя внутренние (не маршрутизируемые в Интернете) адреса согласно своей динамической таблице трансляции. В такой конфигурации необходимо помнить, что для корректного учета данных по внутренним хостам сети съём статистики должен производиться способом и в том месте, где результат трансляции ещё не «обезличивает» внутренние адреса.

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

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

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

  • перехват (копирование) пакетов, проходящих через сетевую карту сервера, при помощи библиотеки libpcap
  • перехват пакетов, проходящих через встроенный межсетевой экран
  • использование сторонних средств преобразования попакетной статистики (полученной одним из двух предыдущих методов) в поток агрегированной информации 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, softflowd), так и непосредственно встроенных в ядро ОС (FreeBSD: , Linux: ). Для программных маршрутизаторов поток статистики netflow можно принимать и обрабатывать локально на самом маршрутизаторе, или отправлять по сети (протокол передачи – поверх UDP) на принимающее устройство (коллектор).


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

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

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


Естественно, вы можете настроить SPAN-порт и на самом устройстве доступа (маршрутизаторе), если оно это позволяет – Cisco Catalyst 6500, Cisco ASA. Вот пример такой конфигурации для коммутатора Cisco:
monitor session 1 source vlan 100 ! откуда берем пакеты
monitor session 1 destination interface Gi6/3! куда выдаем пакеты

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-сессии, в том числе счетчики переданных байт и пакетов.

Заключение

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

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

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


Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы