Auteur Sujet: QoS directe avec tc ?  (Lu 312 fois)

0 Membres et 1 Invité sur ce sujet

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 224
QoS directe avec tc ?
« le: 09 mai 2025 à 20:48:18 »
Bonjour,

Je cherche à prioriser le trafic VoIP sur mon tunnel wireguard, mais je n'arrive pas vraiment à trouver d'exemple concret lorsque les paquets sont déjà marqués avec le DSCP approprié.

J'ai vu pleins d'exemples pour marquer les paquets à leur arrivée sur un routeur, mais pas pour pour les exploiter directement. Le seul exemple que j'ai trouvé implique l'utilisation d'iptables pour marquer les paquets une seconde fois en fonction du DSCP pour ensuite les traiter avec tc.

Et je me demandais s'il n'y avait pas moyen de sauter cette étape et que tc gère directement le DSCP ? Le sujet en question date et ça a peut-être évolué depuis (pour quelque chose de plus simple ?), mais j'ai pas trouvé grand chose... Can TC limit bandwidth by the Qos field of IP header

Merci

EDIT : En fait, je rêve d'un truc aussi simple en ligne de commande que mon switch :

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 656
QoS directe avec tc ?
« Réponse #1 le: 11 mai 2025 à 13:42:15 »
@renaud07:

On peut demander à une IA.

Citer
Avec nftables peut-on prioriser ou limiter la bande passante selon la marque DSCP ?

En résumé :

Priorisation : Possible en associant nftables à tc en utilisant la valeur DSCP pour classifier le trafic.
Limitation de bande passante : Se fait généralement avec tc en créant des classes et des règles de limitation, en se basant sur la marque ou la classification effectuée par nftables.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 224
QoS directe avec tc ?
« Réponse #2 le: 11 mai 2025 à 19:05:53 »
Salut,

Merci, mais ce que tu me présente, c'est toujours en 2 étapes, nftables + tc.

J'ai également fini par poser la question à copilot et il m'a donné une commande qui à priori fonctionne :
tc filter add dev wg0 protocol ip parent 1: prio 1 u32 match ip tos 0xb8 0xff flowid 1:10
tc filter add dev wg0 protocol ip parent 1: prio 1 u32 match ip tos 0x60 0xff flowid 1:20
tc filter add dev wg0 protocol ip parent 1: prio 1 u32 match ip tos 0x00 0xff flowid 1:30

Le truc intéressant ici, c'est u32 qui permet de cibler n’importe quelle partie des paquets (que je n'avais pas trouvé en faisant mes recherches) :
The Universal/Ugly 32bit filter allows one to match arbitrary bitfields in the packet. Due to breaking everything down to values, masks and offsets, It is equally powerful and hard to use. Luckily many abstracting directives are present which allow defining rules on a higher level and therefore free the user from having to fiddle with bits and masks in many cases.

Et on peut indiquer simplement la plupart des champs, dans mon cas tos ou dsfield, je vois d'ailleurs que certains l'utilisent ici pour la CoS chez orange, je sais pas comment j'ai fait pour le louper, j'ai pourtant relu certains sujets car je savais que je trouverais sans doute des trucs.

Mais, même avec cette config, j'ai toujours des comportements bizarres, par exemple sur un test de débit, l'upload ne respecte pas la consigne (fixée à 700 kbps), ça pousse à la limite de la ligne, mais souvent en début de test puis ça diminue un peu (ça fait des bursts on dirait) même chose dans l'autre sens. Pour le download ça fonctionne bien par contre, le débit reste constant, légèrement sous la consigne.

Ça m'a proposé d'ajouter une règle pour fixer le débit de manière stricte, mais ça n'a pas plus d'effet (faut-il diminuer le busrt de la commande ?) :
tc qdisc add dev wg0 handle ffff: ingress
tc filter add dev wg0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 police rate 700kbit burst 10k drop

Il m'a suggéré aussi que ça pouvait venir de wireguard qui pouvait avoir un paramétrage particulier qui fait que ça ne pourrait pas totalement respecter le débit défini, mais je ne sais pas si c'est vrai ou non (je préfère demander à de vrais humains  :P)

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 656
QoS directe avec tc ?
« Réponse #3 le: 13 mai 2025 à 07:41:20 »
@renaud07 :

Salut !

Je ne pourrais pas aider sur ce sujet. Ma précédente réponse indique principalement que tc peut également reprendre la valeur du champ DSCP.
Je n'ai pas vraiment compris ton propos sur le fait qu'il faille marquer plusieurs fois les paquets en fonction de leur DSCP.

Je ne sais pas si les réponses fournies par une IA sont fiables. En posant des questions précises ou ciblées, cela donne une idée de la réponse.
On peut aller plus vite dans un premier temps. Je pense qu'il faut également acquérir des compétences sur le sujet en question afin de pouvoir
réellement évaluer la pertinence ou la justesse de la réponse. L'avantage de l'IA est que l'on peut enchaîner les questions et les réponses en un
laps de temps.