Comment vérifier si une politique de QoS réseau est active sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une politique de qualité de service (Quality of Service - QoS) réseau est active sous Linux. Vous utiliserez la puissante commande tc pour lister et examiner les règles (disciplines) et les classes de QoS configurées sur vos interfaces réseau.

Plus précisément, vous utiliserez d'abord tc qdisc show pour lister les règles d'attente (queueing disciplines) actives et comprendre leur rôle dans la gestion du trafic réseau. Ensuite, vous explorerez comment vérifier les classes de QoS avec tc class, qui sont utilisées pour catégoriser et prioriser différents types de trafic. Enfin, vous apprendrez à examiner les fichiers de configuration réseau dans /etc/network pour comprendre comment les politiques de QoS peuvent être configurées de manière permanente.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/help -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/man -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/ls -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/cat -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/ifconfig -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/netstat -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} linux/ip -.-> lab-558741{{"Comment vérifier si une politique de QoS réseau est active sous Linux"}} end

Lister les règles de QoS avec tc qdisc

Dans cette étape, vous apprendrez à lister les règles de qualité de service (Quality of Service - QoS) à l'aide de la commande tc. La QoS est un ensemble de technologies qui gèrent le trafic réseau pour réduire la perte de paquets, la latence et le jitter. La commande tc est un outil puissant sous Linux pour configurer le contrôle du trafic.

La commande tc qdisc est utilisée pour gérer les règles d'attente (queueing disciplines). Une règle d'attente (qdisc) est la partie du noyau Linux qui détermine l'ordonnancement des paquets.

Pour lister les règles de QoS actuellement configurées sur vos interfaces réseau, ouvrez le terminal et tapez la commande suivante :

tc qdisc show

Appuyez sur Entrée.

Vous devriez voir une sortie similaire à celle-ci :

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

Décortiquons la sortie :

  • qdisc : Indique que cette ligne décrit une règle d'attente.
  • noqueue 0: dev lo : Affiche la règle d'attente pour l'interface de bouclage (lo). noqueue signifie qu'aucune file d'attente n'est mise en œuvre, car le trafic sur l'interface de bouclage n'est généralement pas soumis à la mise en forme.
  • fq_codel 0: dev eth0 : Affiche la règle d'attente pour l'interface réseau eth0. fq_codel est un type spécifique de règle d'attente qui combine la file d'attente équitable (Fair Queueing - FQ) avec le délai contrôlé (Controlled Delay - CoDel).
  • root : Indique que cette règle d'attente est la règle racine pour le périphérique.
  • Les paramètres restants (refcnt, limit, flows, etc.) sont spécifiques à la règle d'attente fq_codel et contrôlent son comportement.

La sortie que vous voyez peut varier en fonction de la configuration par défaut des interfaces réseau dans l'environnement LabEx. L'important est de comprendre que tc qdisc show liste les règles d'attente actives.

Maintenant, essayez de lister les règles d'attente pour une interface spécifique, comme eth0 :

tc qdisc show dev eth0

Appuyez sur Entrée.

Cette commande n'affichera que la règle d'attente configurée sur l'interface eth0.

Comprendre la sortie de tc qdisc show est la première étape pour gérer le trafic réseau avec tc.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier les classes de QoS avec tc class

Dans l'étape précédente, vous avez appris à propos des règles d'attente (qdisc). Maintenant, explorons les classes de QoS à l'aide de la commande tc class.

Alors que les règles d'attente définissent le comportement global d'ordonnancement sur une interface, les classes sont utilisées au sein de certaines règles d'attente (comme HTB ou CBQ) pour créer des structures hiérarchiques et appliquer différentes règles à différents types de trafic. Considérez les classes comme des catégories ou des sous - divisions au sein d'une règle d'attente.

Pour lister les classes de QoS actuellement configurées, vous devez spécifier l'interface réseau et la règle d'attente ou la classe parente. Étant donné que la règle d'attente fq_codel par défaut sur eth0 n'utilise pas une hiérarchie de classes de la même manière que certaines autres règles d'attente, exécuter directement tc class show dev eth0 peut ne montrer aucune classe au départ.

Essayons quand même la commande pour voir la sortie :

tc class show dev eth0

Appuyez sur Entrée.

Il est probable que vous ne voyiez aucune sortie, ou une sortie indiquant qu'aucune classe n'est définie, similaire à ceci :

Cela est normal car fq_codel est une règle d'attente sans classes (classless qdisc). Les règles d'attente sans classes effectuent leur travail sans avoir besoin de classer le trafic en différents groupes.

Cependant, si une règle d'attente comme HTB (Hierarchical Token Bucket) ou CBQ (Class Based Queueing) était configurée, vous verriez une liste de classes définies sous cette règle d'attente, montrant leurs paramètres tels que les limites de bande passante, les priorités, etc.

Par exemple, si HTB était configuré sur eth0, la sortie pourrait ressembler à ceci (ce n'est qu'un exemple, vous ne verrez pas cette sortie dans l'environnement actuel) :

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

Dans cet exemple hypothétique :

  • class htb : Indique une classe HTB.
  • 1:1 : Le handle de la classe racine.
  • 1:10, 1:20 : Handles des classes enfants sous la classe racine 1:1.
  • rate, ceil : Définissent la bande passante garantie et maximale pour la classe.
  • prio : Définit la priorité de la classe.

Bien que vous ne voyiez pas de classes avec la configuration par défaut, comprendre la commande tc class show est crucial pour travailler avec les règles d'attente avec classes (classful qdiscs) lorsqu'elles sont configurées.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter la configuration de QoS dans /etc/network

Dans les étapes précédentes, vous avez utilisé la commande tc pour afficher les configurations de qualité de service (QoS) actuellement actives. Alors que tc montre l'état à l'exécution, les fichiers de configuration déterminent souvent comment ces paramètres sont appliqués lorsque le système démarre ou que les interfaces réseau sont activées.

Sur les systèmes basés sur Debian comme Ubuntu, les configurations des interfaces réseau sont souvent gérées dans le fichier /etc/network/interfaces et les fichiers du répertoire /etc/network/interfaces.d/. Ces fichiers peuvent inclure des commandes à exécuter lorsque une interface est configurée, y compris des commandes tc pour configurer la QoS.

Inspectons le fichier de configuration réseau principal. Ouvrez le terminal et utilisez la commande cat pour afficher le contenu de /etc/network/interfaces :

cat /etc/network/interfaces

Appuyez sur Entrée.

Vous verrez la configuration de base de l'interface réseau. Dans cet environnement LabEx, la sortie pourrait ressembler à ceci :

## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Ce fichier définit l'interface de bouclage (lo) et l'interface réseau principale (eth0), qui est configurée pour utiliser le protocole DHCP pour obtenir une adresse IP.

Les configurations de QoS ne sont généralement pas placées directement dans /etc/network/interfaces pour les configurations complexes. Au lieu de cela, elles sont souvent incluses dans des scripts séparés ou des extraits de configuration qui sont exécutés lorsque l'interface est activée. Ces extraits peuvent se trouver dans le répertoire /etc/network/if-up.d/. Les scripts de ce répertoire sont exécutés après que l'interface réseau a été activée.

Listons les fichiers dans le répertoire /etc/network/if-up.d/ pour voir s'il y a des scripts liés à la QoS ou au contrôle du trafic :

ls /etc/network/if-up.d/

Appuyez sur Entrée.

La sortie affichera les fichiers présents dans ce répertoire. Vous pourriez voir divers scripts liés à la configuration réseau, mais probablement aucun spécifiquement pour des configurations complexes de QoS dans cet environnement de base.

## Example output (may vary)
avahi-autoipd  ethtool  mountnfs  ntp  openssh-server  resolvconf  upstart

S'il y avait des scripts conçus pour appliquer des règles tc au démarrage, ils résideraient généralement ici. Par exemple, un script nommé qos-setup dans ce répertoire pourrait contenir des commandes tc pour configurer les règles d'attente (qdiscs) et les classes.

Bien que vous n'ayez pas trouvé de configurations explicites de QoS dans ces emplacements standard dans cet environnement de base, savoir où chercher (/etc/network/interfaces, /etc/network/interfaces.d/ et /etc/network/if-up.d/) est essentiel pour comprendre comment la QoS est configurée de manière persistante sur un système Linux.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si une politique de qualité de service (QoS) réseau est active sous Linux. Vous avez commencé par utiliser la commande tc qdisc show pour lister les règles d'attente (qdiscs) actives sur vos interfaces réseau, en comprenant que les règles d'attente déterminent l'ordonnancement des paquets et constituent une partie essentielle de la configuration de la QoS. Vous avez examiné la sortie pour identifier le type de règle d'attente et l'interface réseau associée, et avez également appris à lister les règles d'attente pour une interface spécifique en utilisant tc qdisc show dev <interface>.