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

)