Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 24. Controle de tráfego Linux

O Linux oferece ferramentas para gerenciar e manipular a transmissão de pacotes. O subsistema de Controle de Tráfego Linux (TC) ajuda no policiamento, classificação, modelagem e agendamento do tráfego da rede. O TC também modifica o conteúdo dos pacotes durante a classificação, utilizando filtros e ações. O subsistema TC consegue isso utilizando disciplinas de enfileiramento (qdisc), um elemento fundamental da arquitetura do TC.

O mecanismo de programação organiza ou rearranja os pacotes antes que eles entrem ou saiam de diferentes filas. O programador mais comum é o programador First-In-First-Out (FIFO). Você pode fazer as operações do qdiscs temporariamente usando o utilitário tc ou permanentemente usando o NetworkManager.

Esta seção explica as disciplinas de enfileiramento e descreve como atualizar o padrão qdiscs em RHEL.

24.1. Visão geral das disciplinas de enfileiramento

As disciplinas de enfileiramento (qdiscs) ajudam com o enfileiramento e, posteriormente, o agendamento da transmissão de tráfego por uma interface de rede. Um qdisc tem duas operações;

  • solicita para que um pacote possa ser enfileirado para posterior transmissão e
  • dequeue solicita para que um dos pacotes enfileirados possa ser escolhido para transmissão imediata.

Cada qdisc tem um número de identificação hexadecimal de 16 bits chamado handle, com um cólon anexo, como 1: ou abcd:. Este número é chamado de qdisc número principal. Se um qdisc tem classes, então os identificadores são formados como um par de dois números com o número maior antes do menor, <major>:<minor>, por exemplo abcd:1. O esquema de numeração para os números menores depende do tipo qdisc. Às vezes a numeração é sistemática, onde a primeira classe tem o ID <major>:1, a segunda <major>:2, e assim por diante. Alguns qdiscs permitem ao usuário definir arbitrariamente os números menores de classe ao criar a classe.

Classificado qdiscs

Existem diferentes tipos de qdiscs e ajudam na transferência de pacotes de e para uma interface de rede. Você pode configurar qdiscs com classes raiz, pai, ou criança. O ponto onde as crianças podem ser anexadas é chamado classes. As classes em qdisc são flexíveis e podem sempre conter várias classes infantis ou uma única criança, qdisc. Não há proibição contra uma classe que contenha uma classe em si qdisc, o que facilita cenários complexos de controle de tráfego. A classe qdiscs não armazena nenhum pacote em si. Em vez disso, eles fazem consultas e fazem pedidos de filiação a um de seus filhos de acordo com critérios específicos do site qdisc. Eventualmente, esta passagem recursiva de pacotes termina onde os pacotes são armazenados (ou pegos no caso de desqueue).

Sem classe qdiscs

Alguns qdiscs não contêm aulas para crianças e são chamados de classless qdiscs. Sem classes qdiscs requerem menos personalização em comparação com a classe qdiscs. Geralmente é suficiente anexá-los a uma interface.

Recursos adicionais

  • Para informações detalhadas sobre os sem classe e os sem classe qdiscs, consulte a página de manual tc(8).
  • Para informações detalhadas sobre as ações, consulte as páginas de manual actions e tc-actions.8.