0 / 0 / 0
Регистрация: 17.01.2009
Сообщений: 3
|
|
17.01.2009, 14:55 | 2 |
Я активно пользую.
Что конкретно интерисует?
0
|
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 4
|
|
17.01.2009, 15:28 [ТС] | 3 |
Модуль работает хорошо, но при попытки удалить модуль из системы:
rmmod ring кернел выводит кучу ошибок с памятью и умирает. Система: Intel Xeon quad core. Кернел скомпилирован для плаформы: Newer Xeon / Core Duo, 2.6.28 Сейчас я поставил более старый кернел, Generic x86, 2.6.24.7 И более мене работает стабильно, хотя пару раз вылетал с похожими ошибками с памятью. PF_RING используеться черзе libpcap-pfring, со сниффером gulp. С чем-то подобным не сталкивался?
0
|
0 / 0 / 0
Регистрация: 17.01.2009
Сообщений: 3
|
|
20.01.2009, 22:13 | 4 |
Данна проблема не встречалась мне на ядрах до 2.6.27
В более новых ядрах немного поправили структуры для работы с сетью, и теперь модуль нормально грузиться выгружаеться, но если начать ловлю пакетов, то минут через 5-7 система виснет намертво. Поэтому я вернулся на ядро серии 2.6.х. Там проблем нету. Да и починить времени пока нет. Кстати проверял на HP-360 с 2 Ксеонами по 4 ядра. ИМХО: сыроват он пока для ядер >=2.6.27
0
|
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
|
|
05.03.2009, 12:20 | 5 |
Где можно скачать документацию по PF_RING или сам архив с ним?
0
|
0 / 0 / 0
Регистрация: 17.01.2009
Сообщений: 3
|
|
05.03.2009, 21:32 | 6 |
Скачать архив не получится, он доступен только через svn, тпм же и дока, хотя она у них сильно запаздывает.
Вот ссылка: http://www.ntop.org/PF_RING.html
0
|
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
|
|
06.03.2009, 10:36 | 7 |
Угу, пасип видела ту статейку , если кого еще заинтересует нашла несколько документаций про такие методы :
http://bjou.homeunix.net/blog/... ian-sarge/ http://www.redsecure.ru/blog/t... w-analysis ( кстати на русском ) ну если кому поможет ))))
0
|
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
13.09.2011, 21:26 | 8 |
Доброе время суток. Хотел поинтересоваться, есть ли какая-либо взаимосвязь PF_RING c патчами к ядру Linux типа real time? (напр. проект RT Linux). Как написано в User guide, с 4ой версии изменения ядра не требуются. (Кстати, какого характера они были раньше? Не RT?). Но мой научный руководитель сказал, что для перехвата трафика с помощью PF_RING, мне потребуется RTLinux, и пока я не понимаю, зачем.
0
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
14.09.2011, 09:50 | 9 |
Патчить ядро не требуется, т.к. начиная с 4й версии PF_RING собирается как модуль. При желании можете покопаться в svn.
Прямой связи между PF_RING и rt имхо нет, но появляется удобная возможность разнести ядро и юзерленд по cpu ну и заодно поднять приоритет снифера над другими процессами.
1
|
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
18.09.2011, 00:49 | 10 |
Спасибо!
У меня, как человека, впервые вникающего в эту тему есть ещё непонятные моменты.. Например, какими программами можно задать определенную нагрузку сети, чтобы потом определять эффективность сниффера отношением перехваченного трафика к этому заданному значению? libpcap и PF_RING могут быть поставлены в произвольном порядке? От чего может зависеть эффективность перехвата на PF_RING + libpcap? Как можно было бы достичь максимальной эффективности?
0
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
18.09.2011, 09:11 | 11 |
Если у вас сетевая карта для которой в PF_RING умеет DNA, то в комплекте с PF_RING есть утилита pfsend, иначе посмотрите на ядерный pktgen
Нет. Сначала PF_RING, затем libpcap. Подробности есть в документации PF_RING Очень много факторов... Прежде всего железо. C хорошей картой, умеющей фильтровать трафик (например i82599) можно переварить 10Gib/s Карта попроще с DNA драйвером. Обычный драйвер, но вся логика фильтрации вынесена в ядро (PF_RING plugins). Опять же все есть в документации.
1
|
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
20.09.2011, 22:17 | 12 |
Мне удалось скомпилировать PF_RING по инструкции http://zhou-xingbo.iteye.com/blog/1002960, 12 и 13 пункт я пропустил. Но при попытке сделать make pf-aware драйвера (у меня tg3 от broadcom) получаю ошибку:
dcom/tg3/tg3-3.99k$ make sh makeflags.sh /lib/modules/2.6.38-11-generic/build > tg3_flags.h make -C /lib/modules/2.6.38-11-generic/build SUBDIRS=/home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k modules make[1]: Вход в каталог `/usr/src/linux-headers-2.6.38-11-generic' CC [M] /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.o /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c: In function ‘__tg3_set_rx_mode’: /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9088:16: error: ‘struct net_device’ has no member named ‘mc_count’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9100:27: error: ‘struct net_device’ has no member named ‘mc_list’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9100:55: error: ‘struct net_device’ has no member named ‘mc_count’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9101:28: error: dereferencing pointer to incomplete type /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9103:26: error: dereferencing pointer to incomplete type make[2]: *** [/home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.o] Ошибка 1 make[1]: *** [_module_/home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k] Ошибка 2 make[1]: Выход из каталога `/usr/src/linux-headers-2.6.38-11-generic' make: *** [default] Ошибка 2 С версией 3.102 так же. Каковы могут быть причина и решение? Ещё вопрос. В инструкции, как обсуждалось выше, сказано, что не нужно перепатчивать ядро, а если перепатчить уже пропатченное ядро, то.. в общем, нехорошо будет. А вот если я буду ставить RTLinux, какие процедуры нужно выполнить перед установкой, чтобы установка прошла гладко? Может, есть мануал какой-нибудь по этой теме? И последнее.. Какими программами я могу задать на сеть заданную нагрузку, чтобы, зная заранее количество трафика, узнать, какая часть его будет перехвачена? Ядро- 2.6.38-11-generic. (Ubuntu 11.04) Заранее благодарен.
0
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
21.09.2011, 12:42 | 13 | |||||
Если правильно помню, mc_list в старых ядрах было списком MAC адресов девайса для мультикаста, сейчас оно вынесено в отдельную структуру struct netdev_hw_addr_list и есть стандартные макросы для работы с этой структурой.
Решениея: плакать в рассылку ntop патчить драйвер своими силами купить карточку от intel Про генерацию трафика я вам уже вроде отвечал... Если не годиться, то разверните подробнее тип требуемого трафика. Добавлено через 2 часа 15 минут В обед запинал драйвер под сборку на свежих ядрах. Но такой карты у меня нет и соответственно работает или нет сказать не могу(
1
|
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
21.09.2011, 22:43 | 14 |
Длинный лог ошибок, начало которого вот dcom/tg3/tg3-3.99k$ make
sh makeflags.sh /lib/modules/2.6.38-11-generic/build > tg3_flags.h make -C /lib/modules/2.6.38-11-generic/build SUBDIRS=/home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k modules make[1]: Вход в каталог `/usr/src/linux-headers-2.6.38-11-generic' CC [M] /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.o /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c: In function ‘__tg3_set_rx_mode’: /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9088:9: error: expected expression before ‘}’ token /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9088:23: error: ‘struct net_device’ has no member named ‘mc_count’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9089:9: error: expected expression before ‘}’ token /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9094:17: error: expected expression before ‘struct’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9095:17: error: expected expression before ‘unsigned’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9096:17: error: expected expression before ‘struct’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9097:17: warning: ISO C90 forbids mixed declarations and code /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9102:17: error: expected expression before ‘for’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9100:21: warning: unused variable ‘crc’ /home/eborzov/Загрузки/PF_RING-5.0.0/drivers/PF_RING_aware/broadcom/tg3/tg3-3.99k/tg3.c:9099:21: warning: unused variable ‘bit’ И на 9106 строке (26 у вас) не понял, чем уравновешивается открытая тут вами одиночная скобка. Cпасибо за помощь, в любом случае завтра куплю карточку Intel, заодно ради DNA. Не сразу понял в прошлый раз, что pktgen относится к вопросу о генерации трафика, извиняюсь. Огромное спасибо.
0
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
21.09.2011, 22:52 | 15 |
Эмм... man patch?
Это был diff -ur old new Соответственно закрывающая скобочка остается от цикла for () { К сожалению, я не нашел как на форуме прикрепить файл/тега diff и возможно форум что-то побил. Если хотитет - довайте e-mail, скину патч туда. Работает или нет я хз, но собирается 100%. Правильное решение, наверное это самый дешевый способ обрабатывать >= гигабита. Up: про патч, давайте не "если хотите", а все-таки попробуем запинать это дело? Если выгорит - отправим в ntop, доброе дело сделаем...
2
|
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
22.09.2011, 21:27 | 16 |
Система полностью собралась благодаря присланному вами патчу! Драйвер собрался и работает. Во всяком случае, страницу веб-интерфейса с локального адреса загрузил.
0
|
0 / 0 / 0
Регистрация: 08.07.2009
Сообщений: 10
|
|
28.12.2011, 19:47 | 18 |
Всем привет
Такой вопрос : Имеет ли DNA поддержку очередей ( типа TNAPI с ixgbe драйвером).
0
|
svetocopy
|
|
17.01.2013, 11:24 | 19 |
помогите пожалуйста установить pf_ring на ubuntu.
я скачал deb пакет и установил через ubuntu software center, что дальше? |
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 15
|
|
17.01.2013, 13:52 | 20 |
Я устанавливал стандартным способом. Первоисточник: http://www.ntop.org/pf_ring/in... r-pf_ring/
В вольном изложении: 1. Скачивал PF_Ring через SVN или просто копировал папку отсюда: http://sourceforge.net/project... s/PF_RING/ Будем считать, что скопировали её в домашнюю директорию. 2. Командой ethtool -i eth0 (вместо 0 может быть другой номер) узнать версию драйвера сетевой карты. Для работы с модулем необходим модифицированный драйвер. Такие драйверы находятся в папке с PF_RING в drivers/PF_Ring aware (или DNA, если вы именно её хотите использовать). Посмотрите, чтобы там был тот драйвер, который вам выдает ethtool. Как видно из диалога выше, лично у меня возникали проблемы с broadcomовскими драйверами, но использование интеловских прошло на ура. (в частности, e1000e, e1000). Если не нашли тут свой драйвер- упс. 3. Отключаете текущий драйвер. Предположим, он называется e1000e. Можете перед отключением посмотреть точное его название, версию итд в ethtools, чтобы (мало ли каким образом) не перепутать с модифицированным в дальнейшем. sudo rmmod e1000e 4. Переходите в директорию PF_Ring, которую скачали: cd PF_RING/kernel (или, понятно, может быть в вашем случае что-то вроде cd PF_RING-5.5.2/kernel) 5. Выполнить команду make. Производитель отмечает, что именно make, а не sudo make, т.к. иначе возможны ошибки. У меня чаще всего получалось так, но были случаи, когда как раз make не работал, делал таки sudo make. 6. sudo make install 7. cd ../userland/lib Переходим в директорию с библиотеками. По инструкции дальше сразу make, но у меня понадобилось сначала: 8. ./configure 9. make 10. sudo make install 11. cd ../libpcap-1.1.1-ring/ переходим в директорию с модифицированной libpcap. (В инструкции cd ../libpcap-1.0.0-ring/ - название директории сменилось) 12. ./drivers/PF_RING_aware/intel/e1000e-2.0.0.1/src 16. make 17. sudo make install Далее нужно активировать PF_Ring. Дальнейшие действия нужно выполнять после перезагрузки каждый раз, если вы не автоматизируете процесс. (вообще говоря, модуль PF_Ring у меня стартовал сам при запуске модифицированного tcpdump, но так вы и режим не выбираете, а модифицированный драйвер нужно следить чтобы был загружен каждый раз при работе с PF_Ring). cd /lib/modules/2.6.31-14-generic/kernel/net/pf_ring Здесь в директории modules нужно выбрать ту версию ядра, которая используется у вас. Там может быть несколько папок, выберите ту, которая соответствует используемой в данной момент версии. Версию ядра можно посмотреть командой uname -r 18. Если по какой-то причине уже был загружен модуль, а вам нужно, к примеру, поменять режим, нужно модуль сначала выгрузить командой sudo rmmod pf_ring (предварительно убив использующие его процессы) 19. sudo insmod pf_ring.ko transparent_mode=1 Возможно три значения transparent_mode. о них тут: http://www.ntop.org/pf_ring/pf... rent-mode/ 20. cd /lib/modules/2.6.31-14-generic/kernel/drivers/net/e1000e Аналогично, тут в modules нужно выбрать вашу директорию. И путь к моулю драйвера может отличаться. В моём случае это могли быть такие варианты: cd /lib/modules/2.6.31-14-generic/kernel/drivers/net/ethernet/intel/e1000e cd /lib/modules/2.6.31-14-generic/kernel/drivers/net/intel/e1000 Поищите, и найдете. 21. Активируйте модифицированный драйвер. sudo insmod e1000e.ko Это все. Конечно, вам нужен модифицированный софт и работа с версией libpcap именно от разработчиков PF_Ring. Перед установкой рекомендуют удалить текущий libpcap и программы (типа tcpdump), его использующие. Видимо, чтобы не перепутать. Но на самом деле два libpcap могут существовать вместе. Кстати при удалении стандартного libpcap он может потянуть за собой демон pppd, и отвалится интернет. Для работы, например, модифицированного tcpdump, который можно найти в директории userland в папке PF_Ring, нужно, понятно, выполнить стандартные make, sudo make install и запускать tcpdump из этой директории ./tcpdump, если стоит ещё и другой, но другой стоит удалить. Проверить, какими библиотеками пользуется та или иная программа можно так: which <название программы> выведется путь, далее ldd <путь к программе из прошлого пункта> Выведется список библиотек, если там фигурирует libpcap 0.8, например, то вы сидите на стандартном libpcap. В случае применения ldd на модифицированный tcpdump строчки libpcap не увидите вовсе- использование модифицированного libpcap там прописано статически. Ну и чтобы оценить эффективность PF_Ring, рекомендуется использовать tcpdump -n -i eth1 -w /dev/null http://www.y-d-art.ru/articles... fring.html Вывод на /dev/null покажет вам работу именно сетевой подсистемы. (Если отправите некое количество пакетов и посчитаете количество перехваченных). В моем случае на небольшой скорости потери пакетов остались практически такими же, т.к., кажется, они уже происходили на уровне файловой системы, а на чистом linux tcpdump -n -i eth1 -w /dev/null также показывало 100%, и в этом случае, мое предположение, PF_Ring ни к чему.
0
|