LMW : Architecture des équipements Antoine FRABOULET antoine.fraboulet@insa-lyon.fr p. 1 Plan Introduction aux network processors Architecture des routeurs Commutation Quelques network processors p. 2
Processeur réseau Un processeur réseau (network processor) est un composant programmable dédié au traitement des paquets sur un réseau. Il est généralement composé d un processeur programmable, souvent spécialisé ainsi que de circuits dédiés au traitement des paquets. Il peut être constitué de diverses technologies: ASIC: Application Specific Integrated circuit ASIP: Application Specific Instruction Processor Co-processeur FPGA: Field Programmable Gate Array GPP: General Purpose Processor p. 3 Que fait un processeur réseau? On peut identifier quelques traitements clefs: Pattern matching (identification de motifs): identification de bit particuliers dans les champs d un paquet. Lookup (recherche par clef): action de recherche d une donnée dans une table indéxée par une clef. Calculs: checksum, encryption, decryption... Manipulation de données: fragmentation IP, re-assemblage, TTL... Gestion de file d attente: ordonnancement, stockages avant routage Contrôle: mise à jour des table de routage, analyses statistiques... p. 4
Problèmes dans les réseaux Les réseaux sont de plus en plus rapides multiplications des débits Les réseaux sont de plus en plus étendus multiplications du nombre de connexions La gestion du flux dans ces réseaux impose d avoir des équipement performants d interconnexion p. 5 Problèmes dans les réseaux Enjeux : la convergence voix/données les données représentent une grande partie du trafic la téléphonie (mobile) génère un trafic de plus en plus important (VoIP : Voice over IP) p. 6
Problèmes dans les réseaux Utilisation du GSM 50Mb/s 5 Mb/s 10 stations de base 12kb/s téléphone GSM appareil mobile station de base 100 mobiles p. 7 Problèmes dans les réseaux Mise en place de la convergence 50Gb/s 500 Mb/s 100 stations de base 1Mb/s UMTS voix données station de base 500 mobiles p. 8
Interventions des processeurs réseaux Principalement aux niveaux... 5 : session 4 : transport, contrôle de flux 3 : routage 2 : liaison 1 : physique p. 9 Plan Introduction aux network processors Architecture des routeurs Commutation Quelques network processors p. 10
Conception de routeurs Ensemble de ports d entrées/sorties Aiguillage entre les entrées et les sorties Gestion de la congestion p. 11 Conception de routeurs Port d entrée Matrice de commutation Port de sortie Interconnexion Port d entrée Processeur de routage Port de sortie Architecture globale Ports d entrée, ports de sortie Matrice de commutation (backplane) Processeur de routage p. 12
Architecture CPU processeur de routage configuration / routage dynamique réplication des tables en local Interconnexion Le processeur de routage traite les paquets à destination du routeur configuration - maintenance services dynamique (routage) p. 13 Architecture La table de routage est recopiée dans chaque port d entrée pour avoir un accès rapide et parallèle (pas de mémoire partagée) Les ports sont autonomes Lorsqu un port reçoit un paquet à destination du routeur il l envoit au processeur principal qui recalcule les tables et les redistribue p. 14
Ports d entrée Matrice de commutation Terminaison de ligne Terminaison de liaison de donnée (protocole, désencapsulation) Consultation, acheminement mise en attente interface avec le médium physique Terminaison de liaison réachemninement grâce à une table, mise en attente dans une file d attente. p. 15 Matrice de commutation Interconnexion Entrées Sorties Trois types de commutations: mémoire partagée (PC, routeurs bas de gamme) Bus partagé (milieu de gamme) Crossbar point à point (haut de gamme) p. 16
Speedup global du routeur Interconnexion C R E C : débit d entrée/sortie R E : débit d entrée de l interconnexion R S : débit de sortie de l interconnexion B : débit interne de l interconnexion B R S C rapport (speedup) bus/liaison B/C speedup entrée/liaison R E /C speedup R S /C sortie/liaison p. 17 Où se fait la mise en attente? File d attente en sortie Interconnexion algorithme simple: un seul point de congestion nécessite une accélération de sortie de N égale au nombre d entrées. p. 18
File d attente en entrée Interconnexion stockage des paquets en entrée si contention en sortie possibilité d utiliser l algorithme de backpressure efficacité limité à cause des contentions en sortie fonctionne bien en pratique p. 19 File d attente en entrée et en sortie Interconnexion utilisation efficace avec un speedup limité algorithmes complexes (plusieurs points de congestion) nécessité d avoir un contrôle de flux p. 20
Architecture des routeurs haut débit Combinaison file en entrée, file en sortie C E /C S 2 Interface d entrée : commutation, routage, classification Interface de sortie : ordonnancement Interconnexion : réseau commuté B = NxC L interconnexion permet de connecter simultanément plusieurs paires d entrée / sortie Les paquets sont fragmentés en cellules de petites tailles dans l interconnect pour éviter les contentions p. 21 Éviter le blocage en tête de ligne E 1 S 1 E 2 S 2 S 3 E 3 la sortie est calculée dans l interface d entrée les interfaces maintiennent une file virtuelle par sortie p. 22
Interface de sortie classif. flux 1 flux 2 flux 3 ordonnanc. l interface de sortie peut lisser le trafic avec un classificateur et un ordonnanceur voir le cours de QoS (délai, bande passante, pertes) p. 23 Mémorisation dans les réseaux Le partage de lien par multiplexage statistique est efficace La commutation/routage de paquets nécessite des mémoires Il faut éviter la perte de paquets Utiliser de grosses mémoires Les mémoires sont peu chères p. 24
Observations Routeur Plus les buffers sont gros, moins il y a de pertes Si le buffer n est jamais vide, l interface de sortie est tout le temps active. p. 25 Théorie des files d attente p 1 P [X > k] X On peut trouver la taille d un buffer pour un taux de perte donné Les pertes diminuent avec l augmentation de la taille Grand = mieux voir le cours de PBS p. 26
Taille des buffers 1Gb de mémoire peut contenir 500k paquets et ne coûte quasiment rien On peut faire des buffers de grande taille Les utilisateurs n aiment pas les buffers Les opérateurs non plus Idem pour les concepteurs En fait ce n est pas sûr que l on en ait besoin p. 27 Débits importants: exemple réseau à 10Gb/s 250ms de mémoire 300Mo de mémoire manipulation d un paquet de 40 octets toutes les 32ns Mémoire utilisée SRAM : 80 modules, 1kW, 2000$ DRAM : 4 modules, trop lent Réseaux à 40Gb/s? p. 28
Taille de buffers Utilisation de TCP : contrôle de bout en bout Les pertes sont prévues dans le protocole Fenêtre de congestion algorithme du slow start Les pertes ne sont pas graves Le débit est une meilleur métrique p. 29 Taille des buffers source routeur C destination 2T Règle habituelle : B = 2T C B est la taille de la mémoire (en bits), C est la capacité du lien (en bit/s), 2T est le temps d aller-retour p. 30
Taille des buffers Les routeurs gérant de nombreux flux peuvent en fait diminuer la taille des buffers 2T C B = N Cette diminution peut être effectuée car les flux TCP sont désynchronisés réseaux 40Gb/s règle habituelle : 10Gbits nouvelle mesure : 50Mbits p. 31 Vue du constructeur de routers Haut débit Sécurité Cryptographie, pare-feux, authentification Flexibilité Passage à l échelle Adaptabilité aux standards (ATM, UMTS, IPv6) Possibilité d ajouter de fonctionnalités Basse consommation Coût financier réduit p. 32
Plan Introduction aux network processors Architecture des routeurs Commutation et routage rapide Quelques network processors p. 33 Ethernet : commutation Passage d un bus à de la commutation de niveau 2 Réduction des domaines de collisions Les ports d entrées ont accès à une table de correspondance adresse MAC <-> port de sortie Possibilité d avoir des VLAN (filtrage dans la table : 802.1Q) Possibilité de faire de la priorisation (802.1P) Rapidité de traitement, pas de modification de la trame commutateur bas de gamme 8 ports : temps de commutation de 11µs. Au maximum 90900 trames par seconde. p. 34
Niveau 3 : routage / commutation Les routeurs reprennent la même architecture Les ports d entrées ont accès à une table de correspondance préfixes adresses IP <-> port de sortie Calculée par le routage Possibilité d avoir des VLAN par adresse IP Possibilité d avoir de la priorisation Commutation de niveau 3 : modification de la trame à la volée Les réseaux d entrée et de sortie doivent être de même nature Adresses MAC (source et destination) Recalcul du checksum (très long) Commutation de niveau 3 : reconstruction de trame Cas pour lequel les réseaux de niveau 2 sont différents p. 35 Niveau 3 : routage / commutation Problème du routage Identifier l interface de destination en fonction de l adresse destination IP Les tables de commutations ne stockent que la correspondance entre préfixes d adresses IP et port de sortie Le choix de la route doit donc trouver le port de sortie ayant le préfixe de correspondance le plus long p. 36
Table de commutation 128.16.120.xxx 12.82.xxx.xxx 12.82.100.xxx 1 3 2 12.82.100.101 128.16.120.111 1 2 p. 37 Table de commutation La structure de données utilisée pour représentée la table de correspondance est cruciale Une implémentation naïve fonctionne en O(m N) où m est la longueur du préfixe (32 pour IP), et N le nombre d entrée dans la table.? Quelle est cette représentation? p. 38
Algorithme de lookup CIDR: préfixe réseau de taille quelconque. La table de routage peut agréger des adresses de réseaux. Exemple: réseaux 208.12.16/24 jusqu à 208.12.31/24 chez le même provider. Ils sont agrégés par 208.12.16/20. 208.12.21/24 208.12.16/20 0 2 32 1 Exception: 208.12.21/24 passe chez un autre provider. Deux solutions: repasser en 24 bits de préfixes (16 entrées au lieu d une), stocker l exception (2 entrées au lieu d une) p. 39 Algorithme: binary trie Recherche, pour une adresse à router, du plus grand préfixe présent dans la table. Chaque étage correspond à un bit. Préfixes a 0* b 01000* c O11* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0 b a 0 1 0 0 1 1 c e 0 0 d 1 0 1 0 1 0 1 f g h i p. 40
Algorithme: path compressed trie On compresse les chemins inutiles, les nœuds sont étiquetés avec le bit à consulter. Arrivé aux feuilles on compare le préfixe à l adresse et on remonte éventuellement. Préfixes a 0* b 01000* c O11* d 1* e 100* f 1100* g 1101* h 1110* i 1111* b 0 3 a 0 1 d 1 0 1 c 1 e 2 3 4 0 1 4 0 1 0 1 f g h i p. 41 Algorithme récents pour routage haut débit minimiser le nombre de lectures dans la table minimiser la taille de la structure Utiliser une structure hiérarchique à trois niveaux p. 42
Table de commutation Premier niveau : couvre tous les préfixes sur 16 bits Utilisation d un bit par préfixe (présent / non présent) Mémoire utilisée 2 16 = 64Kb = 8Ko On stocke un pointeur vers le niveau suivant si le préfixe est valide (densité) Deuxième niveau, troisième niveau... Les structures sont optimisés pour être rapides en lecture Le construction de la structure est plus délicate Les tables de routages ne changent pas souvent p. 43 Exemple: niveau 1 (vecteur de bit) Premier niveau tous les préfixes jusqu à la profondeur 16 1 bit par préfixe (2 16 = 8KB) Utiliser une structure hiérarchique à trois niveaux 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 2 3???? 14 15 pointer array Routing table level 2 chunk p. 44
Classification Le problème de lookup peut être vu comme un cas simple du problème de classification de paquet. Pour un paquet, on cherche à identifier: L adresse destination L adresse source Les protocoles de différents niveau On déduit une action pour chaque paquet. Ces traitement interviennent surtout dans les niveaux 4 et 5. p. 45 Exemple de table de classification Règle Dest. Addr/Mask Src. Addr/Mask App. Transp. Action prot. prot. Action R1 152.163.190.69/ 152.163.80.11/ * * Refuser 255.255.255.255 255.255.255.255 R2 152.163.3.0/ 152.163.200.157/ = www UDP Refuser 255.255.255.0 255.255.255.255 R5 152.198.4/ 152.163.160.0/ >1023 TCP Accepter 255.255.255.255 255.255.252.0 R6 0.0.0.0/ 0.0.0.0/ * * Accepter 0.0.0.0 0.0.0.0 p. 46
Plan Introduction aux network processors Architecture des routeurs Commutation et routage rapide Quelques network processors p. 47 Quelques network processors Principaux constructeurs: Intel IXP IBM Motorola... p. 48
Intel et IBM Intel IXP architecture à espace d adressage partagé processeur généraliste embarqué : Strong ARM, 6 processeurs programmables de traitement des paquets nombreux coprocesseurs matériels (gestionnaire de sémaphores, classification, recherche associative, etc) IBM PowerNP architecture à espace d adressage partagé Processeur généraliste embarqué : PowerPC, 16 processeurs RISC quadri-contexte pour traitement des paquets coprocesseurs matériels pour les fonctions de dispatch des paquets et ordonnancement des threads p. 49 Cisco 2600 p. 50
Cisco 7200 www.cisco.com p. 51 Cisco 12000 www.cisco.com p. 52
Niveaux 4, 5,... Plus on remonte dans les niveaux, plus le traitement à fournir dans l interface d entrée est important Les performances des routeurs varient grandement si l on active des services de haut niveau filtrage d adresses IP filtrage de port UDP ou TCP filtrage de contenu de requête... Unité de mesure : MPPS Millions de paquets par secondes p. 53 ExtremeNetwork BlackDiamond www.extremenetworks.com BlackDiamond 6800 jusqu à 1400 ports 100Mb/s backplane de commutation 768Gb/s 192 MPPS interventions niveaux 2,3,4 et applicatif BlackDiamond 12000 48 ports 10Gb/s Ethernet ou 480 ports Gb/s 1.6Tb/s en commutation 1,2 millions de routes IPv4/IPv6... p. 54