Jump to content

Recommended Posts

Posted

есть почти 40 мбит нетфлоу потока с одной железки flow-capture из-за слабого проца не успевает все пережевать.. в результате в netstat вижу кучу пакетов в recvq, ну и что не влазит естественно дропается.. nfdump пока еще не развернул.. готовлюсь )

Есть у кого success story по принятию такого?

 

Ставили i7 и 4 SATA винта (10k rpm) в raid0, прекрасно работало, обработка шла на этой же машине.

 

Плохо то, что flow-capture задействует только одно ядро :(

  • Replies 53
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

вот именно. процы конечно на машине с флоу капчер слабоватые, но nfdump (на тестовой машине) жует ..

 

попробовал на x5670 там же где nfdump запустить флоу капчер ) в сотку сразу же улетело..

 

но вот чот файлы сильно здоровые у nfdump (

Edited by zhenya`
  • 2 weeks later...
Posted (edited)

попробовал на x5670 там же где nfdump запустить флоу капчер ) в сотку сразу же улетело..

 

Гм. Вот я из любопытства решил посмотреть сколько этот наш коллектор сможет теоретически переработать нетфловов. Немолодой офисный писюк, Core2 Quad, на loopback интерфейсе. Физическими железками проверять лень, да и скорее всего порядок будет тот же.

 

Проверял так:

$ time flow-gen -V5 -n 10000000 | flow-send -x 10 -V5 0/127.0.0.1/9500

real	0m27.438s
user	0m3.812s
sys	0m3.908s

 

Немного покрутил -x (xmit_delay), 10 дало где-то 170 мегабит. На такой скорости разброс потерь пакетов где-то от 0,1% до 0,7%.

top показывает использование CPU: flow-send 24%, flow-gen 4%, xenoeye 12%.

 

Это все кажется довольно логичным, там же нечему в CPU упираться, сплошной IO. Ну, разве что на каждый пакет несколько раз выделять/освобождать память и вызывать localtime. То есть если коллектор не умничает, минимально парсит пакет и складывает на диск, в CPU упереться не должно. Тем более, судя по тому что вы тут пишете, провайдерам нетфлов нужен больше для форс-мажора, отдать данные по IP-адресам за какое-то время. Предварительно просчитывать ничего не нужно, складывай себе и все.

 

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

Edited by vmx
  • 1 year later...
Posted

Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп .

Posted

Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп .

 

Ну, я даже слегка растерялся.

 

Если хотите помочь, напишите что вас в программе не устраивает, какие встретились непонятные моменты и что нужно сделать еще.

 

Мы все никак не можем выпустить очередную версию, еще отпускное настроение. Надеюсь скоро, но пока лучше брать версию из trunk

 

В общем пишите что не так, как нужно правильно. Мы все постараемся осмыслить и учесть

Posted

Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп .

 

Ну, я даже слегка растерялся.

 

Если хотите помочь, напишите что вас в программе не устраивает, какие встретились непонятные моменты и что нужно сделать еще.

 

Мы все никак не можем выпустить очередную версию, еще отпускное настроение. Надеюсь скоро, но пока лучше брать версию из trunk

 

В общем пишите что не так, как нужно правильно. Мы все постараемся осмыслить и учесть

 

Неплохо бы приделать фишки от v9 netflow именно видеть Натинги (в nfdump и в nfsene их можно смореть, однако тот же rrd меня там не очень устраивает ) - есть готовый pcap этого дела .

Также как у вас сделать отчет чтобы как в nfsen общее потребление трафика по времени видеть?

Posted

Неплохо бы приделать фишки от v9 netflow именно видеть Натинги (в nfdump и в nfsene их можно смореть, однако тот же rrd меня там не очень устраивает ) - есть готовый pcap этого дела .

Также как у вас сделать отчет чтобы как в nfsen общее потребление трафика по времени видеть?

 

Натинги это NSEL/NEL? Не уверен что мы сможем быстро это сделать. Мы вообще про Netflow v9 не сильно думали. Но присылайте конечно, будем думать. Прямо на xenoeye@xenoeye.com если небольшие образцы. Или выложите куда-то, а ссылку пришлете.

 

Общее потребление трафика по времени - это что-то типа такого: http://xenoeye.com/extradl/tmp/dgr150414.png ? В trunk версии это есть, график можно зумить/скролить мышкой. Разбивку (это разноцветные столбики) можно делать по любому полю netflow(v5), протокол там, as и т.п. Или можно не делать. Мы даже сделали отчеты с автообновлением, но понятно что они показывают текущую ситуацию очень условно - когда сенсор решит отдать флов

Posted

Неплохо бы приделать фишки от v9 netflow именно видеть Натинги (в nfdump и в nfsene их можно смореть, однако тот же rrd меня там не очень устраивает ) - есть готовый pcap этого дела .

Также как у вас сделать отчет чтобы как в nfsen общее потребление трафика по времени видеть?

 

Натинги это NSEL/NEL? Не уверен что мы сможем быстро это сделать. Мы вообще про Netflow v9 не сильно думали. Но присылайте конечно, будем думать. Прямо на xenoeye@xenoeye.com если небольшие образцы. Или выложите куда-то, а ссылку пришлете.

 

Общее потребление трафика по времени - это что-то типа такого: http://xenoeye.com/e...p/dgr150414.png ? В trunk версии это есть, график можно зумить/скролить мышкой. Разбивку (это разноцветные столбики) можно делать по любому полю netflow(v5), протокол там, as и т.п. Или можно не делать. Мы даже сделали отчеты с автообновлением, но понятно что они показывают текущую ситуацию очень условно - когда сенсор решит отдать флов

 

Да NSEL/NEL . На мыло вам отослал .

 

>Общее потребление трафика по времени - это что-то типа такого: http://xenoeye.com/e...p/dgr150414.png ? В trunk версии это есть, график можно зумить/скролить мышкой.

 

Окей попробую deb собрать

  • 9 years later...
Posted (edited)

по наводке из этой темы пошел почитал, нашел упоминание нужного функционала, скачал, поставил

 

чего хотел получить - разблюдовку входящего трафика одного из аплинков по AS.

выдал на xenoeye сэмплированный sflow поток со свитча Dell, куда входят стыки с аплинками.

вроде как нормально обрабатывает, льет в постгрес (хотя взаимодействие с бд достаточно забавное )) но а почему бы и нет), рисует графаной красивость по AS'кам.

 

при первом знакомстве понравилось, дальше надо посмотреть.

наверное, надо делать бд с партиционированием, если вдолгую играться.

 

upd: допишите в самое начало step-by-step, что в минимальном дебиане (я 12й ставлю) еще нужно поставить пакет libtool.

и для добавления PL/SQL функции (раздел Визуализация GeoIP-данных и названий AS с помощью Grafana в файле EXTRA.md) в постгресе 15+ нужно сделать ALTER DATABASE xenoeyedb OWNER TO xenoeye; иначе ругается на нехватку прав.

Edited by nixx
Posted
Quote

взаимодействие с бд достаточно забавное 

Ну, идея была "не привязываться к конкретной СУБД". Коллектор получает *flow и выдает пользователю текстовые файлы. Мы сначала экспериментировали с другими БД, экспортировали данные в другом формате. Потом решили использовать все-таки Постгрис.

 

Quote

дальше надо посмотреть

Если будете смотреть sFlow, то смотрите с осторожностью. Мы его только недавно добавили, что-то может работать неправильно. Например, скользящие средние для sFlow исправили в другой ветке https://github.com/vmxdev/xenoeye/tree/autothresholds

 

Quote

допишите в самое начало step-by-step

Спасибо!

Постараюсь завтра дописать.

  • 7 months later...
Posted

Раз уж здесь недавно (совершенно неожиданно!) подняли тему, то проанонсирую еще новую версию.

 

Почему-то 99% активности, связанной с проектом, происходит в "оффлайне". В интернете в основном пишут что-то странное, и только очень редко конструктивное. Тем не менее, может быть кому-то будет интересно.

 

В последнее время мы ставим коллектор в качестве DoS/DDoS детектора. Он умеет определять всплески с помощью скользящих средних. Похоже на то, как делает FastNetMon, но можно следить за отдельными типами трафика. Например за DNS, NTP, TCP c SYN-флагами и т.п. Как только пробивается порог, мы сразу понимаем тип атаки, какой атакуют адрес (или сеть) и можем сразу же отправлять BGP анонсы (FlowSpec, BH). Время срабатывания минимальное.

 

Технически коллектор может заменить Netscout Arbor, тот же FastNetMon или "Периметр". Но, конечно, у нас нет удобного GUI, все редактируется конфигами. И отчеты можно строить только Графаной или руками из БД.

Он нормально работает на терабитных сетях (понятно, что с достаточно большим sampling rate), никакого сверхмощного железа не нужно.

 

В новой версии:

  • "Официально" добавили поддержку sFlow. Неофициально она была еще с прошлого года. Бонусом коллектор умеет парсить семплы sFlow (кусочки пакетов) и извлекать DNS и TLS(HTTPS) SNI. Операторам такое, наверное, не очень интересно, а вот хостерам может быть интересно - если достаточно долго собирать информацию, то можно приблизительно понять, какие домены у вас хостятся и нет ли там какой-нибудь фишинговой ерунды.
  • Добавили "классификацию интерфейсов". Можно отбрасывать фловы в зависимости от индекса интерфейса. Если хотите отбрасывать по дескрипшенам интерфейсов, можно прикрутить скрипт. Он будет ходить по SNMP на железку, по регекспам получать индексы интерфейсов и менять соответствующим образом конфиг.
  • Добавили возможность следить за тем, что трафик по МО падает ниже порога. Операторам это тоже не очень интересно, а в небольших сетях может быть полезно как дополнительный косвенный мониторинг сервисов. Упал трафик DNS или там HTTP - значит, скорее всего, прилег сервис или ему плохо.
  • Пороги можно менять без перезапуска. Это вспомогательная фича для автоматически рассчитываемых порогов. Если вычислять их скриптом по предыдущей статистике (95 персентилем, например), то можно обновлять пороги без передергивания анализатора.
  • Добавили LXC-контейнер с коллектором, PostgreSQL и Графаной. Можно быстро развернуть и посмотреть в общих чертах как это выглядит. Там небольшой набор МО и графиков. Можно посмотреть на общую полосу, с разбивкой по протоколам, src/dst IP (поддерживаются IPv4 и IPv6), роутеры и порты, GeoIP/AS и трафик по самым распространенным атакам: DNS и NTP амплификации, SYN-flood.

Адрес анализатора сейчас такой https://github.com/vmxdev/xenoeye , там же вся документация.

Posted
Quote

события NAT логирует?

Про NAT он ничего не знает. Мы снимаем *flow с железок, которые не натят.

Если нужно из netflow/IPFIX брать какие-то необычные поля вроде "postNATSourceIPv4Address", то можно добавить возможность их обработки, вот здесь описано как

 

https://github.com/vmxdev/xenoeye/blob/master/INTERNALS.ru.md#как-добавить-в-коллектор-новое-netflow-поле

  • 10 months later...
Posted

Не удается собрать поток sFlow v5.

Коммутатор: SNR2990-24FQ

conf
 sflow version 5
 sflow priority 1
 sflow destination 10.0.0.119 6343
 sflow agent-address 172.16.0.251
!

Interface Ethernet1/0/6
 sflow rate input 1000
 sflow rate output 1000
 sflow counter-interval 20
!

Поток вижу:

    tcpdump dst port 6343
        tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
        listening on ens18, link-type EN10MB (Ethernet), snapshot length 262144 bytes
        17:24:52.873872 IP 172.16.0.251.32768 > 10.0.0.119.6343: sFlowv5, IPv4 agent 172.16.0.251, agent-id 0, length 1388
        17:24:52.888176 IP 172.16.0.251.32768 > 10.0.0.119.6343: sFlowv5, IPv4 agent 172.16.0.251, agent-id 0, length 1388
        17:24:53.529963 IP 172.16.0.251.32768 > 10.0.0.119.6343: sFlowv5, IPv4 agent 172.16.0.251, agent-id 0, length 1308
        17:24:53.563542 IP 172.16.0.251.32768 > 10.0.0.119.6343: sFlowv5, IPv4 agent 172.16.0.251, agent-id 0, length 1388

 

xenoeye - установлен на вирт. машину (Proxmox) сетевая карта Virtio или Intel1000 (на результат не влияет)

с помощью утилиты xesflow вижу: Unknown tag 3 [sflow-impl.h, line 207, function sf5_flow()]

как победить не знаю, вот кусочек:

 

xesflow -i ens19 -f "udp and port 6343" > xesflow.txt

___________________________________________________________________________________________________________

version: 5 [sflow-impl.h, line 263, function sflow_process()]
agent address type: 1 [sflow-impl.h, line 270, function sflow_process()]
agent address (IPv4): 172.16.0.251 [sflow-impl.h, line 277, function sflow_process()]
agent id: 0 [sflow-impl.h, line 291, function sflow_process()]
sequence: 307478 [sflow-impl.h, line 294, function sflow_process()]
uptime: 3021767224 [sflow-impl.h, line 297, function sflow_process()]
samples: 17 [sflow-impl.h, line 300, function sflow_process()]

<------>sample #0 [sflow-impl.h, line 304, function sflow_process()]
<------>sample type: 1 (SF5_SAMPLE_FLOW) [sflow-impl.h, line 308, function sflow_process()]
<------>length:  72 [sflow-impl.h, line 62, function sf5_flow()]
<------>sequence: 4908909 [sflow-impl.h, line 65, function sf5_flow()]
<------>src id: 33554438 [sflow-impl.h, line 71, function sf5_flow()]
<------>sampling rate: 1000 [sflow-impl.h, line 82, function sf5_flow()]
<------>sample pool: 3110300000 [sflow-impl.h, line 86, function sf5_flow()]
<------>drop events: 0 [sflow-impl.h, line 88, function sf5_flow()]
<------>input interface: 1073741823 [sflow-impl.h, line 93, function sf5_flow()]
<------>output interface: 6 [sflow-impl.h, line 101, function sf5_flow()]
<------>number of elements: 1 [sflow-impl.h, line 130, function sf5_flow()]
<------><------>element #0 [sflow-impl.h, line 135, function sf5_flow()]
<------><------>tag: 3 [sflow-impl.h, line 137, function sf5_flow()]
<------><------>element length: 32 bytes [sflow-impl.h, line 140, function sf5_flow()]
<------><------>Unknown tag 3 [sflow-impl.h, line 207, function sf5_flow()]
___________________________________________________________________________________________________________

Можете подсказать куда копать ?

Posted
Quote

Unknown tag 3

Кажется, железка присылает семпл с обрезанным Ethernet заголовком.

В референсной реализации sFlow этот тег с номером 3 называется SFLFLOW_IPV4.

 

Можете прислать небольшой дамп sFlow-трафика? На электронную почту vm@xenoeye.com.

Думаю, несколько пакетов будет достаточно. Но можно и сотню-две, чтобы наверняка. Может там у вас еще что-то неизвестное проскакивает, типа SFLFLOW_IPV6.

Posted

@Ben1

Спасибо, получил дамп.

Добавил в код обработку этого тега 3 (SFLFLOW_IPV4). На вашем sFlow вроде все работает.

Можете обновиться на master-ветку с гитхаба и попробовать.

Posted

Поток принимается и разбирается, все замечательно, благодарю!

 

Строка ответа:

xenoeye:                                                     
 Bytes: 1280;                                                
 Packets: 1;                                                   
 Protocol: 17;                                               
 Src TOS: 0;                                                   
 TCP flags: 0; 
 Src port: 53098; 
 IPv4 src addr: х.148.240.91; 
 Input SNMP index: 15; 
 Dst port: 554; 
 IPv4 dst addr: х.18.3.218; 
 Output SNMP index: 1073741823; 
 *dev-ip: 172.16.0.251; 
 *dev-id: 0, *rate: 1000 [flow-debug.c, line 136, function flow_print_str()]

  • 1 month later...
Posted

Здравствуйте!

В вопросах новичек и самоучка, т.ч. прошу сделать поправку на возможное непонимание очевидного.

Не получается собрать данные.

 

Настроил отправку flow v9 с cisco 881.

Попробовал развернуть коллектор по step-by-step туториалу.

Когда включаю debug syslog вижу поток, но в папке exp никакие файлы не формируются, все летит в expfailed.

 

Попробовал развернуть "готовую" сборку в контейнере lxc.

Аналогично вижу поток при включенном debug'е, но теперь ничего не формируется даже в expfailed(в контейнере).

 

Flow end time: 932022664; Flow start time: 932022664; Bytes: 335; Packets: 1; Input SNMP index: 5; Output SNMP index: 0; IPv4 src addr: 95.156.65.250; IPv4 dst addr: [ip данный провайдером]; Protocol: 17; Src TOS: 36; Src port: 5060; Dst port: 6617; Flow sampler id: 0; Unknown field 51: 0x00 ; IPv4 next hop: 0.0.0.0; Dst mask: 0; Src mask: 0; TCP flags: 16; Flow direction: 0; Dst AS: 0; Src AS: 0; *dev-ip: [ip данный провайдером]; *dev-id: 0, *rate: 1 [flow-debug.c, line 136, function flow_print_str()]

 

 

Подскажите что может быть не так, и куда вообще копать.
К сожалению в сети не так много информации и ответ своими силами найти не получилось.

Posted

@Sad_Bread Приветствую!

Какая задача?

Для своих целей (собрать потоки с микротиков, положить в файлы, по необходимости запустить команду посмотреть соединения в определнный 5-минутный промежуток времени) использую nfdump

Posted

@tcup

На текущий момент задача оценить расход/движение трафика в небольшой корпоративной сети.

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

Искал максимально простое решение(в силу новичковости), "all in one", предпочтительно opensource.

nfdump, признаться оттолкнул, т.к. показалось что по первым двум пунктам тяжело проходит. Ну и довольно подробная документация на русском, в xenoeye подкупила.

Если не получится решить возникшие препятствия, попробую этот вариант.

Posted

@tcup

Под расходом я понимаю "сколько данных было отправлено за указанный промежуток времени".

Под движением "куда этот объем трафика ушел".

Хочется получить ответы на вопросы по типу: Бывают ли моменты что сеть перегружена? Из-за кого в сети это происходит?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.