The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

[CISCO] Настройка Netfltools для учёта трафика посредством netflow (cisco netflow netfltools)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cisco, netflow, netfltools,  (найти похожие документы)
From: Vlad Halilow <vlad@ccs.ru> Subject: [CISCO] Настройка Netfltools для учёта трафика посредством netflow Настройка Netfltools для учёта трафика посредством netflow ---------------------------------------------------------- Со времени написания текста по настройке NeTraMet прошло уже довольно много времени. Письма на эту тему, поступают не только из матушки Руси, но и из-за бугра. Казалось-бы чего еще может непонятного, постарался расписать всё шаги от и до - но вопросы всё равно возникают. Поэтому сегодня в нашем шоу новый гость. [1] netfltools обойдённая вниманием в интернете. Линк на неё есть только в списке рассылки inet-admins, более я его нигде не видел. А между тем, для тех кому трудно разобраться с нетраметом - программа настоящая находка. Из ТТХ отмечу малый расход ресурсов, в т.ч. памяти выделяемой по мере необходимости. Широкие возможности конфигурирования. Возможно меньше чем в нетрамете, но настройка куда проще, и что немаловажно для начинающих - результат сразу, что называется на лицо. Текст не претендует на полноту описания, но даст возможность почуствовать свою силу, и не даст сбежать назад к accounting'у :) Итак, вы скопировали себе дистрибутив. После компиляции, вы получаете три основных бинарника: netfld - сам коллектор; netflcon - консоль управления; netflget - дампер базы flows. первым делом необходимо сообразить конфиг для коллектора: -----netfld.cfg----- connect_port = 5000 // порт управления receive_buffer_size = 131072 data_queue_size = 100000 log_file = netflow.log autosave_interval = 3600 //периодичность в секундах, с которой демон будет дампить конфигурацию on_add_filter = /home/vlad/netflow/mysql_add_filter //программы, запускаемые на изменение конфигурации on_modify_filter = /home/vlad/netflow/mysql_modify_filter on_delete_filter = /home/vlad/netflow/mysql_delete_filter on_add_description = /home/vlad/netflow/mysql_add_description on_modify_description = /home/vlad/netflow/mysql_modify_description on_delete_description = /home/vlad/netflow/mysql_delete_description router one = x.x.x.x 9997 //адреса роутров, и порты на которые они будут отправлять свои flows router two = y.y.y.y 9996 ---------------------- Вот и всё. Затем запускаем демон: host#netfld -config netfld.cfg Рулить демоном, можно и через конфигурационный файл, но проще и приятней делать это через netflcon. host#netflcon -host host -port 5000 Теперь можно приступить к конфигурации. Все директивы конфигурирования рассмотрены в документации, я лишь покажу их использование на практике. Есть три основных обьекта. Это фильтры (filter), алиас (alias) и слайс (slice). Фильтр, это некоторое выражение. например: netflcon>add filter test router == x.x.x.x Задаёт условие, под которое попадают только flows (т.е. информация о трафике) пришедшие с роутера one. Add - комманда на добавление, filter - что добавляем, test - имя, всё что дальше - условие. На этот фильтр можно повесить еще один фильтр (сабфильтр), след. образом: netflcon>add filter test:ip_in dst_addr in 192.168.0.0/20 После двоеточия, идёт имя подфильтра а затем условие. Знак равно '==' можно применять только при строгом соответствии, например src_addr == 192.168.1.1 . если нам необходимо, чтобы под условие попадал блок адресов, то надо использовать тэг 'in'. Что бы можно было увидеть величину трафика, попадающего под фильтр, необходимо добавить на него счётчик: netflcon>add collector test:ip_in И теперь можно воспользоватся коммандой show, что-бы посмотреть как там у нас дела. netflcon>show collector test:ip_in выдаст что-то вроде следующего: packets : octets : pkts/s : octets/s : total time : nflows 1323 : 698858 : 661.50 : 349429.00 : 1486 : 93 Т.е. искомые объём трафика, ушедшего на наш блок адресов. Если у нас одна и та-же величина, или условие используется в нескольких фильтрах, то в случае изменения например нашей сетки, придётся переписывать несколько фильтров. Дабы избежать такого расклада, можно воспользоватся алиасами. Наш пример можно переписать следующим образом: netflcon>add alias home_net 192.168.0.0/20 //home_net имя фильтра. netflcon>add filter test router == x.x.x.x netflcon>add filter test:ip_in dst_addr in [home_net] могу поспорить, что после комманды add filter test router == x.x.x.x консоль выругалась, что такой фильтр уже есть ;) если вы его не удаляли коммандой delete (delete filter test) то в дальнейших изысканиях можете её опустить. впрочем при разборе каждого примера, лучше удаляйте ваши изыски что бы не запутаться. список всех фильтров можно получить коммандой list filters, аналогично и с алиасами list aliases. кстате содержание фильтра смотрится коммандой show (show filter test), для алиасов аналогично. при удалении фильтра верхнего уровня, автоматически убиваются все навешеные сабфильтры и коллекторы к ним привязанные. Возвращаясь к примеру, если слово заключено в квадратные скобки, то на это место подставляется алиас, и фильтр работает в том-же режиме. в качестве алиасов, безусловно можно задавать произвольные, синтаксически верные выражения, например: netflcon>add alias home_net_in dst_addr in 192.168.0.0/20 || dst_addr in 192.169.0.0/20 Двойная вертикальная черта, это условие 'ИЛИ', тогда последняя комманда урежется до: netflcon>add filter test:ip_in [home_net_in] программа поддерживает все атрибуты, какие только могут понадобится, т.е. только адресами дело не ограничивается. Например посчитаем трафик с интерфейса с индекcом 1 на интерфейс с индексом 2: netflcon>add filter test router == x.x.x.x netflcon>add filter test:in src_intf == 1 && dst_intf == 2 netflcon>add collector test:in необходимо помнить, что флов даёт информацию о трафике в одну сторону(это верно и для адресов, и для автономок итд), т.е. мы посчитали только то, что ушло с интерфейса 1 на интерфейс 2. Для учёта обратного трафика, сделаем следующее: netflcon>add filter test:ou src_intf == 2 && dst_intf == 1 netflcon>add collector test:ou Теперь на фильтре test:in оседает трафик в одну сторону, а на test:ou в другую. переходя к слайсам, представим ситацию, что у нас 20 интерфейсов, и нужно считать трафик в обе стороны по всем. количество фильтров немалое. и дело это неблагодарное. нас спасут слайсы. Слайс - это атрибут, по которому трафик будет разбиватся на отдельные элементы. если например в качестве слайса поставить ip адрес, то трафик проходящий на эту сеть, будет биться по отдельным адресам. Т.е. полностью выглядеть будет так: netflcon>add alias home_net 192.168.0.0/20 netflcon>add filter test router == x.x.x.x netflcon>add filter test:ip_in dst_addr in [home_net] netflcon>add slices1 test:ip dst_addr Теперь если мы дадим комманду: netflcon>show slices1 test:ip dst_addr Получим раскладку трафика в сеть, по всем входящим в неё адресам. можно применить тэг slices2, в этом случае можно задавать в качестве разбиваемых параметров уже два параметра: netflcon>add filter test router == x.x.x.x netflcon>add filter test:ip_in dst_addr in 192.168.0.0/20 netflcon>add filter test:ip_ou src_addr in 192.168.0.0/20 netflcon>add slices2 test:ip_in dst_addr src_addr netflcon>add slices2 test:ip_ou src_addr dst_addr тогда дав комманду: netflcon>show slices2 test:ip_in dst_addr src_addr получим таблицу, где в качестве одного параметра будут адреса нашей сети, а в качестве другого - адреса с которыми шёл обмен трафиком. ну или как вариант, можно сделать следующий финт ушами: netflcon>add slices2 test:ip_in dst_addr src_port netflcon>add slices2 test:ip_ou src_addr dst_addr тогда просмотр слайсов, даст раскладку о том, на какие порты с наших адресов ходил трафик. помимо комманд add и delete, можно модифицировать уже существующие фильтры (и алиасы), например что-бы не терять значения счётчика коллектора. синтаксис аналогичный добавлению: netflcon>add filter test router == x.x.x.x netflcon>modify filter test router == y.y.y.y заменит в фильтре test адрес роутера с x.x.x.x на y.y.y.y . базовое представление о управлении мы получили. теперь рассмотрим методы сьёма информации. с консоли это комманды show и get. show мы уже видели в работе, get отличается только тем, что после снятия нформации счётчики обнуляются. зачем, обьяснять думаю не надо. для получения дампов прокачанного трафика, служит утилита netflget. конфиг для неё, применительно к примеру со slices2 будет выглядеть так: ----------netflget.cfg-------------- host 217.76.32.82 //адрес хоста с коллектором port 5000 // порт управления get test:ip_in dst_addr src_port /комманда на снятие информации get test:ip_ou src_addr dst_port ------------------------------------ запуск программы host#netflget -config netflget.cfg выдаст на stdout дамп текущего состояния слайсов. обратите внимание, что синтаксис комманды get (show) для netflget отличается от консольной. не надо указывать обьект (slice1;slices2;collector), только имена. Далее следует письмо от разработчика, которое другими словами описывает основы конфигурирования. Возможно оно кому-то будет полезно. ------------------------------------- Если, скажем, юзверя крупные, то на них можно и фильтры поставить - у нас в дереве порядка 1000 фильтров и проблем нет. Только делать лучше так add filter input_1 [src_1] add filter input_1:user_1 <expression задающий юзера 1> add collector input_1:user_1 add filter input_1:user_2 <expression задающий юзера 2> add collector input_1:user_2 или так: add filter user_1 <expression задающий юзера 1> add filter user_1:in_1 [src_1] add collector user_1:in_1 add filter user_1:in_2 [src_2] add collector user_1:in_2 Таким образом фильтры организуются в виде дерева: скажем, фильтр верхнего уровня отсекает трафик, относящийся к данному юзеру, а подфильтры уже считают его трафик на соответствующих интерфейсах. Другой вариант - использовать slices. Делается, например, так: add filter input_1 [src_1] add slices1 input_1 dst_addr после этого если сказать, скажем, show slices1 dst_addr то на экран вылезет раскладка трафика попадающего в фильтр src_1 по destination IP-адресам. Вообще, установка slices на фильтр позволяет получить раскладку трафика по произвольному параметру (или двум параметрам). Т.е. можно получить раскладку по адресам, портам, ASкам и т.д. На каждый фильтр может быть навешено произвольное количество slices по разным параметрам. ------------------------------- Вот вобщем-то и всё. Хотелось-бы выразить благодарность Andrey Slepuhin, за написание столь полезной программы и оказанную помощь в настройке, а так же Andy Igoshin за линк на неё, и ответы на мои вопросы. Ссылки: 1. http://glade.nmd.msu.ru/~pooh/netfltools/ wbr - konsul

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, Frozen (?), 14:24, 09/09/2003 [ответить]  
  • +/
    OldyMan/configure
    Checking for machine type...
    ***
    *** Fatal error - machine type is not supported yet [i386:FreeBSD:4.7-RELEASE:FreeBSD 4.7-RELEASE #1: Fri Sep  5 10:37:19 GMT 2003     carnaily@OldyMan.vgroup.ru:/usr/obj/usr/src/sys/VGROUP ]
    ***
    OldyMand ..;rm -rf *
    OldyManwd
    /usr/home/carnaily/netfltools
    OldyMans
    OldyMand ..
    OldyManm -rf netfltools/
    OldyMan0D

    :-(

     
  • 1.2, Dennis Yusupoff (?), 14:14, 14/09/2004 [ответить]  
  • +/
    Ну, блин, и муть. А не проще ли воспользоваться куда более свежей и портированной разработкой NeTAMS (http://www.netams.com/) ? Тем более, что настраивать её не в пример легче предыдущих прог. Да и дока русская.
     
  • 1.3, Yarik (??), 17:34, 26/10/2005 [ответить]  
  • +/
    Пробовали мы netams. Коряво написан.
    В кору падает. Разработчик самое умное, что
    мог сказать, так это: "У меня работает".
    Самому ошибку пришлось искать. Нашел.
    Все равно никакого доверия к этой программе.
     
     
  • 2.6, Anton (??), 09:21, 20/03/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Очень забавляют потуги таких "админов" как вы поставить софт, полениться почитать доку и поредактировать конфиг, получить кору. Потом требовать поддержки, не предоставляя никаких сведений о системе, окружении, настройке и прочем.
    Мой ответ был такой же, как ваш вопрос.
     

  • 1.4, Yarik (??), 17:39, 26/10/2005 [ответить]  
  • +/
    Вот, еще заметочка из портов по поводу нетамса:
    SECURITY REPORT:
          This port has installed the following files which may act as network
          servers and may therefore pose a remote security risk to the system.
     
     
  • 2.5, Anton (??), 09:19, 20/03/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Такой Security Report фрибсд пишет для любого софта, который будет запускаться из /usr/local/etc/rc.d/
    Учите матчасть.
     

  • 1.7, Junkie (?), 12:55, 21/03/2006 [ответить]  
  • +/
    Полностью согласен с Антоном. Ребята, ну разве трудно прочитать доку, тем более на русском, а потом немного подумать головой?
    А потом начинаются истерики "а у меня в кору падает, а у меня неправильно трафик считает..."
     
  • 1.8, dmitry (??), 20:29, 31/01/2007 [ответить]  
  • +/
    А не подскажите где он собственно в портах лежит? :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру