So führen Sie eine Netzwerkabrechnung mithilfe von cgroups durch

So führen Sie eine Netzwerkabrechnung mithilfe von cgroups durch

Ich versuche, Netzwerkstatistiken für Prozessgruppen abzurufen. Soweit ich weiß, erfolgt die komplexe Netzwerkabrechnung unter Linux normalerweise mithilfe der Abrechnungsinfrastruktur von Netfilter/iptables.

Da ich für solche Gruppen gerne eine Vererbung hätte, cgroupswäre das eine gute Lösung.

Meine beste Idee wäre, iptables mit dem übereinstimmen zu lassen, classidwas mithilfe des net_cls-Controllers eingestellt werden kann.

Aber es scheint, iptables kann nurSatzdiesen Wert über --set--class.

Also: Gibt es eine gute Möglichkeit, eine (komplexe und flexible) Netzwerkabrechnung und -protokollierung für Prozessgruppen unter Linux zu erhalten?

Antwort1

Eine sehr schöne Frage! Danke. Alt, aber wird den Leuten hier helfen


A. Sie können cgroups mit tc verwenden. Davon habe ich noch nie gehört, aber nach dem Googeln habe ich Folgendes gefunden:

net_cls – dieses Subsystem kennzeichnet Netzwerkpakete mit einer Klassenkennung (classid), die es dem Linux-Verkehrscontroller (tc) ermöglicht, Pakete zu identifizieren, die von einer bestimmten Cgroup-Aufgabe stammen.

Demnach sollten Sie mit tc arbeiten und von dort Statistiken abrufen (viele Tools verfügbar).

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

Kontaktiere Alexey, vielleicht kann er dir dabei helfen :)


B. Sie können SELinux und iptables für Statistiken verwenden, aber die Bandbreite mit cgroups begrenzen – mir gefällt dieser Ansatz besser – tc sieht für mich in manchen Fällen hässlich aus und ist für die Integration nicht optimal.

SELinux verfügt über Hooks für das Netzwerk und kann jedem Paket entsprechend den Prozessbezeichnungen zusätzliche Daten als Bezeichnung zuweisen, ist sogar in der Lage, an ein anderes System zu übertragen und Statistiken zu filtern/protokollieren/abzurufen und mithilfe von SECMARK alles zu tun, was Sie mit iptables tun können.

http://selinuxproject.org/page/NB_Networking

Wenn Sie mit SELinux noch nicht vertraut sind, empfehle ich Ihnen, die RedHat/Fedora-Anleitungen „Security-Enhanced Linux“ und „SELinux FAQ“ zu lesen. Darüber hinaus gibt es sehr gute Erklärungen und Anleitungen sowie Blog-Beiträge von Daniel J. Walsh (Dan Walsh) – googeln Sie danach.

Ein sehr guter (und besserer) Ausgangspunkt für Neulinge sind außerdem die folgenden Videos auf YouTube. Ich bin sicher, dass Sie in etwa drei Stunden alles verstehen können, was Sie wissen müssen:

  • SELinux für alle - Paul Wayper
  • SELinux für Sysadmins - Paul Wayper

SELINUX IST EINFACH, HABEN SIE KEINE ANGST

Antwort2

Mit den neuesten Kerneln können Sie direkt mit Cgroups in iptables übereinstimmen, siehe:http://lwn.net/Articles/569678/

Es wurde in den Hauptkernel aufgenommen.

verwandte Informationen