... На сервере по умолчанию включена возможность приема 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: 689909010 Timestamp: Jan 16, 1970 04:01:51.000000000 +07 CurrentSecs: 1285311 FlowSequence: 6623195 SourceId: 0 FlowSet 1 FlowSet Id: (Data) (256) FlowSet Length: 1384 {code} # Если трафик дошел до [traf_reporter|CarbonBilling:Collector], в netfow корректное время, проверьте попал ли трафик в БД */var/db/buff_traf.gdb* {code}sqlexec /var/db/buff_traf.gdb "select count(*) from traffic where user_ip=174325762"{code} {info}Узнать IP в десятичном формате можно в основной БД: {code}sqlexec "select uf_ip2string(ip),ip from users where abonent_id=1234"{code} Где 1234 - ID абонента (можно посмотреть в адресной строке браузера, открыв карточку абонента){info} # Если в *buff_traf.gdb* есть данные по трафику абонента, проверьте нет ли ошибок обработки: {code}sqlexec /var/db/buff_traf.gdb "select count(*) from traffic where user_ip=174325762 and error_code_id>=1"{code} Ошибки обработки трафика описаны в статье "[CarbonBilling:Описание структуры базы buff_traf.gdb]" под заголовком "*Коды ошибок с описанием*" h4. Что делать если ни чего не помогло Если указанные в статье действия не помогли, включите [уровень логирования коллектора INFO|CarbonBilling:Описание работы служб сбора статистики] и выполните скрипт диагностики: {code}/app/base/usr/local/bin/billing_check.sh &> billing_check.log{code} и приложите его к заявке на портале HelpDesk
|