QoS con TC qdiscs: ¿es posible que TODAS las conexiones salientes tengan x límite de velocidad por IP única?

Estoy intentando configurar QoS en mi VPS para que pueda tener cualquier connection de salida nueva a un IP único que tenga una velocidad x limitada.

Por ejemplo:

  • Tengo 5 IP públicas que solicitan datos de mi VPS.
  • Cuando el VPS envía datos de vuelta a cada una de esas IP, cada IP obtiene 10mbps de velocidad de ancho de banda de salida dedicada.
  • Nunca deje caer packages, en lugar de ponerlos en queue si el cliente supera 10mbps.

No quiero limitar todo el puerto eth0 a 10 mbps de velocidad de salida, quiero que cada IP pública individual obtenga 10 mbps.

Con frecuencia tengo diferentes IP públicas contactando mi VPS, así que preferiría no tener que escribir reglas que son estáticas, lo que me obliga a escribir de forma individual cada regla de ancho de banda por IP.

¿Es esto posible con TC qdiscs?

Revisé lo que parece ser la configuration típica de las qdics HTB que me permiten tener filters, etc. Pero no pude ver un ejemplo o literatura que describa lo que quiero.

Estoy usando el server ubuntu 14.04.

ACTUALIZAR

Hice lo siguiente una vez que entendí la forma en que los qdiscos TC funcionan un poco mejor.

Comandos que utilicé para una configuration básica que parece funcionar bastante bien ya que los packages no están cayendo, sino más bien yendo al contenedor de tokens (nota: esto no está muy optimizado, pero parece funcionar bastante bien):

tc qdisc add dev eth0 root handle 1: htb default 11 tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit tc class add dev eth0 parent 1: classid 1:2 htb rate 20mbit tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 1.2.3.4 flowid 1:1 tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 2.3.4.5 flowid 1:2 

Related of "QoS con TC qdiscs: ¿es posible que TODAS las conexiones salientes tengan x límite de velocidad por IP única?"

No conozco un QDISC que lo haga directamente. Con CBQ / HTB / HFSC, en el mejor de los casos podría crear un número limitado de classs de 10mbps y luego filtrar direcciones IP con hash. Además de las colisiones hash que obviamente ocurrirán, funcionaría.

Con un poco de suerte, puede establecer dichos límites directamente en la fuente (como, en el server web).

Pero si realmente no se trata de limitar la tasa, sino de mantener las cosas entre los clientes, tal vez esté mejor con SFQ / ESFQ. Si bien no limita, proporciona un tipo de equilibrio.