Auteur Sujet: Conseil routeur Wifi avec support Vlan  (Lu 31817 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 230
  • Paris (75)
Conseil routeur Wifi avec support Vlan
« Réponse #24 le: 20 avril 2013 à 23:12:30 »
d'apres la pub et differents tests, le routeur peut atteindre 800Mbps en NAT ipv4 mais avec le firmware d'origine qui contient de l’accélération matérielle.
avec OpenWRT on retombe a entre 300 et 400 environ (ca depend du sens de mesure) car a ce jour OpenWRT ne fait aucune accélération matérielle en NAT.

Le ticket #11779 sur le tracker d'OpenWRT donne plus de détail sur les perfs.

donc si le firmware d'origine ne supporte pas les VLAN faudrat se contenter de 400Mbps (ca me parait tres raisonnable quand meme...).

par contre y'a un bug connu pour les VLAN avec OpenWRT et le 4300: le #12550. A priori les vlan au dela de l'ID 128 ne fonctionnent pas correctement. donc attention le vlan 836 pour Free risque de pas marcher avec l'OpenWRT de base. peut-etre un autre firmware alternatif marcherait mieux genre dd-wrt , gargoyle ou tomato ? J'ai pas été voir ces 3 la donc je sais meme pas s'ils sont compatibles avec le 4300.

faut peut-être donc t'orienter vers un autre routeur offrant plus de choix de firmware par exemple.

Pilou42

  • Abonné Bbox fibre
  • *
  • Messages: 173
  • Feurs (42110)
Conseil routeur Wifi avec support Vlan
« Réponse #25 le: 20 avril 2013 à 23:52:29 »
comme on fait pas de NAT avec v6 justement tu pourras peut etre depasser 300 pour le traffic pas v4. faut voir si le coté Free est pur V6 ou pas. s'il faut encore faire du 6rd dans le routeur ca donnera pas grand chose niveau perf (mais y'aura plus de NAT pour ce traffic).
NAT ou pas, ça reste de l'IPV4 qui circule, donc il faudra bien une table de routage pour renvoyer au bon ordinateur, au lieu que ce soit des tables NAT, peut-être les infos IPV6 encapsulées permettent de rediriger sur le bon ordinateur, mais je ne suis pas sûr que ce soit encore bien optimisé (trop récent ?).

Citer
Je sais pas comment ils ont mesuré leur 300 mais ca me parait bien pour du NAT.
C'est peut-être bien pour du NAT, mais je télécharge certains fichiers à plus de 60 Mo/s, alors, moralement, ça m’embêtera toujours de savoir que je suis bridé par un appareil intermédiaire À MOI.

Pilou42

  • Abonné Bbox fibre
  • *
  • Messages: 173
  • Feurs (42110)
NAT en hard
« Réponse #26 le: 20 avril 2013 à 23:59:51 »
Tu peux détailler l'opération qui est accélérée?

Le NAT fait appel à des milliers de lignes de code C. C'est vraiment complexe!
Sans rentrer dans les détails, on peut simplement supposer que des puces sont dédiées à ça, ce qui libère des ressources pour le processeur qui doit s'occuper d'autres tâches (exactement de la même manière que l'accélération GPU pour les PC).

Le partage d'adresse IP, c'est à dire une même IP sur plusieurs PC, c'est faisable si tu es prêt à te salir les mains vraiment!
Même si c'est HS, le HS ne me dérange pas, et si tu as un lien qui me permet de comprendre le procédé, je suis intéressé, par curiosité. Pour l'instant, je ne vois pas comment on peut procéder (à part ne pas allumer les ordis en même temps)

Il n'y a pas "différents traitements logiciels" au pluriel, il y a un unique tunnel 6in4 qui d'un coté encapsule un paquet IPv6 dans de l'IPv4, et de l'autre coté ressort le paquet IPv6. C'est vraiment très simple, même simpliste.

Quand tu fais de l'IPv6, tu ne fais pas de NAT justement. Donc ça décharge le processeur.
Aussi simpliste soit-il, il faut une table de routage, et ça prend des ressources, et donc inévitablement, ça ralentit la connexion (sauf si le processeur arrive à suivre)

Pilou42

  • Abonné Bbox fibre
  • *
  • Messages: 173
  • Feurs (42110)
Conseil routeur Wifi avec support Vlan
« Réponse #27 le: 21 avril 2013 à 00:15:24 »
@kgersen: merci pour le lien vers les différents tickets. Effectivement, cette phrase:
Citer
There's no hardware NAT in any OpenWRT platform (so far)
du 1er ticket ne m'incite pas à utiliser ce firmware.
De la même manière, pour Android, malgré tout le bien qu'apporte CyanogenMod, ils ne peuvent pas lutter contre le code source fermé (Exynos notamment), et je préfère utiliser le code de Samsung, aussi buggué soit-il, au moins, je sais qu'il exploitera le matériel comme souhaité.
De plus, de la manière comme le ticket a été clôturé à plusieurs reprises, ça ne me paraît pas très sympa.

Pour le 2ème ticket, ça n'est pas rassurant non plus et me conforte dans l'idée d'utiliser le firmware développé par le constructeur. Si ce firmware ne supporte pas les Vlan, alors il faut que je me tourne vers un autre routeur.

En tout cas, merci pour toutes tes infos, qui m'ont permis d'apprendre certaines choses ! ;-)
Je vais continuer de rechercher.

  • Invité
NAT en hard
« Réponse #28 le: 21 avril 2013 à 02:14:41 »
Sans rentrer dans les détails, on peut simplement supposer que des puces sont dédiées à ça, ce qui libère des ressources pour le processeur qui doit s'occuper d'autres tâches (exactement de la même manière que l'accélération GPU pour les PC).
Pour le graphisme, je vois bien les opérations spécialisées assez simples utiles :
- pour recopier des bitmaps
- pour dessiner pleins de pixels
- faire des opérations vectorisées : transparences, convolutions...

Pour le NAPT, je ne vois pas quelles opérations spécialisées sont utiles. Donc intuitivement le pense que la puce dédiée peut être un CPU générique.

Même si c'est HS, le HS ne me dérange pas, et si tu as un lien qui me permet de comprendre le procédé, je suis intéressé, par curiosité. Pour l'instant, je ne vois pas comment on peut procéder (à part ne pas allumer les ordis en même temps)
Comme pour les serveurs virtuels avec partage d'IP de linux :
- même adresse IP
- même adresse Ethernet
- diffusion sur le lien : utiliser un hub ou utiliser une adresse Ethernet multicast
- plages de ports différentes entres les machines

Aussi simpliste soit-il, il faut une table de routage, et ça prend des ressources, et donc inévitablement, ça ralentit la connexion (sauf si le processeur arrive à suivre)
Il y a juste une route par défaut.

Je ne vois pas en quoi ça ralentirait quoi que ce soit.

  • Invité
Conseil routeur Wifi avec support Vlan
« Réponse #29 le: 21 avril 2013 à 02:45:22 »
si t'actives IPv6 t'auras du traffic qui fera pas de NAT
À la réflexion :
- si tu actives 6rd les paquets IPv6 ressortent en IPv4 avec l'adresse source IPv4 publique
- si tu actives le NAT, habituellement tous les paquets qui ressortent avec l'adresse source IPv4 publique passent par le NAT

Donc à cause du fonctionnement du 6rd, il y a un passage obligé pour chaque paquet IPv6 par la couche NAT, non?

Est-ce qu'il y a une astuce qui permet au 6in4 d'échapper au NAT?

vivien

  • Administrateur
  • *
  • Messages: 48 042
    • Twitter LaFibre.info
Conseil routeur Wifi avec support Vlan
« Réponse #30 le: 21 avril 2013 à 09:26:40 »
Pour répondre aux questions sur les accélérateurs :

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


Certains routeurs ont pour la même raison un débit très faible en IPv6, car on passe systématiquement par le CPU faute de circuits pour passer par les accélérateurs.

Un transfert avec IPv4 + Nat sera alors plus rapide.

Exemple concret : La neufbox v4 qui a un débit catastrophique en IPv6, le chipset Broadcom utilisé ne gérant pas IPv6 au niveau hard.

Pilou42

  • Abonné Bbox fibre
  • *
  • Messages: 173
  • Feurs (42110)
NAT en hard
« Réponse #31 le: 22 avril 2013 à 00:40:08 »
Il y a juste une route par défaut.

Je ne vois pas en quoi ça ralentirait quoi que ce soit.
L'IPV6 encapsulée dans de l'IPV4 nécessite un traitement, donc ça, d'une part ça ralentit. Ensuite, tu communiques avec une adresse IPV4, donc tu as bien besoin d'une table de routage, la NAT, 2ème ralentissement.

Après, on pourrait supposer que l'IPV6to4 permet d'éviter de faire de la NAT, mais je suppose que cette technologie est trop récente pour prévoir des translations d'adresses. Je pense que dans la Freebox (par exemple), on a un premier traitement d'IPV6 encapsulé dans de l'IPV4, et ensuite la NAT pour permettre aux paquets IPV4 d'aller sur la bonne machine.

Pilou42

  • Abonné Bbox fibre
  • *
  • Messages: 173
  • Feurs (42110)
Conseil routeur Wifi avec support Vlan
« Réponse #32 le: 22 avril 2013 à 00:43:56 »
Est-ce qu'il y a une astuce qui permet au 6in4 d'échapper au NAT?
Sûrement. Il suffit d'exploiter les informations de l'IPV6 pour distinguer les machines et ainsi faire des tables de routage. Mais est-ce que ça a été intégré dans le code du 6in4 ? On peut penser que cet algorithme est trop récent, mais comme je n'y connais rien, peut-être que je me trompe et je sous-estime le code...

  • Invité
NAT en hard
« Réponse #33 le: 22 avril 2013 à 04:56:22 »
Tu peux détailler l'opération qui est accélérée?

Le NAT fait appel à des milliers de lignes de code C. C'est vraiment complexe!
J'ai trouvé le document :
http://www.freescale.com/files/training_pdf/WBNR_FTF10_NET_F0817.pdf

Extrait :
Citer
Stateful control path requires 90% of the code and is used 10% of the time.
►Stateless data path requires just 10% of the code and is used 90% of the
time.
►This session focuses on how to accelerate the 10% of the code in the
stateless path to increase packet processing performance.
ApplicationData PathControl Path
NAPT5-tuple lookup, IP/Port/L2 modifyConnection setup/destroy, policy, ALG
Donc ils arrivent à séparer la partie "simple" et la partie compliquée du NAPT, sachant que la partie simple comprend quand même :
- rechercher dans une table à quelle "connexion" NAPTé le paquet correspond (si non correspondance, renvoi à la partie "compliquée")
- modifier un numéro de port et une adresse IP; mettre à jour le checksum
- indiquer que cette "connexion" a été utilisée récemment
- pour TCP : mettre à jour le statut de la connexion TCP en fonction des drapeaux TCP (notamment FIN, RST)

(cela bien sûr dans le cas le plus simple, quand aucun contrôle n'est effectué sur les données du TCP comme les numéros de séquences, etc.)

  • Invité
NAT en hard
« Réponse #34 le: 22 avril 2013 à 05:30:26 »
L'IPV6 encapsulée dans de l'IPV4 nécessite un traitement, donc ça, d'une part ça ralentit.
Oui, mais un traitement simple.

Ensuite, tu communiques avec une adresse IPV4, donc tu as bien besoin d'une table de routage, la NAT, 2ème ralentissement.
Oui, j'ai réalisé après coup que tout paquet IPv4 sortant avec va passer par le code NAT, par une connexion NAT de type générique dans ce cas c'est géré comme un protocole inconnu voir net/netfilter/nf_nat_proto_unknown.c

On doit logiquement avoir un triplet (6in4, IPv4 locale, IPv4 distante)
associé à tout paquet IPv6 (mais la plupart du temps on aura un seul triplet)

Mais ça reste assez lourd.

Il faut que j'analyse ça mieux, si j'y arrive.

Après, on pourrait supposer que l'IPV6to4
Attention, c'est du 6to4rd, pas du 6to4!

permet d'éviter de faire de la NAT, mais je suppose que cette technologie est trop récente pour prévoir des translations d'adresses. Je pense que dans la Freebox (par exemple), on a un premier traitement d'IPV6 encapsulé dans de l'IPV4, et ensuite la NAT pour permettre aux paquets IPV4 d'aller sur la bonne machine.
Tu veux dire que la NAT est utile ici? ???

Les paquets 6in4 sortants n'ont pas besoin de NAT. Je pense qu'ils passent pas la couche NAT, parce que linux est conçu pour que tout passe par la couche NAT, mais c'est contournable (je ne sais plus comment).

  • Invité
Table de routage dans la Freebox pour 6to4rd
« Réponse #35 le: 22 avril 2013 à 05:33:28 »
Sûrement. Il suffit d'exploiter les informations de l'IPV6 pour distinguer les machines et ainsi faire des tables de routage. Mais est-ce que ça a été intégré dans le code du 6in4 ? On peut penser que cet algorithme est trop récent, mais comme je n'y connais rien, peut-être que je me trompe et je sous-estime le code...
Il n'y a pas de table de routage, sauf les tables triviales IPv6 et IPv4 avec une route par défaut!

Le paquet 6in4 est directement envoyé à la bonne adresse IPv4 (sauf sur Freebox Revolution, où Free a réussi à casser le support IPv6).