Introdução
Neste laboratório, você aprenderá como verificar se uma política de Qualidade de Serviço (QoS) de rede está ativa no Linux. Você usará o poderoso comando tc para listar e inspecionar as disciplinas e classes de QoS configuradas em suas interfaces de rede.
Especificamente, você primeiro usará tc qdisc show para listar as disciplinas de enfileiramento (queueing disciplines) ativas, compreendendo seu papel no gerenciamento do tráfego de rede. Em seguida, você explorará como verificar as classes de QoS com tc class, que são usadas para categorizar e priorizar diferentes tipos de tráfego. Finalmente, você aprenderá como inspecionar os arquivos de configuração de rede em /etc/network para entender como as políticas de QoS podem ser configuradas de forma persistente.
Listar disciplinas de QoS com tc qdisc
Nesta etapa, você aprenderá como listar as disciplinas de Qualidade de Serviço (QoS) usando o comando tc. QoS é um conjunto de tecnologias que gerenciam o tráfego de rede para reduzir a perda de pacotes, latência e jitter. O comando tc é uma ferramenta poderosa no Linux para configurar o controle de tráfego.
O comando tc qdisc é usado para gerenciar as disciplinas de enfileiramento (queueing disciplines). Uma disciplina de enfileiramento (qdisc) é a parte do kernel Linux que determina o agendamento dos pacotes.
Para listar as disciplinas de QoS atualmente configuradas em suas interfaces de rede, abra o terminal e digite o seguinte comando:
tc qdisc show
Pressione Enter.
Você deve ver uma saída semelhante 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
Vamos analisar a saída:
qdisc: Indica que esta linha descreve uma disciplina de enfileiramento.noqueue 0: dev lo: Mostra o qdisc para a interface de loopback (lo).noqueuesignifica que nenhum enfileiramento está acontecendo, pois o tráfego na interface de loopback normalmente não está sujeito a modelagem (shaping).fq_codel 0: dev eth0: Mostra o qdisc para a interface de redeeth0.fq_codelé um tipo específico de qdisc que combina Fair Queueing (FQ) com Controlled Delay (CoDel).root: Indica que este é o qdisc raiz (root qdisc) para o dispositivo.- Os parâmetros restantes (
refcnt,limit,flows, etc.) são específicos para o qdiscfq_codele controlam seu comportamento.
A saída que você vê pode variar dependendo da configuração padrão das interfaces de rede no ambiente LabEx. A parte importante é entender que tc qdisc show lista as disciplinas de enfileiramento ativas.
Agora, tente listar os qdiscs para uma interface específica, como eth0:
tc qdisc show dev eth0
Pressione Enter.
Este comando mostrará apenas o qdisc configurado na interface eth0.
Compreender a saída de tc qdisc show é o primeiro passo para gerenciar o tráfego de rede com tc.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar classes de QoS com tc class
Na etapa anterior, você aprendeu sobre as disciplinas de enfileiramento (qdisc). Agora, vamos explorar as classes de QoS usando o comando tc class.
Enquanto os qdiscs definem o comportamento geral de agendamento em uma interface, as classes são usadas dentro de certos qdiscs (como HTB ou CBQ) para criar estruturas hierárquicas e aplicar regras diferentes a diferentes tipos de tráfego. Pense nas classes como categorias ou subdivisões dentro de um qdisc.
Para listar as classes de QoS atualmente configuradas, você precisa especificar a interface de rede e o qdisc ou classe pai. Como o qdisc fq_codel padrão em eth0 não usa uma hierarquia de classes da mesma forma que alguns outros qdiscs, executar tc class show dev eth0 diretamente pode não mostrar nenhuma classe inicialmente.
Vamos tentar o comando de qualquer maneira para ver a saída:
tc class show dev eth0
Pressione Enter.
Você provavelmente não verá nenhuma saída, ou uma saída indicando que nenhuma classe está definida, semelhante a esta:
Isso é esperado porque fq_codel é um qdisc sem classes. Os qdiscs sem classes realizam seu trabalho sem a necessidade de classificar o tráfego em diferentes grupos.
No entanto, se um qdisc como HTB (Hierarchical Token Bucket) ou CBQ (Class Based Queueing) estivesse configurado, você veria uma lista de classes definidas sob esse qdisc, mostrando seus parâmetros como limites de largura de banda, prioridades, etc.
Por exemplo, se HTB estivesse configurado em eth0, a saída poderia ser semelhante a esta (este é apenas um exemplo, você não verá esta saída no ambiente atual):
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
Neste exemplo hipotético:
class htb: Indica uma classe HTB.1:1: O identificador (handle) para a classe raiz.1:10,1:20: Identificadores para classes filhas sob a classe raiz1:1.rate,ceil: Definem a largura de banda garantida e máxima para a classe.prio: Define a prioridade da classe.
Embora você não veja classes com a configuração padrão, entender o comando tc class show é crucial para trabalhar com qdiscs com classes quando eles estão configurados.
Clique em Continuar para passar para a próxima etapa.
Inspecionar a configuração de QoS em /etc/network
Nas etapas anteriores, você usou o comando tc para visualizar as configurações de QoS atualmente ativas. Embora o tc mostre o estado em tempo de execução, os arquivos de configuração geralmente determinam como essas configurações são aplicadas quando o sistema é iniciado ou as interfaces de rede são ativadas.
Em sistemas baseados em Debian, como o Ubuntu, as configurações da interface de rede são frequentemente gerenciadas no arquivo /etc/network/interfaces e nos arquivos dentro do diretório /etc/network/interfaces.d/. Esses arquivos podem incluir comandos a serem executados quando uma interface é configurada, incluindo comandos tc para configurar QoS.
Vamos inspecionar o arquivo de configuração de rede principal. Abra o terminal e use o comando cat para visualizar o conteúdo de /etc/network/interfaces:
cat /etc/network/interfaces
Pressione Enter.
Você verá a configuração básica da interface de rede. Neste ambiente LabEx, a saída pode ser semelhante a esta:
## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Este arquivo define a interface de loopback (lo) e a interface de rede primária (eth0), que é configurada para usar DHCP para obter um endereço IP.
As configurações de QoS normalmente não são colocadas diretamente em /etc/network/interfaces para configurações complexas. Em vez disso, elas são frequentemente incluídas em scripts separados ou trechos de configuração que são executados quando a interface é ativada. Esses trechos podem estar localizados no diretório /etc/network/if-up.d/. Os scripts neste diretório são executados após uma interface de rede ter sido ativada.
Vamos listar os arquivos no diretório /etc/network/if-up.d/ para ver se há algum script relacionado a QoS ou controle de tráfego:
ls /etc/network/if-up.d/
Pressione Enter.
A saída mostrará os arquivos presentes nesse diretório. Você pode ver vários scripts relacionados à configuração de rede, mas provavelmente nenhum especificamente para configurações complexas de QoS neste ambiente básico.
## Exemplo de saída (pode variar)
avahi-autoipd ethtool mountnfs ntp openssh-server resolvconf upstart
Se houvesse scripts projetados para aplicar regras tc na inicialização, eles normalmente residiriam aqui. Por exemplo, um script chamado qos-setup neste diretório poderia conter comandos tc para configurar qdiscs e classes.
Embora você não tenha encontrado configurações explícitas de QoS nesses locais padrão neste ambiente básico, saber onde procurar (/etc/network/interfaces, /etc/network/interfaces.d/ e /etc/network/if-up.d/) é essencial para entender como o QoS é configurado de forma persistente em um sistema Linux.
Clique em Continuar para concluir este laboratório.
Resumo
Neste laboratório, você aprendeu como verificar se uma política de QoS de rede está ativa no Linux. Você começou usando o comando tc qdisc show para listar as disciplinas de enfileiramento ativas em suas interfaces de rede, entendendo que os qdiscs determinam o agendamento de pacotes e são uma parte fundamental da configuração de QoS. Você examinou a saída para identificar o tipo de qdisc e a interface de rede associada, e também aprendeu como listar qdiscs para uma interface específica usando tc qdisc show dev <interface>.



