Lookup e Classificazione ad Alte Prestazioni
Transcript
Lookup e Classificazione ad Alte Prestazioni
Ottobre 2006 Lookup e Classificazione ad Alte Prestazioni Olivier Morandi [email protected] Ottobre 2006 Packet Switching & Forwarding Switching Dato l’indirizzo di destinazione di un pacchetto, decidere attraverso quale interfaccia deve essere inviato Negli switch Ethernet tale funzionalità è implementata tramite algoritmi di lookup a match esatto Nei router IP tale funzionalità fa parte delle decisioni di forwarding Forwarding Dato l’indirizzo di destinazione di un pacchetto, decidere a quale altro router (e attraverso quale interfaccia) deve essere inoltrato Nei router IP tale funzionalità è implementata tramite algoritmi di lookup con longest prefix match Lookup & Classification - 2 Ottobre 2006 RFC 1812: Requirements for IPv4 Routers An Internet router performs the following functions: Interfaces to two or more packet networks. Receives Internet datagrams and sends them to an appropriate output interface Chooses a next-hop destination for each IP datagram, based on the information in its routing database (Usually) supports an interior gateway protocol. In addition, some routers will need to support an exterior gateway protocol (EGP) Provides network management and system support facilities, including loading, debugging, status reporting, exception reporting and control Optionally: a router MAY choose to perform special processing on incoming packets Lookup & Classification - 3 Ottobre 2006 Special processing Esempi Scarto di pacchetti per ragioni di sicurezza (firewalling, Access Control Lists, ecc.) Funzionalità di NAT QoS: Consegna dei pacchetti in base a requisiti di latenza prestabiliti Consegna dei pacchetti in base a criteri di priorità prestabiliti Acquisizione di dati statistici sulle caratteristiche del traffico che attraversa il router (e.g. Flow Monitoring) Funzionalità avanzate di Intrusion Detection/Prevention Tali funzionalità si basano sull’identificazione di flussi di traffico, cioè su funzionalità di classificazione dei pacchetti Lookup & Classification - 4 Ottobre 2006 Outline Di cosa parliamo? Tecnologie e algoritmi per il lookup Soluzioni per Exact Match (per L2 switching, MPLS) Soluzioni per Longest switching/forwarding) Prefix Match Tecnologie e algoritmi di Classificazione Flow Lookup & Classification - 5 Based Processing (IP Ottobre 2006 Line-rate per I router di backbone ANNO Line-Rate Aggregato (Gbps) 1999 2.5 6.25 28,62 2001 10 25 32,15 2003 40 100 8,04 2006 80 200 2,04 Packet-Rate per Tempo di pacchetti di 40 byte inter-arrivo (Mpps) (ns) P. Gupta - 2006 Lookup & Classification - 6 Ottobre 2006 Tecnologie per le memorie (2006) Tecnologia Densità max per chip $/chip ($/MByte) Latenza DRAM 64 MB $30-$50 ($0.50-$0.75) 40-80ns 0.5-2W SRAM 8 MB $50-$60 ($5-$8) 3-4ns 2-3W TCAM 2 MB $200-$250 ($100-$125) 4-8ns 15-30W Watts/chip P. Gupta - 2006 Lookup & Classification - 7 Ottobre 2006 Metriche di valutazione degli algoritmi di lookup Velocità (proporzionale al numero di accessi a memoria) Occupazione di memoria Velocità di update Scalabilità nelle dimensioni della tabella di lookup Flessibilità dell’implementazione Lookup & Classification - 8 Ottobre 2006 Label Swapping (ATM/MPLS) Lookup & Classification - 9 Ottobre 2006 Label Swapping Direct Lookup RAM 2n-1 (n + k + m) Data (Output Label + QoS + Output Port) MPLS MPLS 1 •• 20 20 bit/label bit/label == 1M 1M addresses addresses 0 •Ogni •Ogni riga riga (24-32 (24-32 bit): bit): Address n Label (n bit) La label indirizza direttamente un elemento di una tabella in RAM Lookup & Classification - 10 •Out •Out Label Label (20 (20 bit) bit) •QoS •QoS (3 (3 bit) bit) •Out •Out port port (log (log22 NPorts NPorts bit) bit) •In •In tutto tutto max max 32 32 MB MB Ottobre 2006 Ethernet Switching Exact Lookup L’indirizzo MAC-Destination Ethernet (48 bit) viene utilizzato per scegliere la porta di destinazione verso la quale inoltrare un frame Gli indirizzi MAC sono globali L’insieme degli indirizzi conosciuti da uno switch è “sparso” e di dimensioni molto inferiori a 248 Un meccanismo di lookup diretto non è praticabile, né auspicabile Input Ports Output Ports 11 22 33 ADDR PORT … … 00C049F45B94 3 … … 00-C0-49-F4-5B-94 DST DST nn Lookup & Classification - 11 11 3 22 33 SRC SRC Ethernet Frame nn Ottobre 2006 Memorie CAM Content Addressable Memories Memorie associative: dato un valore in ingresso, restituiscono l’indirizzo della cella che lo contiene Il dato viene ricercato parallelamente in ogni locazione della memoria RAM vs. CAM Matching ADDRESS DATA ADDRESS Lookup & Classification - 12 DATA Ottobre 2006 Memorie CAM Struttura Ad ogni bit è associato un circuito di comparazione per verificare la presenza di un match tra il bit registrato ed il corrispondente bit in input Un match completo su una riga attiva un segnale che viene codificato per indicare la posizione della riga stessa Per gestire match multipli si utilizzano encoder a priorità (righe ad indirizzo più basso hanno priorità maggiore) Spesso è presente una linea aggiuntiva che segnala l’effettiva presenza di un match Word w-2 Word w-1 Search Data Register n bit Search Word Lookup & Classification - 13 Encoder Word 0 Word 1 Match Location log2 w bit Ottobre 2006 Ethernet Switching Lookup Associativo tramite CAM 0 00-0A-8B-CD-A6-E3 00-00-00-00-00-00 w-1 Encoder 1 MAC TABLE 00-0A-8A-FA-98-26 00-0E-23-EF-77-34 RAM log2 w bit 00-00-00-00-00-00 Decoder CAM PORT TABLE 4 3 48 bit Destination MAC Address 00-0E-23-EF-77-34 Lookup & Classification - 14 1 6 0 0 w-1 match Search Data Register 0 Output Data Register 8 bit Output PORT 3 Ottobre 2006 Lookup tramite CAM Vantaggi Ricerca O(1) Latenza comparabile con quella delle SRAM Svantaggi Densità di bit è circa la metà rispetto alle SRAM (18 Mbit/Chip nel 2005) Costo per bit elevato Elevata dissipazione di potenza Lookup & Classification - 15 Ottobre 2006 Ethernet Switching Lookup tramite hashing 2n-1 h=f(k) n bit MAC Address (K) 48 bit 0 L’indirizzo a 48 bit viene mappato su un indirizzo a n bit, con n << 48 (e.g. 16 bit) L’operazione di hashing è O(1) Bisogna gestire le collisioni di chiavi diverse sullo stesso hash (e.g. open hashing, double hashing) Il numero degli accessi a memoria necessari per il lookup non è predicibile Lookup & Classification - 16 Ottobre 2006 Ethernet Switching Lookup tramite hashing Vantaggi: Semplice da implementare Svantaggi Utilizzo inefficiente della memoria Tempo di lookup non deterministico Può essere una buona soluzione per switch implementati in software Lookup & Classification - 17 Ottobre 2006 Ethernet Switching Lookup tramite Binary Search Key = 9 N N == 88 hh == O(log N) O(log22 N) 11 11 < Storage: Storage: O(N) O(N) < Lookup Lookup Speed: Speed: O(log2 O(log2 N) N) 66 h < 44 < 33 Lookup & Classification - 18 14 14 < 99 < 12 12 < 17 17 Balanced Binary Search Tree Un albero di ricerca binario può sempre essere riarrangiato, in modo da minimizzarne l’altezza L’elemento mediano dell’insieme viene posto alla radice, ottenendo un albero bilanciato Ottobre 2006 Binary Search Tree Array con puntatori impliciti L’albero può essere rappresentato attraverso un array Si può risparmiare lo spazio dei puntatori ai nodi figli Ogni elemento a[i] è padre di due figli Cell: 0 2 1 11 h: a[2*i + 1] a[2*i + 2] 6 0 Lookup & Classification - 19 14 1 3 5 4 4 9 6 12 2 7 17 3 3 Ottobre 2006 Binary Search Tree Implementazione a pipeline Le prestazioni logaritmiche del BST spesso sono insufficienti E’ possibile ottenere prestazioni O(1) sfruttando una pipeline di elementi di elaborazione che operano ciascuno su un dato diverso Lo stadio al livello h confronta il dato in ingresso con uno tra 2h valori Ogni stadio comunica al successivo l’indice dell’elemento col quale dovrà essere effettuato il confronto Il throughput massimo è dato dalla velocità di elaborazione del singolo elemento La latenza (ritardo ingresso - uscita) dipende dal numero di elementi nella pipeline 0 1 11 11 Lookup & Classification - 20 2 14 14 66 3 17 17 12 12 99 44 33 Ottobre 2006 Lookup in un router IP H E A D E R Dst Addr Incoming Packet Forwarding Engine Next Hop Computation Forwarding Table Dst-prefix Next Hop ------- ------- ---- ---- Unicast destination address based lookup Lookup & Classification - 21 Next Hop Ottobre 2006 IPv4 Forwarding Spazio di indirizzamento Classful A B 128.0.0.0 0.0.0.0 Classe Range C D E 192.0.0.0 MS bits Net ID Host ID A 0.0.0.0 128.0.0.0 0 bits 1-7 bits 8-31 B 128.0.0.0 191.255.255.255 10 bits 2-15 bits 16-31 C 192.0.0.0 223.255.255.255 110 bits 3-23 bits 24-31 D (multicast) 224.0.0.0 239.255.255.255 1110 - - E (reserved) 240.0.0.0 255.255.255.255 11110 - - Lookup & Classification - 22 Ottobre 2006 IPv4 Forwarding Class-Based Lookup Network Next Hop if 27.0.0.0 130.192.16.1 1 172.34.0.0 130.192.25.4 2 193.34.10.0 130.192.16.1 1 IP IP Address Address 193.34.10.1 193.34.10.1 & & Natural Natural Netmask Netmask 255.255.255.0 255.255.255.0 193.34.10.0 Exact Match Lookup Lookup & Classification - 23 Ottobre 2006 IPv4 Forwarding Longest Prefix Match CIDR ha permesso di risolvere alcuni problemi propri del routing class-based: Spreco di indirizzi Crescita esponenziale delle tabelle di routing Con CIDR l’indirizzo perde ogni informazione riguardo alla classe di appartenenza E’ impossibile distinguere a priori la porzione di Net ID da quella di Host ID La routing table contiene un insieme di prefissi associati ai link che permettono di raggiungere le destinazioni corrispondenti L’indirizzo di destinazione del pacchetto viene confrontato con tutti i prefissi disponibili e viene scelto quello col quale c’è un match di lunghezza maggiore (longest prefix match) Il pacchetto viene quindi inviato sul link corrispondente Lookup & Classification - 24 Ottobre 2006 Longest Prefix Match Esempio Indirizzi a 8 bit P1 P2 P3 P4 Prefix Next-hop 111* 10* 1010* 10101* H1 H2 H1 H4 Address: 10100101 Lookup & Classification - 25 Output Link 1 3 1 2 Next Hop: H1, Out Link: 1 Ottobre 2006 Longest Prefix Match Osservazioni Osservazione Conseguenza ~250.000 flussi contemporanei sul backbone 50% dei pacchetti sono TCP ACK (40 byte) Lookup dominati dagli accessi a memoria ~ 150.000 prefissi sulle tabelle di routing (backbone) Instabilità nei protocolli di routing, multicast Impossibilità di utilizzo di tecniche di caching Operazioni di lookup devono essere effettuate a wire-speed Velocità di lookup è misurata dal numero di accessi a mem. In crescita, si arriverà a 500.000 - 1 milione di prefissi Tempi di update compresi tra 1ms e 1s Lookup & Classification - 26 Ottobre 2006 Longest Prefix Match Linear Search Prefissi e dati accessori in un array o una linked-list Storage: O(N) Tempo di lookup: O(N) Update: O(1) Mantenendo la lista ordinata si migliorare il tempo medio di ricerca Il caso peggiore non è accettabile Numero Lookup & Classification - 27 degli accessi a memoria O(N) può Ottobre 2006 Longest Prefix Match Ternary CAM Memorie CAM in cui ogni bit può essere impostato a 0, 1, oppure X (DON’T CARE) Le operazioni di lookup si svolgono come nelle CAM, tranne che i bit impostati a X non vengono confrontati Se vi è più di un match, quello più lungo ottiene la priorità più alta TCAM RAM Encoder 11XXXXXX 10XXXXXX 1010XXXX 10101XXX NEXT HOP/LINK log2 w bit Decoder PREFIX TABLE H1 H2 H1 H4 1 3 1 2 match Search Data Register Output Data Register 8 bit Destination Address 10100101 Lookup & Classification - 28 Next Hop - Output Link H1 1 Ottobre 2006 Longest Prefix Match Ternary CAM I vantaggi e gli svantaggi di un approccio basato su TCAM sono paragonabili a quelli dell’utilizzo delle CAM per l’exact match: + - Lookup O(1) ~ 10ns Bassa densità di bit/chip Alta dissipazione di potenza Costo per chip elevato Lookup & Classification - 29 Ottobre 2006 Longest Prefix Match Uni-bit Trie Struttura di un nodo A next-hop-ptr (if prefix) 1 P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 Lookup 10111010 C P2 G P3 0 Add P5=1110* D 1 E 0 0 P5 1 Lookup & Classification - 30 B 1 1 right-ptr left-ptr H P4 I F P1 Ottobre 2006 Longest Prefix Match Uni-bit Trie I bit dell’indirizzo da ricercare vengono valutati uno alla volta partendo dal MSbit Partendo dalla radice dell’albero trie, per ogni nodo si procede verso il ramo corrispondente al valore del bit corrente Durante il parsing si registra il valore contenuto nell’ultimo nodo attraversato Il processo termina quando si raggiunge un nodo foglia, oppure quando non si ottiene un match per il bit corrente L’ultimo valore registrato è il puntatore al next hop corrispondente al prefisso che offre il match di lunghezza maggiore Lookup & Classification - 31 Ottobre 2006 Longest Prefix Match Uni-bit Trie Prefissi lunghi al massimo W bit Lookup: O(W) Storage: O(NW) Update: O(W) Vantaggi Semplicità di implementazione Approccio utilizzabile anche per exact match Svantaggi Il caso peggiore è lento (nell’ordine di 24 accessi a memoria) Spreco di memoria per mantenere i puntatori Lookup & Classification - 32 Ottobre 2006 Longest Prefix Match Multi-bit Trie Binary trie W Profondità = W Archi/Nodo= 2 Porzione = 1 bit Multi-ary trie W/k Lookup & Classification - 33 Profondità = W/k Archi/Nodo = 2k Porzione = k bit Ottobre 2006 Multi-bit Trie Espansione dei prefissi Se la porzione da valutare deve essere lunga k bit, i prefissi con lunghezze che non sono multiple di k devono essere espansi k=2 Prefisso Prefissi Espansi 0* 00*, 01* 11* 11* Il numero massimo di prefissi espansi, corrispondenti ad un prefisso non espanso è 2k-1 Lookup & Classification - 34 Ottobre 2006 Multi-bit Trie (k=2) Struttura di un nodo next-hop-ptr (if prefix) A ptr00 10 11 B D P3 P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 Lookup & Classification - 35 10 10 G P411 ptr10 ptr11 C P2 10 ptr01 E P111 11 11 F P122 H P422 Lookup 10111 Ottobre 2006 Multi-bit Trie Espansione prefissi aumenta occupazione in memoria Replicazione dei puntatori di next hop Incremento dei puntatori ai nodi successori Incremento dei puntatori null in un nodo Time ~ W/k Storage ~ NW/k * 2k-1 Lookup & Classification - 36 Ottobre 2006 Multi-Bit Trie Compressione dei livelli con k=8 MAX 4 accessi a memoria! L8 L16 L24 L32 Lookup & Classification - 37 Ottobre 2006 Multi-bit Trie Generalizzazione Un partizionamento diverso ad ogni livello (ki bit) 16-8-8 split 4-10-10-8 split 24-8 split 21-3-8 split Come scegliere il partizionamento ottimale, cioè che minimizzi il numero massimo degli accessi a memoria? Dipende Lookup & Classification - 38 dalla distribuzione dei prefissi Ottobre 2006 Controlled Prefix Expansion Un algoritmo di programmazione lineare che, data una tabella di forwarding ed il numero massimo di accessi a memoria desiderato (profondità dell’albero) per il caso peggiore calcola la sequenza ottimale di partizionamenti (ki) che minimizzano i requisiti di storage Vantaggi Occupazione di memoria ottimale Svantaggi Gli update creano una situazione sub-ottimale Implementazione in hardware difficoltosa Lookup & Classification - 39
Documenti analoghi
ricerca dei percorsi ip - Università degli Studi di Modena e Reggio
un certo nodo: tutti gli indirizzi IP (foglie) nel sottoalbero avente questo nodo come
radice dovrebbero essere instradati allo stesso modo
Conseguenza: ogni entry alla routing table definisce un i...
Lookup e Classificazione ad Alte Prestazioni (II)
soluzione deve supportare regole generiche, con la
possibilità di utilizzare prefissi, operatori di confronto, range
e wildcard