¿Es posible implementar cuotas de tráfico (límites absolutos, no límites de velocidad) en función de laclasificador de red cgroup?
veo que hay elExtensión de 'cuota' de netfilter de iptables, que parece hacer esencialmente lo que estoy tratando de hacer: en una interfaz y dirección determinadas, PERMITIR el tráfico hasta una cuota determinada, luego DEJARLO, o hacer otra cosa. Sin embargo, dado que solo quiero aplicar esta cuota a un cgroup determinado, tendría que usar elmódulo net_clspara identificar el tráfico.
Sé que puedo establecer un límite de tasa usandoControl de tráfico de Linux (tc)basado en el clásico. También podría reducir el tráfico si tengo un clasificador adecuado. Lo que parece que no puedo encontrar es un contador absoluto para tc o una forma de que iptables filtre según classid.
Respuesta1
Puede filtrar con iptables según classid. Hay un ejemplo en elmódulo net_clsenlace que proporcionaste.
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
Por supuesto, puedes cambiar el ejemplo para que iptables salte a otra cadena con reglas más complejas. Tal vez:
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