Настройка и проверка netflow-потоков

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (26)

просмотр истории страницы


h1. Настройки на Carbon Billing
h1. Настройка


h2. Что сделать в первую очередь

h3. Проверьте что IP-адреса всех NAS-серверов заведены в билллинг

Биллинг принимает статистику только с известных ему IP-адресов. Поэтому в [списке NAS-серверов интернет|CarbonBilling:Интеграция с оборудованием] должны быть IP-адреса всех маршрутизаторов с которых отправляется Netflow, даже если это _border_ или _маршрутизаторы ядра_.

Если Netflow приходит не с NAS, то просто добавьте в список NAS по инструкции [CarbonBilling:Пользовательская схема] или добавьте хук фаервола, например:
В большинстве случаев, для сохранения статистики достаточно стандартных настроек NAS и биллинга. Проверьте настройки:
# Должны быть включены опции [collector|Описание работы служб сбора статистики]:
#* *Включить сбор статистики* - служба сбора статистики.
#* *Отправлять агрегированную статистику на Биллинг* - в биллинге появится возможность подсчитывать объём трафика.
#* *Включить bstatd для детальной статистики (снято с поддержки)* или *Сохранять сырую статистику в формате nfcapd для анализа nfsen* - для сохраниния детализации по посещённым ресурсам.
# Создайте NAS
Биллинг принимает статистику только c IP-адресов внесённых в фаервол. Можно добавить адреса несколькими способами:
#* Адреса автоматически добавляются при создании [NAS-серверов интернет|CarbonBilling:Интеграция оборудования интернет].
#* Можно добавить "пустой" NAS по инструкции [CarbonBilling:Пользовательская схема], укажите нужный IP.
#* Добавьте разрешения в фаервол через в ручную с помощью [хука|Дополнительные настройки. hooks. Хуки. Свои правила в firewall]
{code}
#!/bin/bash

if [ "$1" = "/etc/init.d/firewall" -a "$2" = start ]; then

iptables -I nas_clients -s 10.0.1.7/32 -p udp -m udp --dport 9996 -j ACCEPT
iptables -I nas_clients -s 10.0.2.200/32 -p udp -m udp --dport 9996 -j ACCEPT

fi
exit 0
{code}
# Настройте netflow на NAS
В каждой [cтандартной схеме|Стандартные схемы] описана настройка netflow. Укажите IP адрес биллинга и порт(по умолчанию 9996). Загрузите конфигурацию на оборудование. Дополнительно можете ознакомиться:
#* Mikrotik
[Cтатья в официальной документации|https://wiki.mikrotik.com/wiki/Manual:IP/Traffic_Flow].
#* Cisco
Стандартная схема Cisco-ISG - IPoE и PPPoE написана для версии IOS 12. Настройка на версии IOS 15 и выше описана в [заметках|Заметки по схеме. Netflow Cisco].

h3. Убедитесь что биллинг слушает порт 9996

При настройке передачи статистики по netflow указывайте *5-ю версию*. Также статистику по netflow нужно передавать на локальный интерфейс.

Для начала убедитесь, что UDP-порт для приёма указан, по дефолту большая часть NAS-серверов использует 9996 порт.

Проверьте, что сервер действительно слушает на нём:

{code}
netstat -apn | grep 9996
{code}

h2. NetFlow коллектор

На сервере по умолчанию включена возможность приема netflow трафика  от NAS-устройств в локальной сети, поэтому включать отдельно этот сервис  не нужно.
*UDP-порт для приема*
\\
\- По умолчанию сервис работает на порту 9996.  Порт должен быть одинаковым на всех NAS-устройствах сети и на сервере  Carbon Billing, поэтому если ваши устройства используют порт отличный от  9996, то укажите его ниже.
*Прием NetFlow потоков с разных источников*
\\
\- обязательно включите  эту опцию если вам нужно принимать NetFlow с нескольких источников в  локальной сети. Так же, чтобы прием был возможен, эти устройства должны  быть перечислены в управлении NAS-устройствами.

h1. Настройки на оборудовании

Почти любом оборудовании настройка netflow потока сводится к указанию адреса и порта netflow-коллектора, в данном случае Carbon Billing.

Порт Carbon Billing по умолчанию - 9996.


h2. Mikrotik

Примечание: все (all) интерфейсы должны быть выбраны в Trafic Flow

По настройке netflow на mikrotik есть [статья в официальной документации|http://www.mikrotik.com/testdocs/ros/2.9/ip/traffic-flow.php] Mikrotik

h2. Cisco

По настройке netflow на cisco есть [отличная статья на opennet|http://www.opennet.ru/base/cisco/netflow_nat.txt.html]

h2. D-link

Возможно потребуется отключение опции blat attack



h1. Проверка на Carbon Billing

То, что netflow пакеты приходят на Carbon Billing можно проверить следующим образом. Заводим тестового абонента, который ходит в интернет через NAS.

Запускаем на tcpdump на Carbon Billing:

{code}
tcpdump -nvi any udp port 9996
{code}
После этого попробуйте сгенерировать пользователем какой-либо трафик, одновременно наблюдая за tcpdump'ом.

Спустя небольшой промежуток времени после завершения соединения у пользователя вы должны увидеть пришедшие от NAS netflow-пакеты.

h1. Решение проблем
h1. Проверка netflow-потоков
{note}
Биллинг учитывает и добавляет в расход трафик только по абонентам с *активными* услугами трафика. Исключение, опиция: "Деактивировать, если текущий баланс превысил лимит".
{code:title=Вывод}app['nf_collector.enabled']='1'{code}
В примере - коллеткор включен.
Если будет "0", значит коллектор выключен. Включите его [в настройках коллектора|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=126484488#Описаниеработыслужбсборастатистики-Настройкасборастатистики], опция "*Агрегировать статистику*" "*Включить сбор статистики*"

# Сгенерируйте трафик на хосте абонента. Просмотрите с помощью *tcpdump* с каких IP-адресов приходит netflow. Убедитесь, что по всем этим адреса в биллинге заведены [NAS интернет|CarbonBilling:Интеграция оборудования интернет] - биллинг принимает netflow только с известных ему адресов маршрутизаторов.
{code:title=Команда}
#* NAS может отсылать IP пакеты с разных локальных IP адресов. Проверьте, что netflow поток приходит с верного адреса.
{code:title=Команда для проверки}
tcpdump -pnni any udp port 9996 -c 100 2>/dev/null| cut -d ' ' -f 3 | sort -u
{code}
{code:title=Результат выполнения команды}
{code:title=Вывод} ...................
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
14:20:06.701346 IP 10.0.0.10.50731 > 10.0.0.1.9996: UDP, length 1052
.................. 10.0.0.10.9996
14:20:07.095138 IP 10.0.0.20.64644 > 10.0.0.1.9996: UDP, length 1376
10.0.0.20.9996
{code}
Трафик пришел с двух НАС:
{code}
10.0.0.10
10.0.0.20
{code}
В примере на биллинг netflow поток приходит с двух NAS: 10.0.0.10.9996 и 10.0.0.20.9996 порт источника 9996.
#* Убедитесь, что по всем этим адреса в биллинге заведены [NAS интернет|CarbonBilling:Интеграция оборудования интернет] - биллинг принимает netflow только с известных ему адресов маршрутизаторов.
# Если IP NAS корректный, проверьте IP адреса на сервере биллинга. Адрес назначения netflow потока должен быть на одном из интерфейсов.
#* В предидущем примере поток пришел на адрес:
10.0.0.1
{code}
# Убедитесь что биллинг слушает порт netflow(по умолчанию 9996).
{code:title=Команда}
netstat -apn | grep 9996
{code}
{code:title=Вывод}
udp 0 0 127.0.0.1:56761 127.0.0.1:9996 ESTABLISHED 6716/sflowtool
udp 0 0 0.0.0.0:9996 0.0.0.0:* 6640/nfcapd
{code}
# Если все адреса есть и порт доступен, проверьте что в netflow есть ненулевые данные в трафике. Это удобней всего делать с помощью *tshark*.
{code:title=Установите wireshark}
yum install -y wireshark