Перейти к содержимому
Калькуляторы

Захват трафика на высокой скорости

Привет!

Возникла тут задача захвата трафика с 10G интерфейсов + немного capture filter чтобы на винт писать только то, что нужно.

Реально ли такие объемы захватывать через tcpdump на линуксовом тазике с X520 и каким-нибудь не сильно древним ксеоном типа E56xx? Просто очень смущает возможность дропов и, соответственно, кривости дампа трафика. А готовой альтернативы tcpdump я не нашел. Все или в виде proof of concept или давно заброшено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

netmap, DPDK, PF_RING тебе в помощь.

Насчёт tcpdump - наверное, но фильтры нужно скармливать ему и объёмы на выходе из ядра должны быть не слишком большими.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Имхо tcpdump не вариант. Только для кратковременных тестов и отладки.

"Яровую" делать собираетесь?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

чем-то сильно  низкоуровннвым, да и то, не очень представляю, как это сделать и диски какие нужны, чтоб писать на такой скоррсти...

 

https://kukuruku.co/post/capturing-packets-in-linux-at-a-speed-of-millions-of-packets-per-second-without-using-third-party-libraries/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, Tosha сказал:

"Яровую" делать собираетесь?

К счастью пока нет. Решаем тут задачу организации СОРМа нижестоящего провайдера. Надо на этапе реализации заглядывать в трафик, летящий в съемник с целью узнать все ли до него доходит.

2 часа назад, NewUse сказал:

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

чем-то сильно  низкоуровннвым, да и то, не очень представляю, как это сделать и диски какие нужны, чтоб писать на такой скоррсти...

Реально трафика в десятке не в потолок же. Там от силы гигов 6-7. И из этого потока мне, к примеру, нужно выдернуть radius и сохранить на винт чтобы вайршарком посмотреть что там. Так что писать не так уж и много, обычный ssd справится.

Железом можно фильтровать конечно. Но там не так уж и много возможностей. Тем более фильтры на том же 6500 работают для span на ingress. А мне трафик уже приходит, так что вариант фильтровать  только на зонде, который захватывает трафик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну если радиус Ваш, то проще через radius-proxy или фаерволом на худой конец что-то фильтровать....

ну с радиусом скорее всего и tcpdump справится...

 

тоже в тему, но всё ручками:

https://jvns.ca/blog/2017/04/07/xdp-bpf-tutorial/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Могу рекомендовать свою же статью https://habr.com/post/261161/ :) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 часов назад, pavel.odintsov сказал:

Могу рекомендовать свою же статью https://habr.com/post/261161/ :) 

Спасибо, с интересом прочитал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рад что пригодилось :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.