Просмотр Исходного

{toc}

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

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






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

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

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

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


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

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

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

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


h3. Mikrotik

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

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

h3. Cisco

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









h3. Redback

\#TODO

h3. D-link

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



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

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

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

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

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

h3. Решение проблем

Если в [расходе|CarbonBilling:Счетчики услуг. Вкладка "Расход".] абонента трафик не появляется, проверьте следующее:
# Сгенерируйте трафик на хосте абонента, просмотрите с помощью tcpdump с каких IP-адресов приходит netflow, убедитесь что по всем этим адреса в биллинге заведены [NAS интернет|CarbonBilling:Интеграция оборудования интернет].
# Если все адреса есть, проверьте что в netflow есть ненулевые данные в трафике, это удобней всего делать с помощью *tshark*, по-умолчанию он не установлен и находится в пакете *wireshark*, запустив снифер по IP NAS из учетной записи тестового абонента:
{code}yum install -y wireshark
tshark -nnVi eth0 port 9996 and host 10.20.30.40 -c 1 | egrep 'Packets|Octets' | sort | uniq{code}
Вывод должен быть приблизительно таким:
{code}Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
1 packet captured
Octets: 101
Octets: 126
Octets: 1260
Packets: 11
Packets: 2
Packets: 6{code}
Должны быть ненулевые *Octets*
{info}Описание полей netflow можно посмотреть по ссылке [https://www.plixer.com/support/netflow-v5/]

{info}
# Если *Octets* ненулевые, убедитесь что трафик проходит IPTABLES по правилу для IP Вашего NAS:
{code}iptables -nvL nas_clients | grep 9996{code}
# Если если IP nas корректный, убедитесь что трафик приходит на IP-адрес биллинга назначенный физическому интерфейсу, bridge в которых есть физические интерфейсы, или bond-интерфейсам.
# Если трафик проходит IPTABLES, [повысьте уровень логирования коллектора netflow|CarbonBilling:Описание работы служб сбора статистики] в настройках коллектора и посмотрите есть ли данные в логе [nf_collector|CarbonBilling:Collector], убедитесь что он отсылает их в /var/dump
# Если данные отправляются, проверьте что запущен [traf_reporter|CarbonBilling:Collector] и он отсылает данные в биллинг изучив его лог
# Если все прочие проверки прошли, убедитесь что timestamp в netflow в настоящем времени. Например, ниже приведён вывод снифера с сожержимым пакета, по которому видно что NAS присылает информацию по трафику в прошлом времени:
{code}tshark \-nnVi eth0 port 9996 \-d udp.port=9996,cflow \-c 1 \-w testnf9.pcp \| egrep 'Cisco NetFlow/IPFIX' \-A10
tshark: WARNING: \-d requires "==" instead of "=". Option will be treated as "udp.port==9996,cflow"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
1 packet captured
Cisco NetFlow/IPFIX
    Version: 9
    Count: 20
    SysUptime: 689986710
    Timestamp: Dec 25, 2018 17:42:36.000000000 \+07
        CurrentSecs: 1545734556
    FlowSequence: 6632453
    SourceId: 0
    FlowSet 1
        FlowSet Id: (Data) (256)
        FlowSet Length: 1384{code}

{info}Если указанные в статье дейвтия не помогли, выполните скрипт диагностики:

{code}/app/base/usr/local/bin/billing_check.sh &> billing_check.log{code}

и приложите его к заявке а портале HelpDesk{info}