Назад | Перейти на главную страницу

Как вести сетевой учет с помощью контрольных групп

Пытаюсь получить сетевую статистику по группам процессов. Насколько мне известно, сложный сетевой учет в Linux обычно выполняется с использованием инфраструктуры учета netfilter / iptables.

Как бы хотелось наследовать такие группы cgroups был бы хорошим матчем.

Моя лучшая идея - позволить iptables соответствовать classid который может быть установлен с помощью net_cls-контроллер.

Но, похоже, iptables может только устанавливать это значение через --set--class.

Итак: есть ли хороший способ получения (сложного и гибкого) сетевого учета и ведения журнала для групп процессов в Linux?

В последних версиях ядра вы можете напрямую сопоставлять контрольные группы в iptables, см. http://lwn.net/Articles/569678/

Он был включен в основное ядро.

Очень хороший вопрос! Спасибо. Старый, но здесь поможет людям


A. Вы можете использовать cgroups с tc. Я никогда не слышал об этом, но после поиска в Google нашел следующее:

net_cls - эта подсистема помечает сетевые пакеты идентификатором класса (classid), который позволяет контроллеру трафика Linux (tc) идентифицировать пакеты, исходящие от конкретной задачи cgroup.

В соответствии с этим вы должны работать с tc и получать статистику оттуда (доступно множество инструментов).

http://patchwork.ozlabs.org/patch/194809/

Свяжитесь с Алексеем, может он вам в этом поможет :)


B. Вы можете использовать SELinux и iptables для статистики, но ограничьте полосу пропускания с помощью cgroups - мне больше нравится этот подход - tc выглядит некрасиво для меня в некоторых случаях и не оптимален для интеграции.

SELinux имеет перехватчики для сети и может назначать дополнительные данные в качестве метки для каждого пакета в соответствии с метками процесса, даже может передавать в другую систему и фильтровать / регистрировать / получать статистику, делать все, что вы можете с iptables, используя SECMARK.

http://selinuxproject.org/page/NB_Networking

Если вы еще не знакомы с SELinux, я рекомендую вам прочитать руководства RedHat / Fedora «Security-Enhanced Linux» и «SELinux FAQ», а также есть очень приятные объяснения и руководства, сообщения в блоге Дэниела Дж. Уолша (Dan Walsh) - Google для этого.

Кроме того, очень хорошая (и лучшая) отправная точка для новичков - это просмотр видео на YouTube, я уверен, что вы справитесь с этим примерно за три часа, чтобы понять все, что вам нужно:

  • SELinux для всех - Пол Уэйпер
  • SELinux для системных администраторов - Пол Уэйпер

SELINUX ПРОСТО, НЕ БОЙТЕСЬ