"NetFlow support with pflow(4) (http://undeadly.org/cgi?action=article&sid=20080909151202)" - в OpenBSD-current добавлена поддержка экспорта статистики пакетного фильтра PF в виде Netflow v5 потока.
Пример настройки:Настройка псевдо-интерфейса для экспорта Netflow:
sudo ifconfig pflow0 create
sudo ifconfig pflow0 flowsrc 10.0.0.200 flowdst 10.0.0.1:1234
ifconfig pflow0
pflow0: flags=41 mtu 1464
pflow: sender: 10.0.0.200 receiver: 10.0.0.1:1234
groups: pflowВ PF определяем информацию о каком трафике экспортировать:
pass out inet proto icmp keep state (pflow)
Проверяем статистику по экспорту данных:
sudo pfctl -vss | grep -B2 pflow | head -3
all tcp 10.0.0.200:38336 -> 38.68.100.209:22 ESTABLISHED:ESTABLISHED
[3825225521 + 17376] wscale 0 [3569953586 + 16384] wscale 0
age 00:32:58, expires in 23:59:57, 888:894 pkts, 75601:180313 bytes, pflow
URL: http://undeadly.org/cgi?action=article&sid=20080909151202
Новость: http://www.opennet.me/opennews/art.shtml?num=17815
ждём порта на фряху. явно симпатичнее чем pfflowd
Чем ng_netflow не устраивает?
+1
откройте для себя ng_netflow наконец :)
А в опенбзд тоже есть нетграф?
а чем ng_netflow лучше pfflowd?
тем, что ничего не гоняется в userspace. Да и последняя версия pfflowd вышла в 2006 году.
Действительно.. в 2006 году... на два года позже последнего релиза ng_netflow...С сайта sourceforge.net
Latest ng_netflow-0.2.5 Notes (2004-08-27 20:00)
:Р
>Действительно.. в 2006 году... на два года позже последнего релиза ng_netflow...
>
>С сайта sourceforge.net
>
>Latest ng_netflow-0.2.5 Notes (2004-08-27 20:00)Действительно, он с тех пор в базовой системе и обновляется вместе с ней, в отличие от pfflowd.
Угу... аж до января 2006 года %)
>Угу... аж до января 2006 года %)Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>>Угу... аж до января 2006 года %)
>
>Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>Сори.. до января 2007 %) опечатался...
Интересно откуда взята цифра - май 2008 года %)
>>>Угу... аж до января 2006 года %)
>>
>>Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>
>Сори.. до января 2007 %) опечатался...
>Интересно откуда взята цифра - май 2008 года %)$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.29 2008/05/09 23:02:57 julian Exp $
Обновляйтесь чаще, в 7-STABLE последнее изменение - в июле этого года.
>>>>Угу... аж до января 2006 года %)
>>>
>>>Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>>
>>Сори.. до января 2007 %) опечатался...
>>Интересно откуда взята цифра - май 2008 года %)
>
>$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.29 2008/05/09 23:02:57 julian Exp $
>
>Обновляйтесь чаще, в 7-STABLE последнее изменение - в июле этого года.$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.15.2.4 2007/01/25 21:39:00 glebius Exp $";
FreeBSD 6.3
>>>>Угу... аж до января 2006 года %)
>>>
>>>Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>>
>>Сори.. до января 2007 %) опечатался...
>>Интересно откуда взята цифра - май 2008 года %)
>
>$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.29 2008/05/09 23:02:57 julian Exp $
>
>Обновляйтесь чаще, в 7-STABLE последнее изменение - в июле этого года.RELENG_7 как то не хочется пока на серваке юзать...
>[оверквотинг удален]
>>>>Странно, у меня почему-то май 2008. Вы наверное где-то в прошлом застряли.
>>>
>>>Сори.. до января 2007 %) опечатался...
>>>Интересно откуда взята цифра - май 2008 года %)
>>
>>$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.29 2008/05/09 23:02:57 julian Exp $
>>
>>Обновляйтесь чаще, в 7-STABLE последнее изменение - в июле этого года.
>
>RELENG_7 как то не хочется пока на серваке юзать...Это всё не отменяет того факта, что ng_netflow - поддерживается и обновляется. О чем и была речь, собственно.
>[оверквотинг удален]
>>>>Интересно откуда взята цифра - май 2008 года %)
>>>
>>>$FreeBSD: src/sys/netgraph/netflow/netflow.c,v 1.29 2008/05/09 23:02:57 julian Exp $
>>>
>>>Обновляйтесь чаще, в 7-STABLE последнее изменение - в июле этого года.
>>
>>RELENG_7 как то не хочется пока на серваке юзать...
>
>Это всё не отменяет того факта, что ng_netflow - поддерживается и обновляется.
>О чем и была речь, собственно.Убедили... еще было бы интересно взглянуть на changelog, чтобы посмотреть что они там обновляют...
Молодцы! Красиво.
Ждём порта под Linux (ни одной вменяемой стандартной netflow-probe нет под Linux, которая бы не pcap-based и не ULOG-based).
>Ждём порта под Linux (ни одной вменяемой стандартной netflow-probe нет под Linux,
>которая бы не pcap-based и не ULOG-based).спорим?
ipcad (ulog,pcap, _IPQ_)
а ещё... http://sourceforge.net/projects/ipt-netflow/а ещё -- лучше жевать, когда не уверен.
>>Ждём порта под Linux (ни одной вменяемой стандартной netflow-probe нет под Linux,
>>которая бы не pcap-based и не ULOG-based).
>
>спорим?
>ipcad (ulog,pcap, _IPQ_)
>а ещё... http://sourceforge.net/projects/ipt-netflow/
>
>а ещё -- лучше жевать, когда не уверен.для желающих очень быстро
http://www.few.vu.nl/~wdb/streamline/
На всякий случай...> ipcad (ulog,pcap, _IPQ_)
What is libnetfilter_queue?
libnetfilter_queue is a userspace library providing an API to packets that have been queued by the kernel packet filter. It is is part of a system that deprecates the old ip_queue / libipq mechanism.
(Цитата с http://www.netfilter.org/projects/libnetfilter_queue/index.html)
Попытка выяснить поддерживает ли libnetfilter_queue Netflow экспорт успехом не увенчалась.Поиск ipt-netflow по репозиторию пакетов Debian успехом не увенчался.
Выходит так, что экспорт Netflow решается далеко не штатными средствами и, IMHO, не так гладко, как хотелось бы. Но ничего на корню отрицать не берусь, поскольку сам не пробовал. Если есть информация поделитесь ей.
>а ещё... http://sourceforge.net/projects/ipt-netflow/почему его нет на netfilter.org?
>>а ещё... http://sourceforge.net/projects/ipt-netflow/
>
>почему его нет на netfilter.org?товарищам выше посвящается
упор делать можно на разное -- я сделал на "вменяемой" -- Вы на "стандартной" -- не буду спорить о том у кого какие стандарты -- скажу всем хорошо известной поговоркой -- "Кто хочет - ищет способ, кто не хочет - причину" (C) Народная Мудрось.
>товарищам выше посвящаетсяТы меня не понял. Видно что ipt_netflow очень свежая вешь. Понятно что в стабильном дебиане его быть не может. Но в репозитории netfilter где располагаются модули iptables, и где их все ищут, этой вещи самое место.
>>товарищам выше посвящается
>
>Ты меня не понял. Видно что ipt_netflow очень свежая вешь. Понятно что
>в стабильном дебиане его быть не может. Но в репозитории netfilter
>где располагаются модули iptables, и где их все ищут, этой вещи
>самое место.ну видимо нет у человека сил бороться с netfilter.org -- там в POM то попасть сложно.
>>>товарищам выше посвящается
>>
>>Ты меня не понял. Видно что ipt_netflow очень свежая вешь. Понятно что
>>в стабильном дебиане его быть не может. Но в репозитории netfilter
>>где располагаются модули iptables, и где их все ищут, этой вещи
>>самое место.
>
>ну видимо нет у человека сил бороться с netfilter.org -- там в
>POM то попасть сложно.P.S. судя по ipt_account
>ну видимо нет у человека сил бороться с netfilter.org -- там в
>POM то попасть сложно.Зато видимо есть силы самому колупаться с -CURRENT версией системы, указанной в новости?Ну да, наверное это проще :))
Видимо, придётся жевать вам, так как: http://www.free-it.de/archiv/talks_2005/paper-11076/paper-11...Статья была представлена на Linux Симпозиуме 2005 года и с тех пор (!!!) не было сделано ни одной работающей версии, как говорится "правильно".
>Видимо, придётся жевать вам, так как: http://www.free-it.de/archiv/talks_2005/paper-11076/paper-11...
>
>Статья была представлена на Linux Симпозиуме 2005 года и с тех пор
>(!!!) не было сделано ни одной работающей версии, как говорится "правильно".
>версии чего?
-- что вы пытаетесь доказать? что НЕТ ни одного работающего стабильного инструмента для решения поставленной задачи (без ULOG, без PCAP) ? -- так ведь я вроде конкретные ссылки даже указал -- или Вам удобнее найти статью 2005 года выпуска ? что, не удалось найти старее?
>версии чего?
> -- что вы пытаетесь доказать?Это обьяснение почему этих вещей нет в PoM.
Команда netfilter считает что с учёт трафика должен делать conntrack. А для получения данных в userspace, conntrack нужно обложить хуками и забирать из него данные.
Но видимо conntrack постоянно радикально переделывают, что с ним связыватся никто не хочет. А может просто нравятся велосипеды и процесс написание модулей ядра? :)
>>Ждём порта под Linux (ни одной вменяемой стандартной netflow-probe нет под Linux,
>>которая бы не pcap-based и не ULOG-based).
>
>спорим?
>ipcad (ulog,pcap, _IPQ_)
>а ещё... http://sourceforge.net/projects/ipt-netflow/
>
>а ещё -- лучше жевать, когда не уверен.Ну и какое же оно вменяемое, если оно userspace? Речь шла о ядре, а что ULOG, что PCAP, что IPQ - все отправляют в userland сами пакеты, а не уже готовый netflow.
>[оверквотинг удален]
>>
>>спорим?
>>ipcad (ulog,pcap, _IPQ_)
>>а ещё... http://sourceforge.net/projects/ipt-netflow/
>>
>>а ещё -- лучше жевать, когда не уверен.
>
>Ну и какое же оно вменяемое, если оно userspace? Речь шла о
>ядре, а что ULOG, что PCAP, что IPQ - все отправляют
>в userland сами пакеты, а не уже готовый netflow.если для вас вменяемое == !юзерспайс предлагаю выкинуть у вас из системы(какая она у вас там)всё кроме ядра.
а по делу -> http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/
>[оверквотинг удален]
>>>а ещё... http://sourceforge.net/projects/ipt-netflow/
>>>
>>>а ещё -- лучше жевать, когда не уверен.
>>
>>Ну и какое же оно вменяемое, если оно userspace? Речь шла о
>>ядре, а что ULOG, что PCAP, что IPQ - все отправляют
>>в userland сами пакеты, а не уже готовый netflow.
>
>если для вас вменяемое == !юзерспайс предлагаю выкинуть у вас из системы(какая
>она у вас там)всё кроме ядра.Ну идите, заведите это на гигабите с 100kpps на механизмах с негарантированной доставкой в юзерлэнд. Потом передергивайте себе на здоровье дальше.
>а по делу -> http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/
Сами-то пробовали завести эту связку с netflow или так, теоретизируете?
>>[оверквотинг удален]
>>>>а ещё... http://sourceforge.net/projects/ipt-netflow/
>>>>
>>>>а ещё -- лучше жевать, когда не уверен.
>>>
>>>Ну и какое же оно вменяемое, если оно userspace? Речь шла о
>>>ядре, а что ULOG, что PCAP, что IPQ - все отправляют
>>>в userland сами пакеты, а не уже готовый netflow.и не сами пакеты -- а только метаинформацию о них (по желанию)
>>
>>если для вас вменяемое == !юзерспайс предлагаю выкинуть у вас из системы(какая
>>она у вас там)всё кроме ядра.
>
>Ну идите, заведите это на гигабите с 100kpps на механизмах с негарантированнойошибочка -- старый ipq и новый netlink_ipq -- строго через, строго гарантируемая
>доставкой в юзерлэнд. Потом передергивайте себе на здоровье дальше.
>
>>а по делу -> http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/
>
>Сами-то пробовали завести эту связку с netflow или так, теоретизируете?а что там пробовать -- железно работает -- благо на задачах по подсчёту обычно нет каких-то других сервисов и сильно заботиться о безопасности оных не нужно
netlink_ipq - Google об этом не знает. А зависимость LInux'оидов на каждом угле выписывать как у них там - это паталогическая склонность к решению проблем детским путем, видимо в школе прогуливали и жить не научились :)
умывайтесь на здоровье.
>[оверквотинг удален]
>>
>>спорим?
>>ipcad (ulog,pcap, _IPQ_)
>>а ещё... http://sourceforge.net/projects/ipt-netflow/
>>
>>а ещё -- лучше жевать, когда не уверен.
>
>Ну и какое же оно вменяемое, если оно userspace? Речь шла о
>ядре, а что ULOG, что PCAP, что IPQ - все отправляют
>в userland сами пакеты, а не уже готовый netflow.ipt_netflow это _не_ юзерспейс... это модуль кернела с управлением через iptables.
вся обработка потоков и экспорт живет в ядре.
...так что жевать таки лучше.Проекту ipt_netflow в феврале будет год и стал он паблик после полугодового использования в продакшин на тех задачах под которые был написан. Основная причина по которой он появился, это 100% cpu на машине с ipcad из за контекст свитчинга. Никаких телодвижений воткнуть его в офицал iptables никто не делал, ибо лень. Нужен будет - все произойдет само собой. =)
А патч для RAW был сделан потому, что захотелось выбросить ng_netflow вместе с freebsd на единственной машине которая и стояла только для сбора трафика и генерации netflow, а все остальные в этой сетке были под linux'ами (коих там десятки).
И кстате, если сравнивать по загрузке cpu ng_netflow vs ipt_netflow, то последний выигрывает. Однако никто не задавался задачей это тестить, просто по факту загрузка cpu упала, ну а желающие могут это проверить самостоятельно. =:)
Пример одной из продакшин машин:
19:45:17 up 46 days, 10:13, 4 users, load average: 0.72, 0.69, 0.69root@<censored>:~# grep Xeon /proc/cpuinfo
model name : Intel(R) Xeon(TM) CPU 2.80GHz
model name : Intel(R) Xeon(TM) CPU 2.80GHzroot@<censored>:~# lspci | grep Ethernet
0000:03:04.0 Ethernet controller: Intel Corp. 82546GB Gigabit Ethernet Controller (rev 03)
0000:03:04.1 Ethernet controller: Intel Corp. 82546GB Gigabit Ethernet Controller (rev 03)
0000:03:09.0 Ethernet controller: Intel Corp.: Unknown device 107c (rev 05)Это top (дада... named нужно-бы убрать на другой бокс):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30785 bind 25 0 234m 198m 2288 S 23.9 6.5 3908:38 named
3064 quagga 15 0 74452 71m 716 S 2.3 2.3 178:04.49 zebra
3612 netflow 18 0 12064 5824 1576 S 0.7 0.2 132:11.20 nfmon
... остальное там мелочи (nfmon локальный сборщик netflow udp).root@<censored>:~# cat /proc/net/stat/ipt_netflow
Flows: active 55480 (peak 88853 reached 15d0h16m ago), mem 3034K
Hash: size 100000 (mem 390K), metric 1.4, 1.0, 1.0, 1.0. MemTraf: 43560110 pkt, 28305939 K (pdu 35, 4373).
Timeout: active 1800, inactive 15. Maxflows 2000000
Rate: 423049796 bits/sec, 82556 packets/sec; Avg 1 min: 418214503 bps, 81680 pps; 5 min: 417531966 bps, 82153 pps
cpu# stat: <search found new, trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total stat: 28232973609 84793565693 2728047348, 0 0 0 0, sock: 181865964 160 399107, 260011495 K, traffic: 87521613041, 54154242 MB, drop: 23386, 28145 K
cpu0 stat: 14493719122 43168138945 1537740460, 0 0 0 0, sock: 0 0 399107, 0 K, traffic: 44705879405, 25516990 MB, drop: 0, 0 K
cpu1 stat: 13739254487 41625426749 1190306888, 0 0 0 0, sock: 181865964 160 0, 260011495 K, traffic: 42815733637, 28637252 MB, drop: 23386, 28145 K
sock0: 127.0.0.1:20001, sndbuf 83886080, filled 0, peak 0; err: sndbuf reached 0, other 19
sock1: <censored>:20001, sndbuf 83886080, filled 0, peak 34080; err: sndbuf reached 0, other 25
aggr#0 net: match <censored>/19 strip 32
aggr#1 net: match <censored>/20 strip 32
aggr#2 net: match <censored>/27 strip 32
aggr#3 net: match <censored>/22 strip 32
aggr#4 net: match 0.0.0.0/0 strip 24
root@<censored>:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 556452 216540 1268764 0 0 1 4 5 3 3 42 55 0
0 0 0 557184 216540 1267284 0 0 0 4 0 1097 7 72 22 0
0 0 0 556820 216540 1267608 0 0 0 48 0 979 3 69 29 0
0 0 0 556204 216540 1267756 0 0 0 44 0 1166 3 70 27 0
1 0 0 555400 216540 1267800 0 0 0 0 0 1043 2 70 28 0
1 0 0 554476 216548 1267940 0 0 0 72 0 1243 3 65 32 0
0 0 0 556712 216552 1268128 0 0 0 204 0 1032 3 62 36 0
0 0 0 556776 216552 1268128 0 0 0 20 0 1049 3 64 33 0
0 0 0 556540 216552 1268516 0 0 0 0 0 1144 3 61 36 0При этом на машине живет NAT и per-ip HTB (htb_hashiz) в обе стороны (через IMQ) для 3-х сетей: /19 /20 /22. Машина под debian 4.0, правда лично я не поклонник, просто так получилось.
Всем удачи, я сюда случайно зашел =)
>[оверквотинг удален]
> 0 0 0 556540 216552
>1268516 0 0
> 0 0
>0 1144 3 61 36 0
>
>При этом на машине живет NAT и per-ip HTB (htb_hashiz) в обе
>стороны (через IMQ) для 3-х сетей: /19 /20 /22. Машина под
>debian 4.0, правда лично я не поклонник, просто так получилось.
>
>Всем удачи, я сюда случайно зашел =)да пожалуйста :)
>Ждём порта под Linux (ни одной вменяемой стандартной netflow-probe нет под Linux,
>которая бы не pcap-based и не ULOG-based).его никогда не будет, ибо pf и netgraph сугубо ядреные фичи bsd.
может быть только аналогичная реализация.
netgraph портирован под линукс