ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Метки статьи: ‘netflow’

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

NetFlow — Netflow — протокол 5 (сеансового) уровня сетевой модели OSI, разработанный компанией Cisco и предназначенный для сбора информации об IP-трафике.

Стандартный пакет flow-tools, помимо приложений, которые показывают содержимое файлов статистики, содержит еще и две интересные службы flow-capture и flow-fanout.
Flow-capure служит для сохранения полученной статистики. Flow-fanout служит для дублирования статистики на разные машины. Обовсем подробнее.

Программно-аппаратное обеспечение
1. ПК P4 — CPU 2.4 GHz, RAM 512 Mb, HDD 1Tb.
2. ОС — FreeBSD 7.2, swap 4 Gb

Установка
1. Обновляем порты:

# portsnap fetch update

или если вы используете команду portsnap впервые:

# portsnap fetch extract

2.  Устанавливаем порт:

# cd /usr/ports/net-mgmt/flow-tools
# make install clean

Настройка

Правим файл /etc/rc.conf:

Так настраивается flow-capture:

# Запускаем flow-capture
flow_capture_enable=»YES»

# Указываем ip-адрес на котором слушается соединение (принимается поток)
flow_capture_localip=»IP_ADDRESS«
вместо IP_ADDRESS укажите IP-адрес сервера, пример: 10.0.0.1

# Указываем ip с которого принимать поток (по умолчанию 0.0.0.0 — принимать с любого ip)
flow_capture_remoteip=»0.0.0.0″

# Указываем порт на который будет приниматься поток
flow_capture_port=»9998″

# указываем путь, по которому будем складывать статистику
flow_capture_datadir=»/usr/local/_dump/ng»

# Параметры работы демона
flow_capture_flags=»-keyvalue»

Так настраивается flow-fanout:


#Включаем flow-fanout
flow_fanout_enable=»YES»

# Указываем ip-адрес на котором слушается соединение(принимается поток)
flow_fanout_ip=»IP_ADDRESS«

# Указываем ip с которого принимать поток (по умолчанию 0.0.0.0 — принимать с любого ip)
flow_fanout_remoteip=»0.0.0.0″

# Указываем порт на который будет приниматься поток
flow_fanout_port=»PORT_NUMBER«

# Указываем правила экспорта статистики
flow_fanout_export=»<source_ip1>/<det_ip1>/<dest_port1> <source_ip2>/<det_ip2>/<dest_port2>»

Перед настройкой следует определиться, каким образом будет осуществляться хранение статистики и её получение.
Вариантов существует по меньшей мере 2:

  • непосредственно принимать поток при помощи flow-capture и сохранять на этой же машине
  • принимать поток при помощи flow-capture и дублировать этот же поток на другую машину

Рассмотри оба варианта на примере использования mpd5 в связке с netflow.

Первый вариант

Допустим, mpd5 и flow-capture у нас работают на одной машине.

Эти параметры следует прописать в mpd.conf:
set iface enable netflow-in
set iface enable netflow-out

set netflow peer 127.0.0.1 9996 #Кому передаем
set netflow self 127.0.0.1 65500 #свой порт, от которого будет происходить передача

Это прописываем в /etc/rc.conf:
flow_capture_enable=»YES»
flow_capture_localip=»127.0.0.1″
flow_capture_remoteip=»0.0.0.0″
flow_capture_port=»9998″
flow_capture_datadir=»/usr/local/_dump/»
flow_capture_flags=»-S60 -z9 -n95 -N0″

Таким образом демон mpd5 будет скидывать, с порта 65500, на порт 9996, flow-capture, информацию о входящем и исходящем трафике,

а flow-capture, в свою очередь, будет складывать её по пути /usr/local/_dump .

Второй вариант
Допустим, mpd5 и flow-fanout у нас работают на одной машине, а flow-capture на другой и нам нужно сливать поток как на коллектор flow-capture, так и на еще одну стороннюю машину.

  • mpd5 и flow-fanout — IP 10.10.0.1
  • flow-capture — ip 10.10.0.2
  • сторонняя машина — ip 10.10.0.3

Сервер 1:
mpd.conf берем из предыдущего примера:
set iface enable netflow-in
set iface enable netflow-out

set netflow peer 127.0.0.1 9996 #Кому передаем
set netflow self 127.0.0.1 65500 #свой порт, от которого будет происходить передача

А вот в /etc/rc.conf настраиваем уже flow-fanout:
flow_fanout_enable=»YES»
flow_fanout_ip=»127.0.0.1″
flow_fanout_remoteip=»127.0.0.1″

# Укажу свой loopback, т.к. нет смысла слушать «с любого адреса»
flow_fanout_port=»9996″
flow_fanout_export=»10.10.0.1/10.10.0.2/9997 10.10.0.1/10.10.0.3/9998″

Сервер 2:
Именно на нем поднимаем flow-capture:
flow_capture_enable=»YES»
flow_capture_localip=»10.10.0.2″
flow_capture_remoteip=»10.10.0.1″

# Можно указать и 0.0.0.0
flow_capture_port=»9997″
flow_capture_datadir=»/usr/local/_dump/»
flow_capture_flags=»-S60 -z9 -n95 -N0″

Сервер 3:
Любое приложение которое принимает flow-поток, будь то биллинг, другой сервер статистики или что-то еще.

Объясню что происходит во втором случае:
Демон mpd5 будет скидывать, с порта 65500, на порт 9996, flow-fanout, информацию о входящем и исходящем трафике. Flow-fanout, в свою очередь, будет сливать это на второй сервер, на котором настроен flow-capture, на порт 9997, и так же он будет сливать эту статистику на третий сервер, порт 9998.

Связка flow-capture И flow-fanout довольно гибкая и позволяет работать с flow-потоком так, как это нужно в зависимости от сложившейся ситуации.

Ключи к flow-capture можно посмотреть в соответствующем man’е.

После всего проделанного запускаем используемые нами сервисы:

# /usr/local/etc/rc.d/flow_capture start

# /usr/local/etc/rc.d/flow_fanout start

Литература и ссылки:
Википедия

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Andrey

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (Еще не голосовали)
Загрузка...
Отправить на почту Отправить на почту

Описание задачи

Снимать статистику с интерфейсов посредством netflow и отправлять на биллинговый сервер.

Решение

На IOS 12.3 и выше ( в моем случае это был 12.4Т) по рекомендации cisco, ip flow настраивается следующим образом:

1. Включаем cef (Cisco Express Forwarding)

configure terminal
ip cef

2. описываем кол-во записей

ip flow-cache entries 40960

3. выставляем тайм ауты

ip flow-cache timeout inactive 130
ip flow-cache timeout active 20

4. указываем интерфейс

ip flow-export source INTERFACE

где INTERFACE это интерфейс с которого будет отправляться flow

5. версия

ip flow-export version 5

6. куда отправляем

ip flow-export destination IP-адрес Порт

собственно на этом «описательная» часть закончилась …

теперь настраиваем сами интерфейсы …

на физических интерфейсах обязательно включаем (fa 0/1 например):

configure terminal
interface fa 0/1
ip route-cache flow

и все больше на них ничего быть не должно (если на них нет ip-адресов)

все остальный телодвижения проделываем только на subinterfaces

включаем на сабах (fa 0/1.1 например):

configure terminal
interface fa 0/1.1
ip flow ingress
ip flow egress

ingress — для входящего трафика
egress — для исходящего трафика

Собственно все. Только заработает все выше описанное после ребута cisco.

ЗЫ: Не наступите на мои грабли и сразу продумайте откуда Вы хотите снимать статистику. В моем случае я не снимаю статистику с uplink , только с саб интерфейсов, на/через которые подключены абоненты. Иначе трафик будет считаться несколько раз.

Что можно посмотреть:

show ip cache flowпоказывает записи флоу на cisco
show ip cache ver flow — тоже самое расширено
show ip flow int — показывает интерфейсы, на которых настроено флоу
show ip flow export — показывает, откуда и куда настроен экспорт флоу, сколько отправлено датаграмм и сколько ошибок

Прием netflow

Обычно биллинговый сервер идет уже в комплекте с коллектором для netflow.

Можно как вариант использовать пакет flow-tools ( для FreeBSD — в портах: net-mgmt/flow-tools ). Настройка этого пакета подробно рассмотрена на http://opennet.ru, поэтому здесь он будет описан бегло.

Для flow-tools особых настроек я не делал просто прописал стартовый скрипт типа:

/usr/local/bin/flow-capture -p /var/run/flow-capture.pid -n 0 -N 2 -w /var/netflow -S 60 localip/rempteip/port

Рассмотрим опции:

-p pid файл (можно не писать)

-n кол-во ротаций файла с флоу в день я поставил 0 чтобы за сутки был один файл (просто мне так удобнее)

-N формат имени файла с флоу, где далее указывается:

  • -3 YYYY/YYYY-MM/YYYY-MM-DD/flow-file
  • -2 YYYY-MM/YYYY-MM-DD/flow-file
  • -1 YYYY-MM-DD/flow-file
  • 0 flow-file
  • 1 YYYY/flow-file
  • 2 YYYY/YYYY-MM/flow-file
  • 3 YYYY/YYYY-MM/YYYY-MM-DD/flow-file

я выбрал 2 (просто привычка)

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

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

localip/remoteip/port — тут, я думаю, все и так понятно:

localip — ip машины, на которой запущен коллектор flow-tools;

remoteip — ip машины, с которой мы принимаем флоу (это может быть как cisco так и другая машина, которая отправляет флоу), в моем случае это ip cisco;

port — порт коллектора, на котором flow-tools слушает и получает данные.

Пример с IP-адресами:

/usr/local/bin/flow-capture -p /var/run/flow-capture.pid -n 0 -N 2 -w /var/netflow -S 60 192.168.1.1/192.168.1.2/5555

В свое время у меня возникла необходимость иметь два коллектора. Flow-tools прекрасно справляется и с этой задачей: я просто запустил еще один flow-capture, но на другом порту и с другой рабочей директорией.

Посмотреть статистику можно утилитой из того же flow-tools:

/usr/local/bin/flow-cat <путь к файлу с флоу> | /usr/local/bin/flow-print

Удачи.

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Green
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 8, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту