Tengo un enrutador de Linux que tiene una interfaz de 10 GBe en el exterior e interfaces Gigabit Ethernet en el interior.
Actualmente tenemos un presupuesto de 2GBit / s. Si superamos esa tasa en más del 5% del promedio durante un mes, se nos cobrará la capacidad total de 10 Gbit / s. Todo un paso adelante en términos de dólares.
Entonces, quiero limitar esto a 2GBit / s en la interfaz de 10GBe.
El filtro TBF puede ser ideal, pero este comentario es preocupante.
En todas las plataformas, excepto Alpha, es capaz de configurar hasta 1mbit / s de tráfico normal con una ráfaga mínima ideal, enviando datos exactamente a las velocidades configuradas.
¿Debo usar TBF o algún otro filtro para aplicar esta velocidad a la interfaz y cómo lo haría? No entiendo el ejemplo dado aquí: COMO de Control de Tráfico
En particular, "Ejemplo 9. Crear un TBF de 256kbit / s"
tc qdisc add dev eth0 handle 1:0 root dsmark indices 1 default_index 0
tc qdisc add dev eth0 handle 2:0 parent 1:0 tbf burst 20480 limit 20480 mtu 1514 rate 32000bps
¿Cómo se calcula la velocidad de 256K bit / s? En este ejemplo, 32000bps = 32k bytes por segundo. Como tc usa bps = bytes por segundo. Supongo que la explosión y el límite entran en juego, pero ¿cómo elegirías números razonables para alcanzar la tasa deseada?
Esto no es un error. Probé esto y dio una tasa cercana a 256K pero no exactamente eso.
EDITAR
Después de leer y probar mucho, llegué a la conclusión de que TBF es inapropiado debido al ancho de banda involucrado. Cualquiera que sea la configuración que probé, no pude obtener TBF para proporcionar ancho de banda> ~ 50Mbit / s. De acuerdo con lartc.org/lartc.pdf, el método RED es mejor para dar forma al ancho de banda> 100Mbit / s, así que intentaré usarlo.
Sin embargo, elegir el valor a para min (es decir, Tamaño de cola promedio en el que el marcado se convierte en una posibilidad). El ejemplo dado es este:
Debe establecer el mínimo calculando la latencia de cola base más alta aceptable que desee y multiplíquela por su ancho de banda. Por ejemplo, en mi enlace RDSI de 64 kbit / s, es posible que desee una latencia de cola base de 200 ms, así que configuré un mínimo de 1600 bytes.
¿Cómo elegiría la latencia de cola base más alta aceptable? El ejemplo es para 64kbit / s.
¿Qué sería aceptable para 2 Gbit / s?
En mi experiencia, qdisc TBF puede limitar fácilmente el ancho de banda a 1 Gbps, por lo que supongo que también escalará a 2 Gbps. Sin embargo, probablemente necesitará una CPU real para el trabajo en lugar de un enrutador de borde de gama baja. Algo como 4 GHz i3 seguramente será suficiente.
Intenta algo como
dónde
Tenga en cuenta que para usar TBF de baja latencia, es posible que deba ejecutar el kernel PREEMPT (por ejemplo, el
linux-lowlatency-hwe-*
paquete Ubuntu ) o el sistema puede fallar al manejar todos esos paquetes.Ver también: https://networkengineering.stackexchange.com/a/54404/36597
fuente