Ist es möglich, Verkehrskontingente (absolute Grenzen, keine Ratenbegrenzungen) auf der Grundlage derNetzwerkklassifizierer-Cgroup?
Ich sehe, es gibt dieiptables netfilter 'quota'-Erweiterung, was im Wesentlichen das zu tun scheint, was ich versuche: Auf einer bestimmten Schnittstelle und in einer bestimmten Richtung den Datenverkehr bis zu einem bestimmten Kontingent ERLAUBEN, dann VERRINGERN - oder etwas anderes tun. Da ich dieses Kontingent jedoch nur auf eine bestimmte Kontrollgruppe anwenden möchte, müsste ich dienet_cls-Modulum den Verkehr zu identifizieren.
Ich weiß, dass ich eine Ratenbegrenzung festlegen kann mitLinux-Verkehrskontrolle (tc)basierend auf der Klassen-ID. Ich könnte den Verkehr auch löschen, wenn ich einen geeigneten Klassifizierer habe. Was ich anscheinend nicht finden kann, ist entweder ein absoluter Zähler für tc oder eine Möglichkeit für iptables, basierend auf der Klassen-ID zu filtern.
Antwort1
Sie können mit iptables nach ClassID filtern. Ein Beispiel finden Sie imnet_cls-Modulden von Ihnen angegebenen Link.
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
Sie können das Beispiel natürlich ändern und iptables dazu bringen, zu einer anderen Kette mit komplexeren Regeln zu springen. Vielleicht:
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -N QUOTA
iptables -A QUOTA -m quota --quota 52428800 -j ACCEPT
iptables -A QUOTA -j DROP
iptables -A OUTPUT -m cgroup --cgroup 0x100001 -j QUOTA