_INF_ Posted April 1, 2013 Posted April 1, 2013 есть почти 40 мбит нетфлоу потока с одной железки flow-capture из-за слабого проца не успевает все пережевать.. в результате в netstat вижу кучу пакетов в recvq, ну и что не влазит естественно дропается.. nfdump пока еще не развернул.. готовлюсь ) Есть у кого success story по принятию такого? Ставили i7 и 4 SATA винта (10k rpm) в raid0, прекрасно работало, обработка шла на этой же машине. Плохо то, что flow-capture задействует только одно ядро :( Вставить ник Quote
zhenya` Posted April 1, 2013 Posted April 1, 2013 (edited) вот именно. процы конечно на машине с флоу капчер слабоватые, но nfdump (на тестовой машине) жует .. попробовал на x5670 там же где nfdump запустить флоу капчер ) в сотку сразу же улетело.. но вот чот файлы сильно здоровые у nfdump ( Edited April 1, 2013 by zhenya` Вставить ник Quote
vmx Posted April 12, 2013 Author Posted April 12, 2013 (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 April 12, 2013 by vmx Вставить ник Quote
shafiev Posted September 18, 2014 Posted September 18, 2014 Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп . Вставить ник Quote
vmx Posted September 18, 2014 Author Posted September 18, 2014 Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп . Ну, я даже слегка растерялся. Если хотите помочь, напишите что вас в программе не устраивает, какие встретились непонятные моменты и что нужно сделать еще. Мы все никак не можем выпустить очередную версию, еще отпускное настроение. Надеюсь скоро, но пока лучше брать версию из trunk В общем пишите что не так, как нужно правильно. Мы все постараемся осмыслить и учесть Вставить ник Quote
shafiev Posted September 18, 2014 Posted September 18, 2014 Подскажите как вам помочь? Могу предоставить файл с нат трансляциями и тд и тп . Ну, я даже слегка растерялся. Если хотите помочь, напишите что вас в программе не устраивает, какие встретились непонятные моменты и что нужно сделать еще. Мы все никак не можем выпустить очередную версию, еще отпускное настроение. Надеюсь скоро, но пока лучше брать версию из trunk В общем пишите что не так, как нужно правильно. Мы все постараемся осмыслить и учесть Неплохо бы приделать фишки от v9 netflow именно видеть Натинги (в nfdump и в nfsene их можно смореть, однако тот же rrd меня там не очень устраивает ) - есть готовый pcap этого дела . Также как у вас сделать отчет чтобы как в nfsen общее потребление трафика по времени видеть? Вставить ник Quote
vmx Posted September 19, 2014 Author Posted September 19, 2014 Неплохо бы приделать фишки от 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 и т.п. Или можно не делать. Мы даже сделали отчеты с автообновлением, но понятно что они показывают текущую ситуацию очень условно - когда сенсор решит отдать флов Вставить ник Quote
shafiev Posted September 19, 2014 Posted September 19, 2014 Неплохо бы приделать фишки от 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 собрать Вставить ник Quote
nixx Posted June 18, 2024 Posted June 18, 2024 (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 June 18, 2024 by nixx Вставить ник Quote
vmx Posted June 19, 2024 Author Posted June 19, 2024 Quote взаимодействие с бд достаточно забавное Ну, идея была "не привязываться к конкретной СУБД". Коллектор получает *flow и выдает пользователю текстовые файлы. Мы сначала экспериментировали с другими БД, экспортировали данные в другом формате. Потом решили использовать все-таки Постгрис. Quote дальше надо посмотреть Если будете смотреть sFlow, то смотрите с осторожностью. Мы его только недавно добавили, что-то может работать неправильно. Например, скользящие средние для sFlow исправили в другой ветке https://github.com/vmxdev/xenoeye/tree/autothresholds Quote допишите в самое начало step-by-step Спасибо! Постараюсь завтра дописать. Вставить ник Quote
pppoetest Posted June 26, 2024 Posted June 26, 2024 В 18.06.2024 в 05:06, nixx сказал: чего хотел получить - разблюдовку входящего трафика одного из аплинков по AS. https://github.com/nidebr/as-stats-gui Вставить ник Quote
vmx Posted February 20, 2025 Author Posted February 20, 2025 Раз уж здесь недавно (совершенно неожиданно!) подняли тему, то проанонсирую еще новую версию. Почему-то 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 , там же вся документация. Вставить ник Quote
Sacrament Posted February 28, 2025 Posted February 28, 2025 Внимательно прочитал README и так и не понял события NAT логирует? Вставить ник Quote
vmx Posted February 28, 2025 Author Posted February 28, 2025 Quote события NAT логирует? Про NAT он ничего не знает. Мы снимаем *flow с железок, которые не натят. Если нужно из netflow/IPFIX брать какие-то необычные поля вроде "postNATSourceIPv4Address", то можно добавить возможность их обработки, вот здесь описано как https://github.com/vmxdev/xenoeye/blob/master/INTERNALS.ru.md#как-добавить-в-коллектор-новое-netflow-поле Вставить ник Quote
Ben1 Posted January 4 Posted January 4 Не удается собрать поток 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()] ___________________________________________________________________________________________________________ Можете подсказать куда копать ? Вставить ник Quote
vmx Posted January 5 Author Posted January 5 Quote Unknown tag 3 Кажется, железка присылает семпл с обрезанным Ethernet заголовком. В референсной реализации sFlow этот тег с номером 3 называется SFLFLOW_IPV4. Можете прислать небольшой дамп sFlow-трафика? На электронную почту vm@xenoeye.com. Думаю, несколько пакетов будет достаточно. Но можно и сотню-две, чтобы наверняка. Может там у вас еще что-то неизвестное проскакивает, типа SFLFLOW_IPV6. Вставить ник Quote
vmx Posted January 7 Author Posted January 7 @Ben1 Спасибо, получил дамп. Добавил в код обработку этого тега 3 (SFLFLOW_IPV4). На вашем sFlow вроде все работает. Можете обновиться на master-ветку с гитхаба и попробовать. Вставить ник Quote
Ben1 Posted Friday at 12:58 PM Posted Friday at 12:58 PM Поток принимается и разбирается, все замечательно, благодарю! Строка ответа: 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()] Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.