Столкнулся давеча на форуме с вопросом об учете трафика в ситуации, когда интернет раздается маршрутизатором cisco. Честно говоря, удивило обилие предложенных “велосипедных” хитростей и это  при том, что давно уже есть готовое, простое и элементарное решение. И имя ему – NetFlow. Давайте попробуем вместе разобраться с тем, что такое netflow.

Что такое NetFlow?
NetFlow – это протокол, разработанный компанией Cisco. NetFlow позволяет устройствам Cisco передавать данные о трафике, проходящем через данное устройство, на любой хост в сети, где эти данные могут накапливаться, сохраняться в определенном виде и соответственно отображаться. Таким образом мы имеем три типа обьектов, которые работают с NetFlow: сенсор, коллектор, визуализатор.

Сенсор NetFlow – в нашем случае это непосредственно маршрутизатор cisco, который собирает информацию о сетевом трафике и передает ее на коллектор. Данные о трафике передаются по сети посредством UDP дейтаграмм.

Коллектор NetFlow – это устройство в сети (или лучше сказать: программное обеспечение, установленное на одном из устройств сети), которое принимает данные от сенсора и складывает их определенным образом для последующем обработки (в базу MySQL, PostgreSQL, в текстовый файл… да куда угодно). Поскольку протокол NetFlow является открытым – существует масса коллекторов под различные операционные системы (Windows, Linux, *BSD… и т.д.). Это означает тот факт, что какая-бы операционная ситема ни была у Вас установлена – Вы сможете собирать информацию с NetFlow сенсоров (устройств cisco), обрабатывать ее и отображать в нужном виде.

Визуализатор NetFlow – это программное обеспечение, которое позволяет Вам видеть результаты сбора статистики коллектором в том виде, в котором Вам требуется (графики, отчеты и прочее). Некоторые коллекторы могут включать в себя и функции визуализатора.

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

Для чего нужен NetFlow?
Поскольку данные о сетевом трафике сенсор NetFlow передает посредством UDP дейтаграмм – это значит, что коллектор может находится где угодно, главное, что бы к нему был доступ через маршрутизируемую ip сеть. Таким образом мы получаем ситуацию, когда устройство передающее информацию о трафике (NetFlow сенсор) может находиться в Африке, а принимающее устройство (NetFlow коллектор) в Австралии. А это в свою очередь означает тот факт, что мы можем организовать централизованный сбор информации с устройств, где бы они не находились; отобразить информацию о трафике в нужном для нас виде: трафик по филиалам, по пользователям филиалов, структура трафика (в каких филиалах преобладает FTP, в каких HTTP и т.д.) – все капризы нашей фантазии нам же и доступны.

Как настроить NetFlow?
На устройствах cisco Вам понадобится выполнить всего лишь 3 команды. 2 из них – в режиме конфигурирования устройства cisco и 1 в режиме конфигуриования интерфейса. Предположим, что мы хотим собирать статистику с интерфейса FastEthernet 0/0 и отправлять информацию на рабочую станцию администратора с адресом 192.168.0.10 на UDP порт 2205. Сконфигурируем маршрутизатор, для этого в режиме конфигурирования введем:

router(config)# ip flow-export version 5
router(config)# ip flow-export destination 192.168.0.10 2205

Теперь в режиме конфигурирования интерфейса FastEthernet 0/0 введем:

router(config-if)# ip route-cache flow

Остается только установить NetFlow коллектор на рабочую станцию администратора и настроить его на прослушивание порта 2205. Подобрать себе NetFlow коллектор по вкусу можно воспользовавшись поиском в google.