Auteur Sujet: Orange: Débit limité à 5 Mb/s avec les flux DSCP 2 ou certains VPN  (Lu 9836 fois)

0 Membres et 1 Invité sur ce sujet

Max

  • Abonné Orange Fibre
  • *
  • Messages: 52
Merci LeVieux pour ta réponse :)

Je ne pense pas que le problème soit du côté Tetaneutral. Comme expliqué plus haut, j'ai exactement la même limitation en restant sur RBCI entre Orange Mobile (IPv6 via 464XLAT) et Orange FTTH, et je ne suis pas le seul, Vivien a expliqué avoir le même bridage entre une 5G Box Orange et un abonnement FTTH Orange...

vivien

  • Administrateur
  • *
  • Messages: 50 506
    • Bluesky LaFibre.info
Pour mon cas, les paquets sortent avec le DSCP par défaut de OpenSSH qui n'est pas zéro, mais le tag est modifié par le réseau (je n'ai pas le même tag au départ et à l'arrivée). Maintenant, cela ne me semble logique qu'entre certains parie du réseau le DSCP soit modifié. Je suis plus étonné par le fait qu'un trafic client ne soit pas re-tagué pour éviter qu'un client puisse priorises ses propres flux (que cela soit volontairement ou invonlontairement).

Tu as bien regardé le tag des acquittements TCP ? Dans mon cas, c'est vraiment sur le tag du paquet "SYN" (connexion initiée depuis le réseau mobile vers une ligne FTTH) puis des acquittements TCP qui fait que j'ai ou pas la limitation dans l'autre sens (FTTH => Mobile). C'est assez étrange que le tag des acquittements aillent entraîner une limite du flux dans l'autre sens (avec les données) à 5 Mbit/s.

lpouzenc

  • Abonné Sosh fibre
  • *
  • Messages: 9
  • Chambéry (73)
Merci pour les réponses !

@Vivien : tag et shaping selon le tag DSCP / CoS du sens retour : probablemetn que ça m'affecte, mais ce n'est pas moi qui controle le champ DSCP dans l'affaire. J'ai bien pu voir un gros minet que tous les paquets partent en CS0 des deux bouts, questions, réponses, SYN, tout sauf les RST finaux.

@LeVieuxAtOrange : Pour Tetaneutral et l'hypothèse où ils tagguent en CS5 : le monsieur BGP de cet FAI associatif, et ancien président est un ami avec qui on a (publiquement, sur leur Matrix) commencé à tracer ce problème de 5Mbit/s avant que je poste ici initialement.

Ils savent qu'ils n'ont aucune config qui va dans le sens de l'altération de paquets qu'ils routent (ADN de l'asso = Neutralité du Net). On a quand même vérifié tout ce qui nous est passé par la tête, on a tenté à destination d'un autre équipement sur leur réseau pour confirmer que la VM que j'ai chez eux ou l'infra de virtu n'est pas en cause. Il a vu les plafonnements à 5Mbit/s en traçant sur le routeur de bordure. Il a même été jusqu'à me donner rendez-vous tard le soir pour altérer temporairement les annonces BGP pour qu'on tente via plusieurs chemins : le nominal, via EuroFiber, via HurricaneElectrics et un troisième chemin dont j'ai un peu oublié les détails dans l'immédiat (je peux aller chercher les archives). Le shaping à 5.0Mbit/s est toujours là. Je lui ai signalé qu'ici on avait d'autres reportings connexes et qu'il y avait un lien avec le DSCP / CoS et ça n'a pas ouvert de nouvelles pistes malheuresement, sauf les captures aux deux bouts que j'ai faites pour vérifier que ça sort en CS0 dans mon cas.

Parallèlement, j'en suis à mon 5ème appel entrant de la part du support client. L'appel du jour s'est conclu avec "je vais essayer de voir avec mon responsable, je vous rappelle samedi", la personne est démunie d'options après avoir fait changer la box et vu qu'il n'y a pas de problèmes sur le domaine optique.

Le suspens devient insoutenable :D
Ludovic

lpouzenc

  • Abonné Sosh fibre
  • *
  • Messages: 9
  • Chambéry (73)
@levieuxatorange : J'avais manqué de lire une partie de ta réponse avant mon précédent message:

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

Je pense pouvoir construire la commande tc moi même (j'ai fais ça dans mes erreurs de jeunesses pour des liens radio...), mais le problème est que ... je suis déjà à l'objectif je crois : tous les paquets sortants de pouzenc.fr sont en CS0 sauf les RST en fin de flux.

Ou alors je comprends mal ce à quoi tu as pensé, dis-moi.

Je peux bien changer en CS0 en input sur pouzenc.fr mais comme je sais que c'est pas mon linux localement qui shape et que les paquets ne seront vu par aucun intermédiaire supplémentaire quand ils en sont là... je crains que ça soit vain. Tout l'art est de savoir où est l'équipement qui change "dans mon dos" les valeurs de CoS. Et ça semble pas chez TTN ni chez les opérateurs qu'il ont en peering/transit car on a essayé 3 routages possibles en suspendant des annonces BGP le temps des essais.

Ludovic

levieuxatorange

  • Expert Orange
  • Expert
  • *
  • Messages: 248
Re

Si tu prends la partie IPv6 entrante sur pouzenc, on voit que dès le 4ème Pkts, tu es en CoS 5 :

Le filtre wire shark : tcp.stream eq 2

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]

Et cela sur tout cet échange

Si on regarde la partie NUC sur le même échange (elles sont super tes captures !) on voit bien que tu reçois du CS05 dès le SYN/ACK. Et là c'est mort, la régulation va se mettre en place.

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]


Si on prend le stream 9 des deux coté, là c'est le NUC qui positionne des le SYN la CoS à 4
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

Et pouzenc, il fait des trucs encore plus exotiques :

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]

Y'a une grosse bataille dans les CoS  en tout cas..

Je fais regarder à l'interco IPv6 en bordure du RBCI, mais là y'a un truc sans même parler ce cela.

LeVieux

lpouzenc

  • Abonné Sosh fibre
  • *
  • Messages: 9
  • Chambéry (73)
> Je fais regarder à l'interco IPv6 en bordure du RBCI, mais là y'a un truc sans même parler ce cela.

Merci !

J'essaie de reprendre les cas que tu as regardé :
tcp.stream eq 2 :
- c'est initié depuis chez moi, avec la commande : $ wget -6qO - https://pouzenc.fr/ip.php
- l'IP en 2a01:c... c'est le nuc chez moi (Orange). L'IP en 2a03 c'est le serveur pouzenc.fr.

 Ma lecture (fausse ?) de la situation : si on regarde n'importe quel des 10 premiers paquets de ce flux, et qu'on regarde pour un même paquet donné une capture puis l'autre, il me semble qu'on constate que :
-  le nuc envoi en CS0
- pouzenc.fr reçoit en 0x14 si on prends les 8 bits incluant l'ECN (ce qui est "5" si on regarde les 6 bits de l'ECN mais pas CS5, ça peut être d'ailleurs un blague de conf sur un CLI d'un routeur type cisco sur le chemin ça !)
- pouzenc.fr réponds en CS0
- le nuc reçoit en CS5 (0xa0 en incluant les bits d'ECN)

Donc je suis d'accord avec :  on voit que dès le 4ème Pkts, tu es en CoS 5.
Et j'ajoute : en fait, oui même dès le premier paquet... et ce n'est pas "moi" (aucune de mes 2 linux d'extrémité) qui choisi cette valeur, elle est altérée sur le chemin malgré moi.

"elles sont super tes captures !" : j'ai juste passé bcp plus de temps que de raisonnable car grande vacances :D Merci.

"on voit bien que tu reçois du CS05 dès le SYN/ACK. Et là c'est mort, la régulation va se mettre en place.". Oui. Sauf que je ne choisi pas de faire ça, je subit ça. J'ai émis 100% (certes sauf les RST à la fin et j'ignore pourquoi c'est comme ça) des paquets en CS0 dans les deux sens et ils arrivent altérés dans les deux sens, et ça shape.

tcp.stream eq 9 :
- c'est initié depuis chez moi, avec la commande : $ rsync -e 'ssh -6' /dev/shm/rand100Mio.dat root@pouzenc.fr:/dev/shm/rand6.dat
- numéro du premier paquet dans la capture côté nuc : 77132

Là, effectivement, mon nuc emet avec la CoS 4 au début de la conversation, puis en CoS 2 au bout d'un moment (dès le paquet 77167, donc environ 30 paquets après le début de l'échange), inconnue du dissecteur de Wireshark. Ça je peux forcer pour que ça ne se produise pas, on devrait avoir la même chose que le stream eq 2 si je le fais (mais en port 22 et pas 443). On peut remarquer qu'un intermédiaire a forcé cette CoS 4 à une CoS 5, tout comme quand j'envoi en CS0, ça devient CoS 5.

"Et pouzenc, il fait des trucs encore plus exotiques :". Je dirai : pas tant. Pour moi, il se contente de toujours répondre en CS0 (il a l'IP en 2a03) lorsqu'il reçoit du nuc (2a01:c) des DSCP étonnants mais en fait toujours identiques à la valeur CoS5, quelque soit la valeur d'origine émise.

Edit : Cette affirmation pour moi se vérifie bien avec le filtre "(ipv6) && (ipv6.src == 2a03:7220:8081:9f00::1)" sur la capture *depuis-pouzenc.fr.pcap". Les seules exceptions sont un float de RST durant une commande iperf3, elles sont là :
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

La doc de ssh_config pour le paramètre IPQoS : Specifies the IPv4 type-of-service or DSCP class for connections. The default is af21 (Low-Latency Data) for interactive sessions and cs1 (Lower Effort) for non-interactive sessions. J'ai un peu du mal à faire les correspondances entre les valeurs acceptées dans la config et les valeurs qu'on lit uen fois décodé par Wireshark, mais tout le monde semble d'accord sur la valeur de CS0 en tout cas.

Le registre officeil des valeurs de ces champs DSCP pour IPv6 : https://www.iana.org/assignments/dscp-registry/dscp-registry.xhtml#dscp-registry-1

Merci pour le temps passé le nez dans les pcap...
Ludovic
« Modifié: Hier à 14:57:45 par lpouzenc »