Cuando se trata de administrar servidores o redes bajo GNU/Linux, la gestión del tráfico de red es una herramienta clave para garantizar el rendimiento, evitar saturaciones o simular condiciones de red. Para ello, el kernel de Linux incluye una potente utilidad poco conocida por muchos administradores: tc. Este comando permite manipular el subsistema de control de tráfico del kernel (Traffic Control), y ofrece un nivel de granularidad muy alto para aplicar políticas de calidad de servicio (QoS), priorización, limitación de ancho de banda, latencia simulada, pérdida de paquetes y más.
¿Para qué se usa el comando tc?
El comando tc (traffic control) forma parte del paquete iproute2 y se utiliza para:
- Limitar el ancho de banda de interfaces de red.
- Asignar prioridades al tráfico.
- Simular latencias o pérdida de paquetes para pruebas.
- Aplicar shaping y policing al tráfico.
- Controlar colas de paquetes, filtros y clases.
Es una herramienta esencial en entornos de pruebas, laboratorios de red, o sistemas donde se necesita una QoS avanzada.
Sintaxis básica
tc [subcomando] [objeto] [acción] [parámetros]Algunos subcomandos comunes son:
qdisc– Control de colas.class– Definición de clases de tráfico.filter– Filtros para dirigir paquetes a colas o clases específicas.
Ejemplo básico:
tc qdisc add dev eth0 root netem delay 100msEjemplos prácticos y opciones útiles
Limitar el ancho de banda de salida a 1 Mbps
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400msEste comando limita la interfaz eth0 a 1 Mbps, con una tolerancia (burst) y una latencia máxima.
Simular latencia de red
tc qdisc add dev eth0 root netem delay 100msIdeal para pruebas de aplicaciones web o móviles en condiciones de red más realistas.
Simular pérdida de paquetes (5%)
tc qdisc change dev eth0 root netem loss 5%Muy útil para simular entornos con mala conexión, como redes móviles.
Quitar todas las reglas aplicadas a una interfaz
tc qdisc del dev eth0 rootRestablece el comportamiento por defecto de la interfaz.
Mostrar el estado actual del shaping
tc qdisc show dev eth0Muestra qué tipo de configuración se ha aplicado sobre eth0.
Conclusión
tc es una herramienta avanzada pero imprescindible para los administradores de sistemas que necesitan tener control total sobre el tráfico de red. Aunque su sintaxis puede parecer compleja al principio, su flexibilidad es incomparable. Desde limitar ancho de banda hasta simular condiciones de red adversas, tc permite experimentar, probar y asegurar la calidad del servicio de forma precisa. Si gestionas entornos de red en GNU/Linux, conocer tc puede marcar la diferencia entre una red optimizada y un cuello de botella sin identificar.
Comentarios