Jump to content

Recommended Posts

Posted

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

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

 

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

 

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

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()]

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 и с Политикой конфиденциальности.