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 manualtc(8)
. -
Para obtener información detallada sobre las acciones, consulte las páginas de manual
actions
ytc-actions.8
.