Используете tc для квот трафика?

Используете tc для квот трафика?

Возможно ли реализовать квоты трафика (абсолютные лимиты, а не ограничения скорости) на основесетевой классификатор cgroup?

Я вижу, что естьрасширение 'quota' iptables netfilter, который, кажется, делает по сути то, что я пытаюсь сделать: на заданном интерфейсе и направлении РАЗРЕШИТЬ трафик до заданной квоты, затем ОТБРОСИТЬ - или сделать что-то еще. Однако, поскольку я хочу применить эту квоту только к заданной cgroup, мне придется использоватьмодуль net_clsдля идентификации трафика.

Я знаю, что могу установить ограничение скорости с помощьюУправление трафиком Linux (tc)на основе classid. Я также мог бы отбрасывать трафик, если у меня есть подходящий классификатор. Чего я, похоже, не могу найти, так это абсолютного счетчика для tc или способа для iptables фильтровать на основе classid.

решение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

Связанный контент