トラフィッククォータ(レート制限ではなく絶対制限)を実装することは可能ですか?ネットワーク分類子 cgroup?
なるほど、iptables netfilter 'quota' 拡張は、基本的に私がやろうとしていることと同じことをしているようです。つまり、特定のインターフェースと方向で、特定のクォータまでのトラフィックを許可し、その後ドロップするか、他の操作を行います。ただし、このクォータを特定のcgroupにのみ適用したいので、net_cls モジュールトラフィックを識別します。
レート制限を設定するにはLinux トラフィック制御 (tc)クラス ID に基づきます。適切な分類子があれば、トラフィックをドロップすることもできます。私が見つけられないのは、tc の絶対カウンタか、クラス ID に基づいて iptables がフィルタリングする方法のどちらかです。
答え1
iptablesではclassidに基づいてフィルタリングできます。net_cls モジュールあなたが提供したリンク。
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
もちろん、例を変更して、iptables をより複雑なルールを持つ別のチェーンにジャンプさせることもできます。たとえば、次のようになります。
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