Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

QOS : Ca marche ... mais je sais pas pourquoi !

1 réponse
Avatar
Samuel
Bonjour,

Ca fait des semaines que je me bats avec la Qos et HTB !!!

Je finalise un script pour une ligne Net2 qui fonctionne très bien, mais
j'ai un doute sur cette ligne :

tc class add dev $DEV parent 1:1 classid 1:40 htb rate 10kbit ceil 40kbit
prio 1

En effet, au lancement du script, sur l'écran du serveur Débian s'affiche ce
message :

HTB : quantum of class 10040 is small. Consider r2q change

Ce message est-il simplement informatif, ou dois-je réellement modifier
qqchose ???
Apparemment, HTB a du mal avec les petits débits. Certains sites parlent
d'options r2q ou quantum à rajouter,
mais je ne sais pas comment les utiliser, ni quelles valeurs utiliser.

Qui peut m'aider ?
Merci d'avance.
Samuel

1 réponse

Avatar
Samuel
Re,

Donc, pour ceux que ça intéresse, voici un script qui me donne de très bon
résultats sur une ligne net2 (1024/256) chez Nerim.
Le but étant de prioriser un serveur IIS de la DMZ, tout en permettant de
downloader à fond.
ATTENTION, ce script n'a été testé que sur une passerelle de test reliée au
routeur ADSL, pas encore en condition de prod.
Il faudra adapter les INPUT et FORWARD d'iptables, rajouter les modprobe
nécessaires.
Cela pourra servir de base à certains ... merci d'être indulgents !
J'ai dû y aller à tatons pour les valeurs downlink et downlink_burst qui
donnaient des résultats farfelus (d'où le titre de mon premier message)
Les messages d'erreurs affichés à l'écran ne sont pas résolus !!!
Cependant voici les résultats :

Départ :

1) - debian ping vers free.fr : 50-60 ms

2) - Download depuis le Lan d'un fichier (apache) sur port 80 de la débian :
20-23 ko/s
- debian ping vers free.fr : 60-90 ms

3) - Débian download un gros fichier sur download.microsoft.com : 120-122
ko/s
- Download depuis le Lan d'un fichier (apache) sur port 80 de la débian
: 20-23 ko/s
- Debian ping vers free.fr : Le ping monte à 200-300 pendant 1 ou 2
secondes
Puis le ping revient à 60-90

4) - Le Lan surf sur des sites Internet (bonne réactivité)
- Débian download moins vite sur download.microsoft.com : 115-117 ko/s
- Download depuis le Lan d'un fichier (apache) sur port 80 de la débian
: 20-23 ko/s
- Debian ping vers free.fr : Le ping monte à 100-300 pendant l'affichage
de la page Web
Puis le ping revient à 60-90


#!/bin/bash

DOWNLINK20
DOWNLINK_BURST=4
UPLINK$0
UPLINK_BURST=2
DEV=eth0
TRAFFIC_MINV
TRAFFIC_MAX0
TRAFFIC_PRIO=1
#
SMTP_MIN
SMTP_MAX0
SMTP_PRIO=1
#
IIS_MIN0
IIS_MAX0
IIS_PRIO=1
#
MULE_MIN=8
MULE_MAX@
MULE_PRIO=1
#
iptables -F -t mangle
iptables -X -t mangle
#
tc qdisc del dev $DEV root 2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
#
iptables -t mangle -A OUTPUT -o $DEV -p tcp --sport 80 -j MARK --set-mark 2
iptables -t mangle -A FORWARD -o $DEV -p tcp --sport 443 -j MARK --set-mark
2
#
iptables -t mangle -A FORWARD -o $DEV -p tcp --sport 25 -j MARK --set-mark 3
iptables -t mangle -A OUTPUT -o $DEV -p tcp --sport 25 -j MARK --set-mark 3
iptables -t mangle -A FORWARD -o $DEV -p tcp --sport 110 -j MARK --set-mark
3
#
(essai de ssh sur la classe de la mule :)
iptables -t mangle -A OUTPUT -o $DEV -p tcp --sport 22 -j MARK --set-mark 4
#
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit ceil
${UPLINK}kbit burst ${UPLINK_BURST}k
#
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${TRAFFIC_MIN}kbit
ceil ${TRAFFIC_MAX}kbit burst ${UPLINK_BURST}k prio
$TRAFFIC_PRIO
tc class add dev $DEV parent 1:1 classid 1:20 htb rate ${IIS_MIN}kbit ceil
${IIS_MAX}kbit prio $IIS_PRIO
tc class add dev $DEV parent 1:1 classid 1:30 htb rate ${SMTP_MIN}kbit ceil
${SMTP_MAX}kbit prio $SMTP_PRIO
tc class add dev $DEV parent 1:1 classid 1:40 htb rate ${MULE_MIN}kbit ceil
${MULE_MAX}kbit prio $MULE_PRIO
#
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10
#
tc filter add dev $DEV protocol ip handle 1 fw flowid 1:10
tc filter add dev $DEV protocol ip handle 2 fw flowid 1:20
tc filter add dev $DEV protocol ip handle 3 fw flowid 1:30
tc filter add dev $DEV protocol ip handle 4 fw flowid 1:40

### Ingress

tc qdisc add dev $DEV handle ffff: ingress

tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src
0.0.0.0/0 police rate ${DOWNLINK}kbit burst ${DOWNLI
NK_BURST}k drop flowid :1

Voilà.
d'ailleurs, si ça peut permettre à certains de m'expliquer les messages
d'erreur à l'écran ...
Samuel.