Débit fibre => Discussion démarrée par: vivien le 12 août 2024 à 22:12:16Quand un terminal envoi un flux vers internet avec un champ DSCP non nul, à quel endroit ce flux est repassé en DSCP 0 ?Hello
- mais si tu demande un DSCP depuis une LB qui n'est pas priorisé, je ne suis pas certain que l'on touche à quoi que ce soit (là par exemple, je pense pas que l'on ait une différence de traitement entre DSCP 0 et DSCP 8, donc aucune raison de refaire le marquage pour la DSCP8)Si ce n'est pas remis à zéro, cela pourrait expliquer que ce champ DSCP mis en place sur le réseau fixe soit utilisé coté mobile. C'est étonnant de ne pas faire de reset.
Depuis que j'ai déménagé, j'ai une Flybox 5G Home Orange et j'ai mes transferts SSH qui sont limités à exactement 5 Mb/s uniquement avec les clients Orange (testé avec un client Livebox 3 et un client Livebox 4). Je n'ai pas cette limitation quand les serveurs SSH sont hors du réseau Orange.
Depuis que j'ai déménagé, j'ai une Flybox 5G Home Orange et j'ai mes transferts SSH qui sont limités à exactement 5 Mb/s uniquement avec les clients Orange (testé avec un client Livebox 3 et un client Livebox 4). Je n'ai pas cette limitation quand les serveurs SSH sont hors du réseau Orange.Hello
Et si tu configures SSH pour utiliser un autre codepoint DSCP, par exemple 0, as-tu toujours cette limitation de débit ?
Il est bien probable que la limitation de débit ne soit pas liée à la valeur du champ DSCP.
# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0Pas besoin de redémarrer le PC, c'est effectif lors de la prochaine commande scp / sftp / rsync -e "ssh".
Commande pour faire un téléchargement : (téléchargement d'un fichier existant de 100Mo situé sur le PC qui fait tourner OpenSSH server dans mon /tmp je suis limité à 5 Mb/s)
scp -P 22 user@pc:/home/user/100M.iso /tmp/
Je suis également bridé à 5 Mb/s avec sftp :
sftp -P 22 user@pc:/home/user/100M.iso /tmp/
Attention, la limitation de débit n'est pas systématique, mais elle intervient régulièrement (je n'ai pas trouvé la cause, ce n'est pas lié à un changement d'IP).
2/ Mettre sur le client OpenSSH le fichier de configuration suivant :
/etc/ssh/ssh_config.d/ssh_best_effort.confCode: [Sélectionner]# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0
Chez moi, j'ai du WG site-to-site derrière 2 ADSL orange, mais avec routeur perso : pas de tag bizarre, ni avec mon smartphone chez sosh, connecté au même serveur.
Optionnel : Déprioriser le trafic de la sauvegarde
OpenSSH définit le champ TOS (type de service) dans l'entête IP afin de prioriser avec une faible latence les sessions interactives et de prioriser le débit les sessions non interactives.
Ces priorisations ne fonctionnent pas sur Internet (neutralité d'internet) et ce trafic atypique (SSH est une des rares applications à prioriser son trafic) peut poser un problème à des équipements réseaux.
Par exemple, la sauvegarde d'une Livebox Orange réalisée depuis le réseau mobile d'Orange (testé avec une Flybox 5G) sera limité à 5 Mb/s (afin que n'importe quel trafic ne soit pas priorisé, des limites de débit sont mis en place sur le trafic priorisé).
Il est donc conseillé de ne pas prioriser le trafic (best effort), ce qui correspond à la valeur CS0.
Pour en savoir plus : page Wikipédia Differentiated services (https://fr.wikipedia.org/wiki/Differentiated_services).
1/ Coté machine sauvegardée, pour déprioriser le trafic émis par ce PC (contenu de la sauvegarde) :
On crée un fichier qui va demander d'utiliser CS0 pour les sessions interactives et CS0 pour les sessions non interactives :
sudo nano /etc/sshd/ssh_config.d/ssh_best_effort.conf
Copier-coller le code ci-dessousCode: [Sélectionner]# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0
2/ Coté PC avec le script de sauvegarde, pour déprioriser le trafic émis par ce PC (principalement les acquittements TCP - c'est ce trafic qui pose un problème avec le box 5G Orange)
On crée un fichier qui va demander d'utiliser CS0 pour les sessions interactives et CS0 pour les sessions non interactives :
sudo nano /etc/ssh/ssh_config.d/ssh_best_effort.conf
Copier-coller le code ci-dessousCode: [Sélectionner]# Ne pas prioriser le trafic SSH émis (best effort)
IPQoS cs0 cs0
Attention, la ligne de commande est presque identique entre les deux côtés, mais il y a une différence : /etc/sshd/ssh_config.d vs /etc/ssh/ssh_config.d
$ iperf3 -c 2a03:7220:8081:9f00::1
Connecting to host 2a03:7220:8081:9f00::1, port 5201
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 39816 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 13.8 MBytes 115 Mbits/sec 0 630 KBytes
[ 5] 1.00-2.00 sec 35.0 MBytes 294 Mbits/sec 40 1.44 MBytes
[ 5] 2.00-3.00 sec 33.8 MBytes 283 Mbits/sec 0 1.60 MBytes
[ 5] 3.00-4.00 sec 32.5 MBytes 273 Mbits/sec 0 1.73 MBytes
[ 5] 4.00-5.00 sec 31.2 MBytes 262 Mbits/sec 0 1.83 MBytes
[ 5] 5.00-6.00 sec 35.0 MBytes 293 Mbits/sec 0 1.90 MBytes
[ 5] 6.00-7.00 sec 33.8 MBytes 284 Mbits/sec 133 1.41 MBytes
[ 5] 7.00-8.00 sec 33.8 MBytes 283 Mbits/sec 0 1.49 MBytes
[ 5] 8.00-9.00 sec 33.8 MBytes 283 Mbits/sec 0 1.54 MBytes
[ 5] 9.00-10.00 sec 33.8 MBytes 283 Mbits/sec 0 1.58 MBytes
[ 5] 10.00-11.00 sec 32.5 MBytes 273 Mbits/sec 0 1.61 MBytes
[ 5] 11.00-12.00 sec 31.2 MBytes 262 Mbits/sec 0 1.62 MBytes
[ 5] 12.00-13.00 sec 27.5 MBytes 231 Mbits/sec 0 1.62 MBytes
^C[ 5] 13.00-13.83 sec 27.5 MBytes 277 Mbits/sec 0 1.62 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-13.83 sec 435 MBytes 264 Mbits/sec 173 sender
[ 5] 0.00-13.83 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
$ iperf3 -c 2a03:7220:8081:9f00::1 -t 120 --reverse
Connecting to host 2a03:7220:8081:9f00::1, port 5201
Reverse mode, remote host 2a03:7220:8081:9f00::1 is sending
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 43476 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 23.6 MBytes 198 Mbits/sec
[ 5] 1.00-2.00 sec 30.9 MBytes 259 Mbits/sec
[ 5] 2.00-3.00 sec 29.5 MBytes 248 Mbits/sec
[ 5] 3.00-4.00 sec 29.5 MBytes 247 Mbits/sec
[ 5] 4.00-5.00 sec 26.4 MBytes 221 Mbits/sec
[ 5] 5.00-6.00 sec 27.5 MBytes 231 Mbits/sec
[ 5] 6.00-7.00 sec 28.9 MBytes 242 Mbits/sec
[ 5] 7.00-8.00 sec 26.4 MBytes 222 Mbits/sec
[ 5] 8.00-9.00 sec 28.7 MBytes 241 Mbits/sec
[ 5] 9.00-10.00 sec 27.8 MBytes 233 Mbits/sec
[ 5] 10.00-11.00 sec 25.5 MBytes 214 Mbits/sec
[ 5] 11.00-12.00 sec 28.5 MBytes 239 Mbits/sec
[ 5] 12.00-13.00 sec 28.9 MBytes 242 Mbits/sec
[ 5] 13.00-14.00 sec 28.8 MBytes 242 Mbits/sec
^C[ 5] 14.00-14.39 sec 12.5 MBytes 270 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-14.39 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-14.39 sec 403 MBytes 235 Mbits/sec receiver
iperf3: interrupt - the client has terminated
$ iperf3 -c 64:ff9b::91.224.149.159
Connecting to host 64:ff9b::91.224.149.159, port 5201
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 55624 connected to 64:ff9b::5be0:959f port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 3.58 MBytes 30.1 Mbits/sec 0 187 KBytes
[ 5] 1.00-2.00 sec 2.70 MBytes 22.6 Mbits/sec 0 237 KBytes
[ 5] 2.00-3.00 sec 2.70 MBytes 22.6 Mbits/sec 0 266 KBytes
[ 5] 3.00-4.00 sec 2.76 MBytes 23.1 Mbits/sec 0 266 KBytes
[ 5] 4.00-5.00 sec 2.94 MBytes 24.7 Mbits/sec 0 301 KBytes
[ 5] 5.00-6.00 sec 2.70 MBytes 22.6 Mbits/sec 0 342 KBytes
[ 5] 6.00-7.00 sec 3.06 MBytes 25.7 Mbits/sec 0 381 KBytes
[ 5] 7.00-8.00 sec 2.51 MBytes 21.1 Mbits/sec 0 431 KBytes
[ 5] 8.00-9.00 sec 2.76 MBytes 23.1 Mbits/sec 0 516 KBytes
[ 5] 9.00-10.00 sec 3.29 MBytes 27.6 Mbits/sec 0 586 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 29.0 MBytes 24.3 Mbits/sec 0 sender
[ 5] 0.00-10.10 sec 26.9 MBytes 22.3 Mbits/sec receiver
iperf Done.
$ iperf3 -c 64:ff9b::91.224.149.159 --reverse
Connecting to host 64:ff9b::91.224.149.159, port 5201
Reverse mode, remote host 64:ff9b::91.224.149.159 is sending
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 45650 connected to 64:ff9b::5be0:959f port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 2.55 MBytes 21.4 Mbits/sec
[ 5] 1.00-2.00 sec 2.70 MBytes 22.6 Mbits/sec
[ 5] 2.00-3.00 sec 2.69 MBytes 22.6 Mbits/sec
[ 5] 3.00-4.00 sec 2.70 MBytes 22.6 Mbits/sec
[ 5] 4.00-5.00 sec 2.56 MBytes 21.5 Mbits/sec
[ 5] 5.00-6.00 sec 2.81 MBytes 23.6 Mbits/sec
[ 5] 6.00-7.00 sec 2.69 MBytes 22.6 Mbits/sec
[ 5] 7.00-8.00 sec 2.70 MBytes 22.6 Mbits/sec
[ 5] 8.00-9.00 sec 2.69 MBytes 22.6 Mbits/sec
[ 5] 9.00-10.00 sec 2.64 MBytes 22.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.11 sec 30.0 MBytes 24.9 Mbits/sec 29 sender
[ 5] 0.00-10.00 sec 26.7 MBytes 22.4 Mbits/sec receiver
iperf Done
$ iperf3 -c 2a03:7220:8081:9f00::1 -t 120 --congestion bbr
Connecting to host 2a03:7220:8081:9f00::1, port 5201
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 52478 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 24.4 MBytes 204 Mbits/sec 0 1.11 MBytes
[ 5] 1.00-2.00 sec 26.2 MBytes 220 Mbits/sec 0 1.20 MBytes
[ 5] 2.00-3.00 sec 23.8 MBytes 199 Mbits/sec 0 1.08 MBytes
[ 5] 3.00-4.00 sec 26.2 MBytes 220 Mbits/sec 0 1.26 MBytes
[ 5] 4.00-5.00 sec 22.5 MBytes 189 Mbits/sec 0 1.24 MBytes
[ 5] 5.00-6.00 sec 25.0 MBytes 210 Mbits/sec 10 1.14 MBytes
[ 5] 6.00-7.00 sec 25.0 MBytes 210 Mbits/sec 0 1.19 MBytes
[ 5] 7.00-8.00 sec 25.0 MBytes 210 Mbits/sec 0 1.18 MBytes
[ 5] 8.00-9.00 sec 25.0 MBytes 210 Mbits/sec 0 1.24 MBytes
[ 5] 9.00-10.00 sec 26.2 MBytes 220 Mbits/sec 0 1.23 MBytes
^C[ 5] 10.00-10.43 sec 5.00 MBytes 97.8 Mbits/sec 0 1.17 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.43 sec 254 MBytes 205 Mbits/sec 10 sender
[ 5] 0.00-10.43 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
$ iperf3 -c 2a03:7220:8081:9f00::1 -t 120 --reverse --congestion bbr
Connecting to host 2a03:7220:8081:9f00::1, port 5201
Reverse mode, remote host 2a03:7220:8081:9f00::1 is sending
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 41116 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 25.5 MBytes 213 Mbits/sec
[ 5] 1.00-2.00 sec 30.4 MBytes 256 Mbits/sec
[ 5] 2.00-3.00 sec 28.2 MBytes 237 Mbits/sec
[ 5] 3.00-4.00 sec 30.1 MBytes 253 Mbits/sec
[ 5] 4.00-5.00 sec 27.6 MBytes 232 Mbits/sec
[ 5] 5.00-6.00 sec 24.1 MBytes 203 Mbits/sec
[ 5] 6.00-7.00 sec 29.6 MBytes 248 Mbits/sec
[ 5] 7.00-8.00 sec 28.0 MBytes 235 Mbits/sec
[ 5] 8.00-9.00 sec 30.6 MBytes 257 Mbits/sec
^C[ 5] 9.00-9.54 sec 16.3 MBytes 254 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-9.54 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-9.54 sec 271 MBytes 238 Mbits/sec receiver
iperf3: interrupt - the client has terminated
$ mtr -bzwe6 pouzenc.fr
Start: 2025-07-28T13:18:42+0000
HOST: probe1 Loss% Snt Last Avg Best Wrst StDev
1. AS3215 naxos (2a01:cb08:xxxx:xxxx::1) 0.0% 10 0.6 0.7 0.5 0.8 0.1
2. AS3215 2a01cb08a00402150193025300760242.ipv6.abo.wanadoo.fr (2a01:cb08:a004:215:193:253:76:242) 0.0% 10 1.8 1.8 1.1 2.5 0.4
3. AS??? ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
4. AS??? 2a01:cfc4:0:400::3 40.0% 10 8.9 8.6 8.2 8.9 0.3
5. AS197422 mail.pouzenc.fr (2a03:7220:8081:9f00::1) 0.0% 10 18.2 18.2 17.6 19.0 0.4e]
$ iperf3 -c 2a03:7220:8081:9f00::1 -t 120 --parallel 4 --congestion bbr
Connecting to host 2a03:7220:8081:9f00::1, port 5201
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 40142 connected to 2a03:7220:8081:9f00::1 port 5201
[ 7] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 40146 connected to 2a03:7220:8081:9f00::1 port 5201
[ 9] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 40158 connected to 2a03:7220:8081:9f00::1 port 5201
[ 11] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 40164 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 8.88 MBytes 74.4 Mbits/sec 7 382 KBytes
[ 7] 0.00-1.00 sec 9.38 MBytes 78.6 Mbits/sec 9 379 KBytes
[ 9] 0.00-1.00 sec 18.0 MBytes 151 Mbits/sec 68 918 KBytes
[ 11] 0.00-1.00 sec 7.62 MBytes 63.9 Mbits/sec 3 371 KBytes
[SUM] 0.00-1.00 sec 43.9 MBytes 368 Mbits/sec 87
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 6.25 MBytes 52.4 Mbits/sec 38 365 KBytes
[ 7] 1.00-2.00 sec 7.50 MBytes 62.9 Mbits/sec 37 443 KBytes
[ 9] 1.00-2.00 sec 21.2 MBytes 178 Mbits/sec 270 1.21 MBytes
[ 11] 1.00-2.00 sec 7.50 MBytes 62.9 Mbits/sec 40 471 KBytes
[SUM] 1.00-2.00 sec 42.5 MBytes 357 Mbits/sec 385
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 6.25 MBytes 52.4 Mbits/sec 9 321 KBytes
[ 7] 2.00-3.00 sec 7.50 MBytes 62.9 Mbits/sec 13 399 KBytes
[ 9] 2.00-3.00 sec 23.8 MBytes 199 Mbits/sec 24 1.05 MBytes
[ 11] 2.00-3.00 sec 7.50 MBytes 62.9 Mbits/sec 7 474 KBytes
[SUM] 2.00-3.00 sec 45.0 MBytes 377 Mbits/sec 53
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-4.00 sec 6.25 MBytes 52.4 Mbits/sec 35 271 KBytes
[ 7] 3.00-4.00 sec 7.50 MBytes 62.9 Mbits/sec 35 424 KBytes
[ 9] 3.00-4.00 sec 21.2 MBytes 178 Mbits/sec 34 1.25 MBytes
[ 11] 3.00-4.00 sec 7.50 MBytes 62.9 Mbits/sec 34 407 KBytes
[SUM] 3.00-4.00 sec 42.5 MBytes 357 Mbits/sec 138
^C- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 4.00-4.96 sec 3.75 MBytes 32.7 Mbits/sec 7 220 KBytes
[ 7] 4.00-4.96 sec 8.75 MBytes 76.4 Mbits/sec 36 544 KBytes
[ 9] 4.00-4.96 sec 22.5 MBytes 196 Mbits/sec 161 1.31 MBytes
[ 11] 4.00-4.96 sec 6.25 MBytes 54.5 Mbits/sec 19 388 KBytes
[SUM] 4.00-4.96 sec 41.2 MBytes 360 Mbits/sec 223
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-4.96 sec 31.4 MBytes 53.0 Mbits/sec 96 sender
[ 5] 0.00-4.96 sec 0.00 Bytes 0.00 bits/sec receiver
[ 7] 0.00-4.96 sec 40.6 MBytes 68.7 Mbits/sec 130 sender
[ 7] 0.00-4.96 sec 0.00 Bytes 0.00 bits/sec receiver
[ 9] 0.00-4.96 sec 107 MBytes 180 Mbits/sec 557 sender
[ 9] 0.00-4.96 sec 0.00 Bytes 0.00 bits/sec receiver
[ 11] 0.00-4.96 sec 36.4 MBytes 61.5 Mbits/sec 103 sender
[ 11] 0.00-4.96 sec 0.00 Bytes 0.00 bits/sec receiver
[SUM] 0.00-4.96 sec 215 MBytes 364 Mbits/sec 886 sender
[SUM] 0.00-4.96 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
$ iperf3 -c 2a03:7220:8081:9f00::1 -t 120 --parallel 4 --congestion bbr --reverse
Connecting to host 2a03:7220:8081:9f00::1, port 5201
Reverse mode, remote host 2a03:7220:8081:9f00::1 is sending
[ 5] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 36764 connected to 2a03:7220:8081:9f00::1 port 5201
[ 7] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 36768 connected to 2a03:7220:8081:9f00::1 port 5201
[ 9] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 36782 connected to 2a03:7220:8081:9f00::1 port 5201
[ 11] local 2a01:cb08:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 36790 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 8.54 MBytes 71.7 Mbits/sec
[ 7] 0.00-1.00 sec 13.9 MBytes 117 Mbits/sec
[ 9] 0.00-1.00 sec 9.55 MBytes 80.1 Mbits/sec
[ 11] 0.00-1.00 sec 11.7 MBytes 98.5 Mbits/sec
[SUM] 0.00-1.00 sec 43.8 MBytes 367 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 9.11 MBytes 76.4 Mbits/sec
[ 7] 1.00-2.00 sec 16.1 MBytes 135 Mbits/sec
[ 9] 1.00-2.00 sec 8.34 MBytes 70.0 Mbits/sec
[ 11] 1.00-2.00 sec 12.5 MBytes 105 Mbits/sec
[SUM] 1.00-2.00 sec 46.0 MBytes 386 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 7] 2.00-3.00 sec 16.3 MBytes 137 Mbits/sec
[ 9] 2.00-3.00 sec 8.57 MBytes 71.9 Mbits/sec
[ 11] 2.00-3.00 sec 12.6 MBytes 106 Mbits/sec
[SUM] 2.00-3.00 sec 46.5 MBytes 390 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-4.00 sec 8.90 MBytes 74.6 Mbits/sec
[ 7] 3.00-4.00 sec 15.6 MBytes 130 Mbits/sec
[ 9] 3.00-4.00 sec 7.37 MBytes 61.9 Mbits/sec
[ 11] 3.00-4.00 sec 12.1 MBytes 101 Mbits/sec
[SUM] 3.00-4.00 sec 43.9 MBytes 368 Mbits/sec
^C- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 4.00-4.64 sec 6.37 MBytes 83.4 Mbits/sec
[ 7] 4.00-4.64 sec 10.2 MBytes 133 Mbits/sec
[ 9] 4.00-4.64 sec 4.73 MBytes 61.9 Mbits/sec
[ 11] 4.00-4.64 sec 7.97 MBytes 104 Mbits/sec
[SUM] 4.00-4.64 sec 29.3 MBytes 383 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-4.64 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-4.64 sec 41.9 MBytes 75.8 Mbits/sec receiver
[ 7] 0.00-4.64 sec 0.00 Bytes 0.00 bits/sec sender
[ 7] 0.00-4.64 sec 72.1 MBytes 130 Mbits/sec receiver
[ 9] 0.00-4.64 sec 0.00 Bytes 0.00 bits/sec sender
[ 9] 0.00-4.64 sec 38.6 MBytes 69.7 Mbits/sec receiver
[ 11] 0.00-4.64 sec 0.00 Bytes 0.00 bits/sec sender
[ 11] 0.00-4.64 sec 56.9 MBytes 103 Mbits/sec receiver
[SUM] 0.00-4.64 sec 0.00 Bytes 0.00 bits/sec sender
[SUM] 0.00-4.64 sec 209 MBytes 379 Mbits/sec receiver
iperf3: interrupt - the client has terminated
Le débit de 5 Mb/s est mutualisé entre les deux PC (je me demandais si j'arriverais à un débit cumulé de 10 Mb/s, mais non).Le fait que tous les flux appartenant à la même classe de service soient bridés à 5Mbit/s met en évidence l'existence d'un policing par classe.
Là, c'est 2 PC derrière la même Livebox FTTH, je testerais depuis 2 livebox différentes.C'est un bon test : cela nous permettra de savoir où la QoS est appliquée (réseau fixe ou mobile).
$ iperf3 -c 2a03:7220:8081:9f00::1
Connecting to host 2a03:7220:8081:9f00::1, port 5201
[ 5] local 2a01:cb19:8e6a:1100:384e:71ff:fe10:fc87 port 48908 connected to 2a03:7220:8081:9f00::1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 17.0 MBytes 143 Mbits/sec 0 1.04 MBytes
[ 5] 1.00-2.00 sec 55.0 MBytes 461 Mbits/sec 0 3.13 MBytes
[ 5] 2.00-3.00 sec 70.0 MBytes 587 Mbits/sec 184 1.54 MBytes
[ 5] 3.00-4.00 sec 43.8 MBytes 367 Mbits/sec 0 1.65 MBytes
[ 5] 4.00-5.00 sec 45.0 MBytes 377 Mbits/sec 1 1.21 MBytes
[ 5] 5.00-6.00 sec 33.8 MBytes 283 Mbits/sec 0 1.30 MBytes
[ 5] 6.00-7.00 sec 35.0 MBytes 294 Mbits/sec 0 1.36 MBytes
[ 5] 7.00-8.00 sec 36.2 MBytes 304 Mbits/sec 0 1.40 MBytes
[ 5] 8.00-9.00 sec 38.8 MBytes 325 Mbits/sec 0 1.43 MBytes
[ 5] 9.00-10.00 sec 40.0 MBytes 336 Mbits/sec 0 1.45 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 414 MBytes 348 Mbits/sec 185 sender
[ 5] 0.00-10.04 sec 412 MBytes 344 Mbits/sec receiver
iperf Done.
Pas de bridage depuis la connexion FTTH Sosh, Livebox 5:
[...]
As-tu moyen de faire des tests sans la box, avec un routeur tiers ou l'ONT directement connecté à ta machine de test? Il faudra configurer un VLAN et des options DHCP spécifiques, ce n'est pas plug and play.
J'ai fusionné ton message avec le sujet dédié.
Client box 5G chez Orange et ayant des échanges avec des Livebox FTTH limité à 5 Mb/s, je pensais que c'était le côté mobile qui bridait, mais c'est visiblement peut-être coté FTTH.
Je suis preneur de plus de détails, notamment sur les champs DSCP de tes paquets.
Je constate un problème un peu similaire, avec également un shaping à 5 Mbit/s mais entre deux FTTH Orange.As-tu pu tester un tunnel Wireguard avec une Livebox des deux cotés ?
Voilà la situation :
- FTTH Orange 1 avec Livebox
- FTTH Orange 2 avec un routeur Mikrotik (pas de Livebox)
- Tunnel Wireguard entre deux machines, l'une derrière Orange 1, l'autre derrière Orange 2
A travers le tunnel Wireguard, j'observe du shaping à 5 Mbit/s dans le sens Orange 1 vers Orange 2. Pas de problème particulier dans l'autre sens.
En envoyant du trafic en direct de Orange 1 à Orange 2 sans tunnel Wireguard, pas de shaping constaté. Et entre des serveurs extérieurs et Orange 1 / Orange 2, aucun shaping non plus.
Le truc bizarre par rapport à ce que tu as pu observer, c'est qu'ici il n'y a pas de champ DSCP configuré. On a vérifié les règles QoS sur le Mikrotik (pour le DHCP), a priori elles ne s'appliquent pas au trafic Wireguard.
IPQoS cs0 cs0Depuis une machine chez moi, derrière une Livebox 5 fournie à l'occasion d'un contrat Sosh Fibre, à destination d'une machine virtuelle que j'administre, hébergée par Tetaneutral. IPv4 : pas de limite curieuse. IPv6 : 5,0 Mbit/s, point à la ligne. Vu de l'abonné que je suis, c'est le sens upload vers une machine sur internet.
Aussi, depuis 1 mois j'ai bcp de congestions vers le CDN de Twitch.
Contournement possible : en entré/sortie de ta machine pouzenc, forcer le CS0. Si tu sais faire cela et que cela fait sauter la limitation, on a une vraie piste.
Si un gourou Linux peut trouver le commandes tc à mettre, cela serait une aide.
LeVieux
51 5.368489 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 5 94 46034 → 443 [SYN] Seq=0 Win=64800 Len=0 MSS=1440 SACK_PERM TSval=1558071745 TSecr=0 WS=128
52 5.368549 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS0 94 443 → 46034 [SYN, ACK] Seq=0 Ack=1 Win=64260 Len=0 MSS=1440 SACK_PERM TSval=2624539501 TSecr=1558071745 WS=128
53 5.392006 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 5 86 46034 → 443 [ACK] Seq=1 Ack=1 Win=64896 Len=0 TSval=1558071767 TSecr=2624539501
54 5.392993 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TLSv1.2 5 603 Client Hello[Packet size limited during capture]
53 5.368395 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP CS0 94 46034 → 443 [SYN] Seq=0 Win=64800 Len=0 MSS=1440 SACK_PERM TSval=1558071745 TSecr=0 WS=128
54 5.390265 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS5 94 443 → 46034 [SYN, ACK] Seq=0 Ack=1 Win=64260 Len=0 MSS=1440 SACK_PERM TSval=2624539501 TSecr=1558071745 WS=128
55 5.390390 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP CS0 86 46034 → 443 [ACK] Seq=1 Ack=1 Win=64896 Len=0 TSval=1558071767 TSecr=2624539501
56 5.390938 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TLSv1.2 CS0 603 Client Hello[Packet size limited during capture]
77132 29.269959 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 4 94 34110 → 22 [SYN] Seq=0 Win=64800 Len=0 MSS=1440 SACK_PERM TSval=1558095646 TSecr=0 WS=128
77133 29.290403 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS5 94 22 → 34110 [SYN, ACK] Seq=0 Ack=1 Win=64260 Len=0 MSS=1440 SACK_PERM TSval=2624563402 TSecr=1558095646 WS=128
77134 29.290515 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 4 86 34110 → 22 [ACK] Seq=1 Ack=1 Win=64896 Len=0 TSval=1558095667 TSecr=2624563402
77135 29.291195 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 SSHv2 4 119 Client: Protocol (SSH-2.0-Op)
77136 29.312950 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS5 86 22 → 34110 [ACK] Seq=1 Ack=34 Win=64256 Len=0 TSval=2624563425 TSecr=1558095667
77137 29.321268 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e SSHv2 CS5 126 Server: Protocol (SSH-2.0-Op)
77138 29.321331 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 4 86 34110 → 22 [ACK] Seq=34 Ack=41 Win=64896 Len=0 TSval=1558095697 TSecr=2624563433
125880 29.269425 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 5 94 34110 → 22 [SYN] Seq=0 Win=64800 Len=0 MSS=1440 SACK_PERM TSval=1558095646 TSecr=0 WS=128
125881 29.269486 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS0 94 22 → 34110 [SYN, ACK] Seq=0 Ack=1 Win=64260 Len=0 MSS=1440 SACK_PERM TSval=2624563402 TSecr=1558095646 WS=128
125882 29.291899 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 5 86 34110 → 22 [ACK] Seq=1 Ack=1 Win=64896 Len=0 TSval=1558095667 TSecr=2624563402
125883 29.291900 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 SSHv2 5 119 Client: Protocol (SSH-2.0-Op)
125884 29.291940 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS0 86 22 → 34110 [ACK] Seq=1 Ack=34 Win=64256 Len=0 TSval=2624563425 TSecr=1558095667
125885 29.300307 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e SSHv2 CS0 126 Server: Protocol (SSH-2.0-Op)
125886 29.322392 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e 2a03:7220:8081:9f00::1 TCP 5 86 34110 → 22 [ACK] Seq=34 Ack=41 Win=64896 Len=0 TSval=1558095697 TSecr=2624563433
125887 29.322411 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e SSHv2 CS0 1222 Key Exchange Init[Packet size limited during capture]
No. Time Source Destination Proto. DSCP Info
2988 14.594550 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS0 5201 → 55496 [RST, ACK] Seq=1 Ack=2626130 Win=361984 Len=0 TSval=2624548727 TSecr=1558080889
2989 14.594784 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP CS0 5201 → 55488 [PSH, ACK] Seq=5 Ack=166 Win=64256 Len=1 TSval=2624548728 TSecr=1558080890
2991 14.597031 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP 5 5201 → 55496 [RST] Seq=1 Win=0 Len=0
2993 14.599494 2a03:7220:8081:9f00::1 2a01:cb15:82c5:2600:20e:c6ff:fe6a:b41e TCP 5 5201 → 55496 [RST] Seq=1 Win=0 Len=0
As-t'on des nouvelles côté IPv6 + DSCP + RBCI Orange ?
Je parle de : "Je fais regarder à l'interco IPv6 en bordure du RBCI, mais là y'a un truc sans même parler ce cela. LeVieux"
Ce matin, avec mon Galaxy s7 équipé d'Android 7.0 et un abonnement Bouygues Telecom, j'ai une limitation à 5 secondes. Je ne sais pas si c'est lié au téléphone qui réalise une double NAT et que je viens d'upgrader sous Android 7.0 ou si c'est lié à une modification du NAT sur le réseau Bouygues Telecom.
Voici une capture réalisée coté client et le paramètre ClientAliveInterval 14:
La connexion se termine à la 5ᵉ seconde. Je laisse ensuite le terminal 9 secondes sans rien faire. À la 14ᵉ seconde, on voit un échange TCP qui est rejeté par le NAT, qui a donc déjà libéré les ressources : il répond RESET.
C'est la même chose pour les deux paquets émis à la 19ᵉ seconde :
(https://lafibre.info/images/wireshark/201706_ssh_cgnat_clientaliveinterval_14sec.png)
Voici la capture Wireshark complète, avec ClientAliveInterval 14:
201706_ssh_cgnat_clientaliveinterval_14sec.pcapng.gz (https://lafibre.info/images/wireshark/201706_ssh_cgnat_clientaliveinterval_14sec.pcapng.gz)
Voici la capture Wireshark complète, avec ClientAliveInterval 4:
201706_ssh_cgnat_clientaliveinterval_4sec.pcapng.gz (https://lafibre.info/images/wireshark/201706_ssh_cgnat_clientaliveinterval_4sec.pcapng.gz)
Je ne fais rien, mais la communication est forcé de rester ouverte par des échanges toutes les 4 secondes
Note : Il est possible de lire les fichiers .pcapng.gz directement avec Wireshark.
# Connexions sortantes TCP
/usr/sbin/iptables -t mangle -A OUTPUT -p tcp --dport 53:32767 -j DSCP --set-dscp 10
/usr/sbin/ip6tables -t mangle -A OUTPUT -p tcp --dport 53:32767 -j DSCP --set-dscp 10
# Connexions sortantes UDP
/usr/sbin/iptables -t mangle -A OUTPUT -p udp --dport 53 -j DSCP --set-dscp 10
/usr/sbin/ip6tables -t mangle -A OUTPUT -p udp --dport 53 -j DSCP --set-dscp 10
# Connexions entrantes TCP
/usr/sbin/iptables -t mangle -A OUTPUT -p tcp --sport 53:32767 -j DSCP --set-dscp 10
/usr/sbin/ip6tables -t mangle -A OUTPUT -p tcp --sport 53:32767 -j DSCP --set-dscp 10
# Connexions entrantes UDP
/usr/sbin/iptables -t mangle -A OUTPUT -p udp --sport 53 -j DSCP --set-dscp 10
/usr/sbin/ip6tables -t mangle -A OUTPUT -p udp --sport 53 -j DSCP --set-dscp 10
/usr/sbin/iptables -t mangle -A OUTPUT -p udp --sport 8080 -j DSCP --set-dscp 10
/usr/sbin/ip6tables -t mangle -A OUTPUT -p udp --sport 8080 -j DSCP --set-dscp 10
iperf3 -c 10.0.0.1 -b 10000000 -u -t infOn observe bien la saturation des 5mbpstcpdump -ni eth0 port 51820 -vvvCôté routeur fibre: tcpdump -ni eth0.832 port 51820 -vvviperf3 -c 10.0.0.1 -b 100000 -u -t infRaspberry Pi -> Livebox S -> Backbone Orange -> Routeur fibre18:44:48.700989 IP (tos 0x0, ttl 64, id 30523, offset 0, flags [none], proto UDP (17), length 1468)
192.168.6.100.43484 > yyy.51820: [bad udp cksum 0xd2a2 -> 0xb14e!] UDP, length 1440Et en entrée du réseau Orange de l'autre côté on reçois:19:44:48.734173 IP (tos 0x88, ttl 57, id 30523, offset 0, flags [none], proto UDP (17), length 1468)
xxx.43484 > yyy.51820: [udp sum ok] UDP, length 1440On observe un ajout de 0x88iperf3 -c 10.0.0.1 -b 100000 -u -t inf -RRouteur Fibre -> Backbone Orange -> Livebox S -> Raspberry Pi19:50:21.081316 IP (tos 0x0, ttl 63, id 21910, offset 0, flags [none], proto UDP (17), length 1468)
yyy.51820 > xxx.43484: [bad udp cksum 0x2abe -> 0x2aea!] UDP, length 1440Et de l'autre côté, en entrée du Raspberry on reçois:18:50:21.085153 IP (tos 0x80, ttl 56, id 21910, offset 0, flags [none], proto UDP (17), length 1468)
yyy.51820 > 192.168.6.100.43484: [udp sum ok] UDP, length 1440On observe un ajout de 0x8018:59:52.314264 IP (tos 0x0, ttl 64, id 43019, offset 0, flags [DF], proto UDP (17), length 1476)
192.168.6.100.59112 > yyy.5201: UDP, length 1448Et en entrée du réseau Orange de l'autre côté on reçois:19:59:52.319163 IP (tos 0x0, ttl 57, id 43019, offset 0, flags [DF], proto UDP (17), length 1476)
xxx.59112 > yyy.5201: UDP, length 1448On observe que la TOS n'a pas changéeroot@Raspberry-Pi-Appart:~# tcpdump -ni eth0 port 51820 -v
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:44:39.073214 IP (tos 0x88, ttl 64, id 42973, offset 0, flags [none], proto UDP (17), length 176)
192.168.6.100.57306 > yyy.51820: UDP, length 148
14:44:39.083369 IP (tos 0x80, ttl 56, id 37129, offset 0, flags [none], proto UDP (17), length 120)
yyy.51820 > 192.168.6.100.57306: UDP, length 92
14:44:39.086116 IP (tos 0x0, ttl 64, id 42976, offset 0, flags [none], proto UDP (17), length 60)
192.168.6.100.57306 > yyy.51820: UDP, length 32
14:45:36.710332 IP (tos 0x0, ttl 64, id 51364, offset 0, flags [none], proto UDP (17), length 156)
192.168.6.100.57306 > yyy.51820: UDP, length 128
14:45:36.725424 IP (tos 0x80, ttl 56, id 40030, offset 0, flags [none], proto UDP (17), length 156)
yyy.51820 > 192.168.6.100.57306: UDP, length 128root@Home-Router-VPS:~# tcpdump -ni eth0.832 port 51820 and host xxx -v
tcpdump: listening on eth0.832, link-type EN10MB (Ethernet), snapshot length 262144 bytes
15:44:39.076520 IP (tos 0x0, ttl 57, id 42973, offset 0, flags [none], proto UDP (17), length 176)
xxx.57306 > yyy.51820: UDP, length 148
15:44:39.077199 IP (tos 0x88, ttl 63, id 37129, offset 0, flags [none], proto UDP (17), length 120)
yyy.51820 > xxx.57306: UDP, length 92
15:44:39.089893 IP (tos 0x88, ttl 57, id 42976, offset 0, flags [none], proto UDP (17), length 60)
xxx.57306 > yyy.51820: UDP, length 32
15:45:36.718909 IP (tos 0x88, ttl 57, id 51364, offset 0, flags [none], proto UDP (17), length 156)
xxx.57306 > yyy.51820: UDP, length 128
15:45:36.719345 IP (tos 0x0, ttl 63, id 40030, offset 0, flags [none], proto UDP (17), length 156)
yyy.51820 > xxx.57306: UDP, length 128nft add table netdev filter
nft add chain netdev filter egress { type filter hook egress device eth0.832 priority 0; }
nft add rule netdev filter egress udp sport 51820 ip dscp set 0Le remarquage de la CoS / DSCP à ZERO pour tout ce qui ne concerne PAS l'établissement de la session est IMPERATIF si vous avez un routeur autre que LB
Quel serait l'intérêt d'avoir les paquets concernant l'établissement de la session (TCP handshake je suppose, mais potentiellement les premiers paquets d'établissement d'un tunnel wireguard aussi) à une CoS != 0 ?Je suis en phase, aucun et il faut tout retaguer ce qui vient du LAN à ZERO ... Mais j'ai pas regardé les dernière RFC sur les notions de QoS. Si cela se trouve y'a des catégories par défaut qui ont été préconisée.
Éviter la perte de paquet d'un SYN et gagner quelques ms ? À mon sens, autant marquer tout le trafic venant du LAN en CoS 0 et ne pas s'embêter à sur-optimiser.
J'ai fait faire des tests en interne Orange avec des LB et des tunnels WireGuard :Si les Livebox remettent la CoS à 0, je pense que ce n'est pas le cas des Flybox 2 Wi-Fi 6 (box 5G).
- les LB remettent bien la CoS à 0 en sortant
- donc pas de limitation de débit dès que l'on est sur des LB (plusieurs combinaisons ont été validées) .
Hello
J'ai fait faire des tests en interne Orange avec des LB et des tunnels WireGuard :
- les LB remettent bien la CoS à 0 en sortant
- donc pas de limitation de débit dès que l'on est sur des LB (plusieurs combinaisons ont été validées) .
Le remarquage de la CoS / DSCP à ZERO pour tout ce qui ne concerne PAS l'établissement de la session est IMPERATIF si vous avez un routeur autre que LB
LeVieux
mais j'ai vu mes Mikrotik faire un peu de CS4 pendant la phase de négo.Bonjour
All handshake packets have a DSCP value of 0x88 (AF41), so that these packets are the least likely to be dropped
C'est volontaire de WireGuard qui tague ses paquets en VOIX pour "s'assurer que cela ne soit pas jeté par le réseau".C'est pour les handshake, les data sont concernées ?Je suis en train de me fournir la spec des LB.
Donc même si WG repasse en DSCP 0 après, tout est remarqué par la LB en DSCP AF41 (CS4 donc) avec la limitation constatée.
Non, c'est pas un bug (au sens mauvais codage)
C'est une question de gestion de la QoS et à une philosophie qui est que sur un flux, il est d'une COS unique et consistante tout au long de son existence.
Le "je me déguise en VoIP pour le 3 way HandShake puis je repasse en CS0", ben ... dans notre vision c'est pas bon ... et on garde la QoS négociée dans le 3 way HandShake .... donc on hérite de la limitation de débit des classes prioritaires .. limitations établies pour tout un tas de raisons reglementaires (coucou @ARCEP) et sécurité (coucou @ANSSI) ..
ca veut donc dire que ce n'est pas stateless donc, y'a un tracking des connections meme en IPv6 , la décision n'est pas paquet par paquet ? donc une inspection pour savoir si c'est de l'UDP ou du TCP , etc ?
Inspection, le terme est un peu fort :)
Comme, tu as un firewall dans les LB qui est statefull , à l'ouverture du flux la gestion DSCP est mise en place (que ce soit TCP ou UDP, en Ipv4 ou IPv6).
Le reste du flux n'est plus regardé et traité directement par le hard. Et donc sans changement du DSCP.
Et c'est justement le soucis, comme c'est pas traité paquet par paquet mais flux par flux pour atteindre les perfs, les changement de COS sur un flux sont pas vu ..
Voici la réponse du chef de projet de CPE FTTH Sagem le 31 juillet 2006 :
Explication des performances non satisfaisantes vues sur un téléchargement HTTP.
Fonctionnement des Accélérateurs:
Lorsque l'utilisateur lance un téléchargement TCP/UDP, les premiers paquets qui sont responsables de l'établissement de la connexion passent par le CPU(chemin classique :NAT/FIREWALL/policies...), une fois le lien est établie tous les prochains paquets passeront par les accélérateurs (chemin rapide). Les accélérateurs n'analyse que l'entête TCP/IP du paquet et pas son contenue.
Cas d'un transfert de texte par MSN MESSENGER:
Lorsque un client utilise MSN MESSENGER pour chatter se dernier se connecte sur le port 1863/TCP à un serveur de chez Microsoft. dans ce cas le Nat est traversé proprement et le message retour est bien identifié par le Firewall du F@st3374.
Cas d'un transfert de vidéo par MSN MESSENGER :
Les problèmes arrivent lorsque le client demande une connexion vocale/video. Dans ce cas, MSN MESSENGER va demander au serveur de choisir un autre port pour faire passer le flux vidéo. Et le problème c'est que ce port est choisie au hasard entre le port TCP/9000 et TCP/65535. Pour que le flux
vidéo provenant du serveur soit identifier par le firewall du F@st3374 et qu'il soit forwardé correctement, tous les paquets msn( TCP et destPort/srcPort = 1863) passeront par une fonction de traitement supplèmentaire qui permet d'analyser les contenues des paquets en plus de leurs entêtes TCP/IP.
Dans ce cas le flux vidéo passera par les accélérateurs(chemin rapide) mais tous les paquets msn(TCP-port =1863) passeront par le CPU(chemin classique).
Cas du port 80:
Si pour une raison ou pour une autre le MSN MESSENGER n'arrive pas à se connecter au serveur Microsoft sur le port 1863 alors il retombe sur le port 80 en faisant du HTTP tunneling. Affin de supporter ce cas bien particulier le F@st3374 fait passer touts les paquets HTTP(port 80) par le même chemin par lequel passe les paquets msn (port 1863).
Solution immédiate :
Ne supporter que le chat en mode texte dans le cas où le client MSN MESSENGER fait du backup sur le port 80. Et si dans ce cas particulier l'utilisateur veut faire du Chat en mode vidéo il doit installer UPNP sur son poste qui va s'en charger de communiquer avec le Firewall du F@st3374 pour ouvrir les bons ports.
Je reste à votre disposition pour tout éclaircissement supplèmentaire.
Cordialement.
A noter que le même phénomène est utilisé sur le port 21 pour le FTP.
Note : Les box équipées de Watchdog reboot lors d'un transfert HTTP à 20 Mb/s ou plus, le CPU étant utilisé à 100%, le watchdog est là pour rétablir la situation via un reboot
du coup si on désactive le firewall ca regle le souci ?! ;)
C'est quand même assez moyen ce genre de traitement... Les autres FAI font pareil ?Ca c'est un choix d'ingénierie de bout en bout.
Concernant le débit, tout ce qui est marqué autre que CS0 est limité à 5 Mb/s ou y'a des exceptions ? Genre en EF par exemple ?
Ca c'est un choix d'ingénierie de bout en bout.
D'autres FAI considèrent que tout trafic qui vient du client est remarqué en CS0. Donc aucune priorisation TV ou VoIP.
Pour des boxe en mode BRIDGE, on ne sait pas ce qui est fait sur le DSCP coté WAN.
Tout est une question de design de bout en bout. Et là, chaque FAI (petit ou gros) a son propre design, y'a pas de bonnes ou mauvaises règles.
Y'a 4 classes je pense sur le réseau orange RBCI, plus la classe est prioritaire, plus le débit est limité à l'accès.
Faudrait que je retrouve les 4 classes et les débits associés, mais je crois que des gens ici l'avaient trouvé par test.
Mais retenir : CS0 PARTOUT et vous aurez accès à 100% du débit (en gestion égalitaire de la congestion avec les autres demandeurs) ...
J'utilise IPQoS cs0 depuis quelques temps sinon c'est bridé,Je viens de passer au XGS-PON côté Orange, le paramètre n'est actuellement pas présent (dans /etc/ssh/sshd_config) sur mon serveur linux côté Orange et en testant je n'ai pas eu le bridage, donc il y a peut être eu une modif côté NRO/PM (je n'ai pas pensé à faire le test quand j'avais encore la LB6, lorsque mon PM à été migré au XGSPON), de la Livebox 7 ou peut être sur mon routeur j'ai touché quelque chose.
Je suis en IPV4 only,
Transferts de fichier via SSH, FTTH Bouygues récupère des fichiers sur FTTH Orange :
Si le paramètre IPQoS cs0 n'est pas présent, je plafonne à environ 5 mbits d'upload
Si j'utilise tailscale qui fonctionne avec wireguard, je n'ai plus la limite, la seule limite c'est le CPU de la machine, je montes à 70-80Mo/s d'upload
Si le paramètre IPQoS cs0 est présent, la connexion en direct n'est plus bridée, j'atteins bien les 1 Gbits d'upload,
J'ai mal compris de toute évidence, je pensais que ces règles émanaient de l'ACREP/ANSSI.Je m'exprime à titre personnel.
Qui ? Source ? Cela semble quand même assez étonnant.
En FTTH, c'est presque inutile et certains opérateurs ne priorisent pas la voix de la box sur leur propre réseau.
Je viens de faire quelques tests encore :
Le remarquage du trafic WireGuard en DSCP 18 ne se fait qu'à l'intérieur du RBCI, en effet, je viens de monter un tunnel vers un serveur OVH que je possède et je n'ai pas de problème de débit et tout arrive bien en DSCP 0 avec mon forfait prioritaire.
Donc j'ai concentré mes tests à l'intérieur du RBCI, j'ai pris deux IPs de probes Atlas dans l'AS3215 et j'ai fait des ping et ping6, et bingo, en IPv4 je reçois les réponses taguées en DSCP 18 aussi ! Et en IPv6 les réponses arrivent taguées en DSCP 40 (CS5)
Si je me mets en partage de connexion sur ma SIM Sosh 150 Go 5G, les réponses aux ping et ping6 vers les mêmes IPs sont en DSCP 0 !
Si je me mets en Wi-Fi sur ma Livebox 7, les réponses aux ping et ping6 vers les mêmes IPs sont également en DSCP 0
Si quelqu'un d'autre qui possède le même forfait Orange 180 Go 5G+ peut faire des tests de son côté pour valider la thèse ça serait cool :)
À noter aussi que si je désactive la 5G SA dans les paramètres de l'iPhone ça ne change rien, je reçois du DSCP 18/40 malgré tout... c'est vraiment la priorité le problème.
Et ce weekend je pense pouvoir tester avec un forfait Orange 5G+ mais non prioritaire (option SA activée dans l'espace client) mais je pense vraiment que c'est la priorité le problème.
Les IPs des sondes Atlas utilisées pour mes tests sont 92.135.37.151 et 2a01:cb19:9219:9000:c23f:d5ff:fe63:aa1
En espérant que quelqu'un chez Orange (@levieuxatorange ? :) ) veuille bien prendre ce problème à cœur, sinon je vais être obligé de changer de forfait pour un forfait classique sans priorité, mais j'ai pas envie :(
Merci !
En FTTH, c'est presque inutile et certains opérateurs ne priorisent pas la voix de la box sur leur propre réseau.En phase avec le "presque".
Il faut également remonter la demande à OpenSSH, non ?Oui ! effectivement, bien vu !
Chaque trois semaines, des centaines de correctifs dans le noyau Linux sont distribués, ils corrigent quoi ?
Il n'y a pas que des failles de sécurité qui sont corrigées. Il y a aussi des bugs qui peuvent vous impacter.
Je vais m'attarder sur un exemple précis de régression qui entraînait des période(s) de 200 millisecondes où le transfert réseau est interrompu, entraînant une baisse de débit moyen pouvant aller jusqu’à 10%, pour les connexions TCP impactées par cette violation de la RFC793 (https://tools.ietf.org/html/rfc793). Les RFC sont des documents décrivant les aspects et spécifications techniques d'Internet. Celle-ci date de 1981 et décrit le standard TCP (Transmission Control Protocol) que nous utilisons systématiquement sur Internet, au-dessus d'IPv4 ou d'IPv6. L'alternative possible à TCP est UDP.
Ce bug qui impactait tous les serveurs équipés d'un Linux récent a été découvert et corrigé par... Orange France.
J'ai vraiment été admiratif du travail des équipes d'Orange, qui consiste, quand il y a un bug, à ne pas se limiter à trouver un contournent, mais à chercher l'origine du bug dans le code et proposer un correctif au mainteneur du code en question, pour que le monde entier profite du correctif.
Concrètement pour Ubuntu, le 1er décembre 2020, le noyau 5.4.0-56-generic #62-Ubuntu SMP Mon Nov 23 19:20:19 UTC 2020 était déployé pour succéder au noyau 5.4.0-54-generic.
Le noyau 5.4.0-55-generic qui intègre plus de 1300 correctifs de bug n'a pas été publié, car la CVE-2020-4788 classée "medium" est arrivée pendant sa phase de validation de non régression. Le 5.4.0-56-generic intègre le 5.4.0-55-generic et rajoute la correction de la CVE-2020-4788.
Dans la liste des 1300 correctifs, il y a tcp: fix receive window update in tcp_add_backlog(), le bug trouvé et corrigé par Orange. On va voir ce qui se cache derrière, les impacts et pourquoi ce type de bug est complexe à trouver.
La régression, découverte par Orange en octobre 2020, était dans le fichier tcp_ipv4.c:tcp_add_backlog(). Non seulement cela pouvait dégrader les performances réseau dans certaines circonstances mais c'était également la source d'un bug dans netfilter, un pare-feu intégré au sein du noyau Linux. Le patch (bugfix) proposé par Orange a été backporté dans la branche stable du noyau Linux et intégré par les différentes distributions plus ou moins rapidement. Pour Ubuntu, il a été poussé à tous le 1er décembre 2020 avec des centaines d'autres correctifs, dont une faille de sécurité, c'est donc proposé comme une mise à jour de sécurité.
Voici quelques diapositives, publiées avec l'accord d'Orange, qui explique la problématique technique :
(https://lafibre.info/testdebit/ubuntu/202009_orange_regression_linux_tcp_receive_window_update_1.png)
(https://lafibre.info/testdebit/ubuntu/202009_orange_regression_linux_tcp_receive_window_update_2.png)
Détail technique du problème rencontré :
L’algorithme TCP a dans sa structure deux octets pour indiquer la taille de la fenêtre demandée, c'est-à-dire le nombre d'octets que le récepteur souhaite recevoir sans accusé de réception. Un émetteur n’a strictement pas le droit d’émettre un paquet excédant la RWIN indiquée par le récepteur, comme l’explique la RFC793 (https://tools.ietf.org/html/rfc793).
Dans certains cas spécifiques, quand plusieurs paramètres sont réunis, notamment quand le client a une RWIN en diminution forte, jusqu’à devenir nulle nous observons une violation flagrante de la RFC par le serveur qui va envoyer 10ko de payload excédant la RWIN. La diminution de la RWIN est un mécanisme minoritaire, mais fréquent, qui a plus de chances de se déclencher lorsque le débit client est fort, car en situation de débit plus faible, les mécanismes de contrôle de congestion côté serveur prennent le dessus.
Les 10 ko de données envoyés en violation de la RFC793 sont peu, mais suffisant pour placer les piles TCP client et serveur dans un état non souhaité / non prévu :
- Le client va droper ces paquets supplémentaires, faute de mémoire pour les stocker.
- Par la suite le client n’émet que des acquittements TCP avec une RWIN qui continue de diminuer pour devenir nulle.
- Lorsque de la place est de nouveau disponible dans sa mémoire, le client envoie un acquittement au serveur, avec une RWIN non nulle, mais inférieure aux 10ko excédentaires.
- Le serveur reçoit cet acquittement TCP lui indiquant qu’il peut envoyer des paquets... qu’il a déjà envoyé. Le serveur ne fait donc rien.
- Émetteurs et récepteur restent en attente pendant environ 200ms, avant un TLP (Tail Loss Probe) envoyée par le serveur qui fait redémarrer les échanges.
Impacts sur les performances :
Cette problématique peut se produire plusieurs fois dans une même connexion TCP utilisée pour un transfert d’un fichier de 50 Mo.
Les conséquences sont une ou des période(s) de 200 millisecondes où le transfert est interrompu, entraînant une baisse de débit moyen pouvant aller jusqu’à 10%, pour les connexions TCP impactées par cette régression.
Tous les opérateurs sont potentiellement affectés cette violation de la RFC793, en IPv4 comme en IPv6. Cette baisse de débit moyen de 10% concerne uniquement des tests réalisés dans de très bonnes conditions radio.
(https://lafibre.info/testdebit/ubuntu/202009_orange_regression_linux_tcp_receive_window_update_3.png)
(https://lafibre.info/testdebit/ubuntu/202009_orange_regression_linux_tcp_receive_window_update_4.png)
(https://lafibre.info/testdebit/ubuntu/202009_orange_regression_linux_tcp_receive_window_update_5.png)
Précision, ces diapositives ont été crées avant que le bug dans le code Linux soit identifié.
Le correctif, intitulé tcp: fix receive window update in tcp_add_backlog() est présent dans les changelog du noyau diffusé le 1er décembre 2020 :
- Changelog du noyau Linux 5.4.0-56 du 1er décembre 2020 (https://lafibre.info/testdebit/ubuntu/202012_orange_fix_regression_linux_tcp_receive_window_update_kernel_ubuntu_5.4.txt)
- Changelog du noyau Linux 5.8.0-31 du 1er décembre 2020 (https://lafibre.info/testdebit/ubuntu/202012_orange_fix_regression_linux_tcp_receive_window_update_kernel_ubuntu_5.8.txt)
On peut remercier Orange pour le travail.
Après, je me demande si le plus efficace n'est pas de passer par les experts Linux chez Orange.
J'ai fait encore d'autres tests ce matin :
Par contre si la communauté peux remonter à WireGuard que c'est "pas classe" de se déguiser en AF41 pour établir le tunnel ou au moins laisser le choix de ne PAS le faire, cela serait bien.
si qqun pouvait tester avec Tailscale voir si y'a le probleme aussi (c'est du wireguard en dessous mais pas le client officiel).Avec Tailscale, je n'étais plus bridé en débit par rapport à une connexion directe en SSH
Je suis de l'avis inverse, ce n'est "pas classe" de classifier tout le trafic à partir des premiers paquets ou la présence d'un seul paquet AF41. Ca devrait être stateless et "par paquet". Mais d'accord qu'on puisse le désactiver coté Wireguard.La il faudra laisser les experts en discuter, là vu la question ils vont de toutes les manières devoir s'y pencher en profondeur.
Il faudrait voir ce que disent les RFCs en détails, mais je serais prêt a parier que la notion de flux (ou meme de TCP ou UDP vu que ca peut être un autre proto L4) n'a rien a faire la. Ca devrait être du stateless L3 pur (IP pur) voir du L2 (avec mapping CoS), paquet par paquet.
Et quelle(s) raison(s) aurait eu Orange de classifier tout un flux sur quelques paquets ? je ne vois pas. On ne peut abuser du truc car au contraire on se retrouve pénaliser.
Retour de l'on côté,
À peu de chose près même setup que tvvmongeek.
Lien wireguard , les clients derrière livebox 5 ont un débit montant bloqué à 5Mbit/s.
Forcer la CoS sur un router (OpenWRT) permet de corriger le tir. Chose bien moins commode sur les différents clients windows/iOS/Android.
Oui ! effectivement, bien vu !
# sshd -T|grep -i qos
ipqos lowdelay throughputIPQoS Specifies the IPv4 type-of-service or DSCP class for
connections. Accepted values are af11, af12, af13, af21,
af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1,
cs2, cs3, cs4, cs5, cs6, cs7, ef, le, lowdelay,
throughput, reliability, a numeric value, or none to use
the operating system default. This option may take one or
two arguments, separated by whitespace. If one argument
is specified, it is used as the packet class
unconditionally. If two values are specified, the first
is automatically selected for interactive sessions and the
second for non-interactive sessions. The default is af21
(Low-Latency Data) for interactive sessions and cs1 (Lower
Effort) for non-interactive sessions.Bonjour,
Pour ce qui est de la question de bugreport côté wireguard,
bugreport de quoi ? y'a pas de bug a mon sens.
et y'a l'autre sujet sujet pour discuter pour savoir si c'est un bug ou pas.
J'ai fait quelques tests de mon côté et il semble que seule la réponse au handshake soit tag AF41, donc une règle côté serveur et c'est terminé, non ?
| Application | PHB | DSCP | RFC |
| Network Control | CS6 | 48 | RFC 2474[3] |
| VoIP Telephony | EF | 46 | RFC 3246[4] |
| Call Signaling | CS5 | 40 | RFC 2474[3] |
| Multimedia Conferencing | AF41 | 34 | RFC 2597[5] |
| Real-Time Interactive/TelePresence | CS4 | 32 | RFC 2474[3] |
| Multimedia Streaming | AF31 | 26 | RFC 2597[5] |
| Broadcast Video | CS3 | 24 | RFC 2474[3] |
| Low-Latency/transactional data | AF21 | 18 | RFC 2597[5] |
| Operations/administrations/management | CS2 | 16 | RFC 2474[3] |
| High-Troughput/Bulk Data | AF11 | 10 | RFC 2597[5] |
| Best Effort | DF | 0 | RFC 2474[3] |
| Low-Profit/Scavenger Data | CS1 | 8 | RFC 3662[6] |
@lpouzenc
Juste pour info, sur GrapheneOS wireguard ne fonctionne qu'en userspace (https://nitter.net/GrapheneOS/status/1656015374037524488).
#!/usr/sbin/nft -f
define if_internet = ens6
define port_wireguard = 5678
flush ruleset
table inet filter {
chain input { type filter hook input priority filter; policy accept; }
chain forward { type filter hook forward priority filter; policy accept; }
chain output {
type filter hook output priority filter; policy accept;
oifname $if_internet udp sport $port_wireguard ip dscp set cs0
}
}
Et la réaction du gars à propos de "voice" et 5mbit/s est : I'm assuming they classify AF41 as "voice"?
Ce qui en allant brièvement relire sur wikipedia en étant fatigué ce soir, est effectivement un peu fort de café vu d'un dev d'un protocole / outils de VPN probablement :
Application PHB DSCP RFC Network Control CS6 48 RFC 2474[3] VoIP Telephony EF 46 RFC 3246[4] Call Signaling CS5 40 RFC 2474[3] Multimedia Conferencing AF41 34 RFC 2597[5] Real-Time Interactive/TelePresence CS4 32 RFC 2474[3] Multimedia Streaming AF31 26 RFC 2597[5] Broadcast Video CS3 24 RFC 2474[3] Low-Latency/transactional data AF21 18 RFC 2597[5] Operations/administrations/management CS2 16 RFC 2474[3] High-Troughput/Bulk Data AF11 10 RFC 2597[5] Best Effort DF 0 RFC 2474[3] Low-Profit/Scavenger Data CS1 8 RFC 3662[6]
Ludo
A ma connaissance, AF41 n'est explicitement "normalisé" pour la voix/conf. Cisco et d'autres présentent des tableaux avec ca (que wikipédia a repris) mais dans la RFC rien n'est imposé.Coté Orange j'ai le sentiment que l'on a la même lecture : AF41 (et CS4 en général) c'est de la Voix / VISIO
Rien n’empêche de s'en servir pour wireguard. L'avantage d'AF41 "CS4 low drop" donc la plus prio, low drop des 4 classes utilisables pour du trafic applicatif. En gros ce qui a le plus de change de ne pas se perdre sans être 'prio systeme ou vitale".
AF41 a été utilisé pour du gaming aussi (meme si de nos jours ca ne sert plus trop hors LAN/WAN privé).
Re-bonjour,Bonjour
Plutôt un message pour @LeVieuxAtOrange :
Est-ce qu'il y a pu y avoir des avancées IPv6 pour :
- les tags DSCP qui ne sont pas forcés à CS0 au niveau des interco autre opérateurs -> Orange
- les tags DSCP apparemment forcés en autre que CS0 au niveau de (certaines?) livebox
Je force mes backups en ssh en IPv4 pour l'instant, pour ne pas tomber dans le cas 5mbit/s max en IPv6, qui se produit même si je mets tout bien en CS0 aux deux bouts (client ssh local, avant une livebox 6 et serveur ssh distant).
Merci,
Ludo