Introducción
En este laboratorio, aprenderás cómo verificar si una política de Calidad de Servicio (Quality of Service, QoS) de red está activa en Linux. Utilizarás el poderoso comando tc para enumerar e inspeccionar las disciplinas y clases de QoS configuradas en tus interfaces de red.
Específicamente, primero utilizarás tc qdisc show para enumerar las disciplinas de encolamiento activas, comprendiendo su función en la gestión del tráfico de red. Luego, explorarás cómo verificar las clases de QoS con tc class, que se utilizan para categorizar y priorizar diferentes tipos de tráfico. Finalmente, aprenderás cómo inspeccionar los archivos de configuración de red en /etc/network para entender cómo se pueden configurar de forma persistente las políticas de QoS.
Listar disciplinas de QoS con tc qdisc
En este paso, aprenderás cómo listar las disciplinas de Calidad de Servicio (Quality of Service, QoS) utilizando el comando tc. QoS es un conjunto de tecnologías que gestionan el tráfico de red para reducir la pérdida de paquetes, la latencia y el jitter. El comando tc es una herramienta poderosa en Linux para configurar el control de tráfico.
El comando tc qdisc se utiliza para gestionar las disciplinas de encolamiento. Una disciplina de encolamiento (qdisc) es la parte del núcleo de Linux que determina la programación de los paquetes.
Para listar las disciplinas de QoS actualmente configuradas en tus interfaces de red, abre la terminal y escribe el siguiente comando:
tc qdisc show
Presiona Enter.
Deberías ver una salida similar a esta:
qdisc noqueue 0: dev lo root refcnt 2
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn
Desglosemos la salida:
qdisc: Indica que esta línea describe una disciplina de encolamiento.noqueue 0: dev lo: Muestra la qdisc para la interfaz de bucle interno (lo).noqueuesignifica que no se está produciendo encolamiento, ya que el tráfico en la interfaz de bucle interno normalmente no está sujeto a limitación.fq_codel 0: dev eth0: Muestra la qdisc para la interfaz de redeth0.fq_codeles un tipo específico de qdisc que combina Colas Justas (Fair Queueing, FQ) con Retraso Controlado (Controlled Delay, CoDel).root: Indica que esta es la qdisc raíz para el dispositivo.- Los parámetros restantes (
refcnt,limit,flows, etc.) son específicos de la qdiscfq_codely controlan su comportamiento.
La salida que veas puede variar dependiendo de la configuración predeterminada de las interfaces de red en el entorno de LabEx. Lo importante es entender que tc qdisc show lista las disciplinas de encolamiento activas.
Ahora, intenta listar las qdiscs para una interfaz específica, como eth0:
tc qdisc show dev eth0
Presiona Enter.
Este comando solo mostrará la qdisc configurada en la interfaz eth0.
Comprender la salida de tc qdisc show es el primer paso para gestionar el tráfico de red con tc.
Haz clic en Continuar para pasar al siguiente paso.
Verificar clases de QoS con tc class
En el paso anterior, aprendiste sobre las disciplinas de encolamiento (qdisc). Ahora, exploremos las clases de QoS utilizando el comando tc class.
Mientras que las qdiscs definen el comportamiento general de programación en una interfaz, las clases se utilizan dentro de ciertas qdiscs (como HTB o CBQ) para crear estructuras jerárquicas y aplicar diferentes reglas a diferentes tipos de tráfico. Puedes pensar en las clases como categorías o subdivisiones dentro de una qdisc.
Para listar las clases de QoS actualmente configuradas, debes especificar la interfaz de red y la qdisc o clase padre. Dado que la qdisc fq_codel predeterminada en eth0 no utiliza una jerarquía de clases de la misma manera que algunas otras qdiscs, ejecutar directamente tc class show dev eth0 puede que no muestre ninguna clase al principio.
Intentemos el comando de todos modos para ver la salida:
tc class show dev eth0
Presiona Enter.
Es probable que no veas ninguna salida, o una salida que indique que no se han definido clases, similar a esto:
Esto es lo esperado porque fq_codel es una qdisc sin clases. Las qdiscs sin clases realizan su trabajo sin necesidad de clasificar el tráfico en diferentes grupos.
Sin embargo, si se configurara una qdisc como HTB (Hierarchical Token Bucket) o CBQ (Class Based Queueing), verías una lista de clases definidas bajo esa qdisc, mostrando sus parámetros como límites de ancho de banda, prioridades, etc.
Por ejemplo, si HTB estuviera configurada en eth0, la salida podría verse algo así (este es solo un ejemplo, no verás esta salida en el entorno actual):
class htb 1:1 root prio 0 rate 100Mbit ceil 100Mbit burst 1600b cburst 1600b
class htb 1:10 parent 1:1 prio 1 rate 50Mbit ceil 80Mbit burst 1600b cburst 1600b
class htb 1:20 parent 1:1 prio 2 rate 20Mbit ceil 30Mbit burst 1600b cburst 1600b
En este ejemplo hipotético:
class htb: Indica una clase HTB.1:1: El identificador de la clase raíz.1:10,1:20: Identificadores de las clases hijas bajo la clase raíz1:1.rate,ceil: Definen el ancho de banda garantizado y máximo para la clase.prio: Define la prioridad de la clase.
Si bien no se ven clases con la configuración predeterminada, entender el comando tc class show es crucial para trabajar con qdiscs con clases cuando se configuran.
Haz clic en Continuar para pasar al siguiente paso.
Inspeccionar la configuración de QoS en /etc/network
En los pasos anteriores, utilizaste el comando tc para ver las configuraciones de QoS actualmente activas. Si bien tc muestra el estado en tiempo de ejecución, los archivos de configuración a menudo determinan cómo se aplican estas configuraciones cuando el sistema se inicia o se activan las interfaces de red.
En sistemas basados en Debian, como Ubuntu, las configuraciones de las interfaces de red a menudo se gestionan en el archivo /etc/network/interfaces y en los archivos dentro del directorio /etc/network/interfaces.d/. Estos archivos pueden incluir comandos que se ejecutan cuando se configura una interfaz, incluyendo comandos tc para configurar QoS.
Inspeccionemos el archivo principal de configuración de red. Abre la terminal y utiliza el comando cat para ver el contenido de /etc/network/interfaces:
cat /etc/network/interfaces
Presiona Enter.
Verás la configuración básica de la interfaz de red. En este entorno de LabEx, la salida podría verse algo así:
## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Este archivo define la interfaz de bucle interno (lo) y la interfaz de red principal (eth0), que está configurada para utilizar DHCP para obtener una dirección IP.
Las configuraciones de QoS no se suelen colocar directamente en /etc/network/interfaces para configuraciones complejas. En su lugar, a menudo se incluyen en scripts separados o fragmentos de configuración que se ejecutan cuando se activa la interfaz. Estos fragmentos pueden estar ubicados en el directorio /etc/network/if-up.d/. Los scripts en este directorio se ejecutan después de que se haya activado una interfaz de red.
Listemos los archivos en el directorio /etc/network/if-up.d/ para ver si hay algún script relacionado con QoS o control de tráfico:
ls /etc/network/if-up.d/
Presiona Enter.
La salida mostrará los archivos presentes en ese directorio. Puedes ver varios scripts relacionados con la configuración de red, pero probablemente ninguno específicamente para configuraciones complejas de QoS en este entorno básico.
## Example output (may vary)
avahi-autoipd ethtool mountnfs ntp openssh-server resolvconf upstart
Si hubiera scripts diseñados para aplicar reglas tc al arrancar el sistema, normalmente residirían aquí. Por ejemplo, un script llamado qos-setup en este directorio podría contener comandos tc para configurar qdiscs y clases.
Si bien no encontraste configuraciones explícitas de QoS en estos lugares estándar en este entorno básico, saber dónde buscar (/etc/network/interfaces, /etc/network/interfaces.d/ y /etc/network/if-up.d/) es esencial para entender cómo se configura de forma persistente QoS en un sistema Linux.
Haz clic en Continuar para completar este laboratorio.
Resumen
En este laboratorio, aprendiste cómo verificar si una política de QoS de red está activa en Linux. Comenzaste utilizando el comando tc qdisc show para listar las disciplinas de encolamiento activas en tus interfaces de red, comprendiendo que las qdiscs determinan la programación de paquetes y son una parte clave de la configuración de QoS. Examinaste la salida para identificar el tipo de qdisc y la interfaz de red asociada, y también aprendiste cómo listar las qdiscs para una interfaz específica utilizando tc qdisc show dev <interface>.



