Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 24. Control de tráfico de Linux

Linux ofrece herramientas para gestionar y manipular la transmisión de paquetes. El subsistema Linux Traffic Control (TC) ayuda a vigilar, clasificar, dar forma y programar el tráfico de la red. El TC también manipula el contenido de los paquetes durante la clasificación utilizando filtros y acciones. El subsistema TC logra esto utilizando disciplinas de colas (qdisc), un elemento fundamental de la arquitectura TC.

El mecanismo de programación ordena o reordena los paquetes antes de que entren o salgan de las diferentes colas. El planificador más común es el planificador FIFO (First-In-First-Out). Puede realizar las operaciones de qdiscs temporalmente utilizando la utilidad tc o permanentemente utilizando NetworkManager.

En esta sección se explican las disciplinas de colas y se describe cómo actualizar la dirección qdiscs por defecto en RHEL.

24.1. Visión general de las disciplinas de colas

Las disciplinas de colas (qdiscs) ayudan a poner en cola y, posteriormente, a programar la transmisión del tráfico por una interfaz de red. Un qdisc tiene dos operaciones;

  • solicitudes de cola para que un paquete pueda ser puesto en cola para su posterior transmisión y
  • las solicitudes de retirada de la cola para que uno de los paquetes en cola pueda ser elegido para su transmisión inmediata.

Cada qdisc tiene un número de identificación hexadecimal de 16 bits llamado handle, con dos puntos adjuntos, como 1: o abcd:. Este número se denomina número mayor de qdisc. Si un qdisc tiene clases, los identificadores se forman como un par de dos números con el número mayor antes del menor, <major>:<minor>, por ejemplo abcd:1. El esquema de numeración de los números menores depende del tipo de qdisc. A veces la numeración es sistemática, donde la primera clase tiene el identificador <major>:1, la segunda <major>:2, y así sucesivamente. Algunos qdiscs permiten al usuario establecer los números menores de las clases de forma arbitraria al crear la clase.

Clase qdiscs

Existen diferentes tipos de qdiscs que ayudan en la transferencia de paquetes hacia y desde una interfaz de red. Se puede configurar qdiscs con clases raíz, padre o hijo. El punto al que se pueden adjuntar los hijos se llaman clases. Las clases en qdisc son flexibles y siempre pueden contener varias clases hijas o una sola hija, qdisc. No existe ninguna prohibición de que una clase contenga a su vez una clase qdisc, lo que facilita los escenarios complejos de control de tráfico. La clase qdiscs no almacena ningún paquete. En su lugar, ponen en cola y decaen las peticiones hasta uno de sus hijos de acuerdo con los criterios específicos de qdisc. Al final, este paso recursivo de paquetes termina en el lugar donde se almacenan los paquetes (o se recogen en el caso de dequeuing).

Sin clase qdiscs

Algunos qdiscs no contienen clases hijas y se denominan qdiscs sin clase. Los qdiscs sin clase requieren menos personalización que los qdiscs con clase. Por lo general, basta con adjuntarlas a una interfaz.

Recursos adicionales

  • Para obtener información detallada sobre las clases sin y con clase qdiscs, consulte la página de manual tc(8).
  • Para obtener información detallada sobre las acciones, consulte las páginas de manual actions y tc-actions.8.