Algoritmi di Lookup e classificazione
Transcript
Algoritmi di Lookup e classificazione
Ottobre 2009 Lookup e Classificazione ad Alte Prestazioni Olivier Morandi [email protected] http://netgroup.polito.it/Members/olivier_morandi Ottobre 2009 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 - 2 Based Processing (IP Ottobre 2009 Packet Switching & Forwarding Switching Dato l’indirizzo di destinazione di una trama, decidere attraverso quale interfaccia di uscita deve essere inviata 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 deve essere inoltrato Nei router IP tale funzionalità è implementata tramite algoritmi di lookup con longest prefix match Lookup & Classification - 3 Ottobre 2009 Problema del lookup Dato un insieme di coppie chiave-valore memorizzate in una tabella, determinare il valore associato ad una determinata chiave (oppure ad un prefisso della chiave) Chiavi Valori ---- ---- ------- Chiave K ------- f(K) Valore E=f(K) L’implementazione della funzione f(K) dipende dalle caratteristiche dell’insieme di tutte le possibili chiavi (cardinalità e densità dell’insieme) Dai vincoli di design Lookup & Classification - 4 Ottobre 2009 Metriche di valutazione delle tecnologie per il lookup Velocità Occupazione di memoria Tempo necessario ad aggiungere una entry Scalabilità nelle dimensioni della tabella di lookup In relazione alla dimensione delle strutture dati necessarie per rappresentare le tabelle di lookup Tempo di update In relazione al numero di accessi a memoria necessari Variazione di prestazioni e occupazione in memoria al variare delle dimensioni della tabella di lookup Flessibilità dell’implementazione implementazioni algoritmiche Lookup & Classification - 5 hardware vs. implementazioni Ottobre 2009 Line-rate per I router di backbone ANNO Line-Rate Aggregato (Gbps) Packet-Rate per pacchetti di 40 byte (Mpps) Tempo di inter-arrivo (ns) 1999 2.5 6.25 28,62 2001 10 25 32,15 2003 40 100 8,04 2006 80 200 2,04 Ref. P. Gupta - 2006 Lookup & Classification - 6 Ottobre 2009 Line-rate aggregato oggi AMS-IX Traffic Statistics – daily graph Fonte: http://www.ams-ix.net/technical/stats/ Lookup & Classification - 7 Ottobre 2009 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 Ref. P. Gupta - 2006 Lookup & Classification - 8 Ottobre 2009 Outline 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 - 9 Based Processing (IP Ottobre 2009 Exact match lookup per Label Swapping (ATM/MPLS) La label (20 bit per MPLS) viene utilizzata per scegliere la porta di uscita e la nuova label da assegnare al pacchetto Lookup & Classification - 10 Ottobre 2009 Label Swapping MPLS Direct Lookup Cardinalità max = 220 RAM 2n-1 (n + k + m) Data (Output Label + QoS + Output Port) MPLS Table 1 • 20 bit/label = 1M addresses 0 •Ogni riga (24-32 bit): Address n Label (n bit) La label indirizza direttamente un elemento di una tabella in RAM Lookup & Classification - 11 •Out Label (20 bit) •QoS (3 bit) •Out port (log2 NPorts bit) •In tutto max 32 MB Ottobre 2009 Ethernet Switching Exact Lookup Cardinalità max = 248 L’indirizzo MAC-Destination Ethernet (48 bit) viene utilizzato per scegliere la porta di destinazione verso la quale inoltrare i frame in arrivo 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 1 2 3 ADDR PORT … … 00C049F45B94 3 … … 00-C0-49-F4-5B-94 DST n Lookup & Classification - 12 Output Ports 1 3 2 3 SRC Ethernet Frame n Ottobre 2009 Lookup in hardware Memorie CAM Content Addressable Memories Memorie associative: dato un valore in ingresso, restituiscono l’indirizzo della cella che lo contiene Il dato viene ricercato contemporaneamente in ogni locazione della memoria RAM vs. CAM Matching ADDRESS DATA ADDRESS Lookup & Classification - 13 DATA Ottobre 2009 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 - 14 Encoder Word 0 Word 1 log2 w bit Match Location Ottobre 2009 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 - 15 1 6 0 0 w-1 match Search Data Register 0 Output Data Register 8 bit Output PORT 3 Ottobre 2009 Lookup tramite CAM Vantaggi Ricerca O(1) Latenza comparabile con quella delle SRAM quando queste ultime sono usate per lookup diretto 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 - 16 Ottobre 2009 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 valore 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 - 17 Ottobre 2009 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 - 18 Ottobre 2009 Ethernet Switching Lookup tramite Binary Search N = 8 (numero di elementi nella tabella) Key = 9 h = O(log2 N) 11 < Storage: O(N) < 6 h < 4 < 3 Lookup & Classification - 19 Lookup Speed: O(log2 N) 14 < < 9 12 < 17 Balanced Binary Search Tree Un albero di ricerca binario può sempre essere riordinato, in modo da minimizzarne l’altezza L’elemento mediano dell’insieme viene posto alla radice, ottenendo un albero bilanciato Ottobre 2009 Outline 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 - 20 Based Processing (IP Ottobre 2009 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 2009 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 2009 IPv4 Forwarding Class-Based Lookup Forwarding Table 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 Address 193.34.10.1 & Natural Netmask 255.255.255.0 193.34.10.0 Exact Match Lookup Lookup & Classification - 23 Ottobre 2009 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 2009 Longest Prefix Match Esempio Ipotizziamo indirizzi a 8 bit P1 P2 P3 P4 Prefix Next-hop 111* 10* 1010* 10101* H1 H2 H1 H4 Address: 10100101 Lookup & Classification - 25 Nel caso di match multipli vince quello relativo al prefisso più lungo Output Link 1 3 1 2 Next Hop: H1, Out Link: 1 Ottobre 2009 Longest Prefix Match Linear Search Prefissi e dati accessori in un array o in una linked-list Storage: O(N) Tempo di lookup: O(N) Update: O(1) Mantenendo la lista ordinata si può migliorare il tempo medio di ricerca Il caso peggiore generalmente non è accettabile Numero Lookup & Classification - 26 degli accessi a memoria O(N) Ottobre 2009 Longest Prefix Match in hardware Ternary CAM Memorie CAM in cui ogni bit può essere impostato a 0, 1, oppure X (DON’T CARE) Il lookup avviene come nelle CAM, ma 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 - 27 Next Hop - Output Link H1 1 Ottobre 2009 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) ~ 5-10ns Bassa densità di bit/chip Alta dissipazione di potenza Costo per chip elevato Lookup & Classification - 28 Ottobre 2009 Soluzione algoritmica: Uni-bit Trie E’ un albero binario per il matching di pattern di bit Ogni nodo dell’albero può avere al più due archi uscenti etichettati con i valori 0, o 1 Partendo dalla radice: tutti i prefissi che iniziano con 1 vengono memorizzati nel sottoalbero raggiungibile tramite l’arco etichettato con “1 Tutti i prefissi che iniziano con 0 vengono memorizzati nel sottoalbero raggiungibile tramite l’arco etichettato con “0” La costruzione procede ricorsivamente valutando uno a uno i bit che compongono i vari prefissi Root 1 Sequenza Etichetta 1010 A 1110 B 0 1 1 0 A Tabella Lookup & Classification - 29 Uni-bit trie 1 0 B Ottobre 2009 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 C P2 G P3 B 1 0 1 D 1 E 0 0 P5 1 Lookup & Classification - 30 left-ptr H P4 I F P1 right-ptr Ottobre 2009 Longest Prefix Match Uni-bit Trie - lookup Struttura di un nodo Lookup 10111010 A next-hop-ptr (if prefix) 1 P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 C P2 G P3 B 1 0 1 D 1 E 0 0 P5 1 Lookup & Classification - 31 left-ptr H P4 I F P1 right-ptr Ottobre 2009 Longest Prefix Match Uni-bit Trie - lookup 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 di next-hop contenuto nell’ultimo nodo attraversato (se != null) 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 - 32 Ottobre 2009 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-32 accessi a memoria) Spreco di memoria per mantenere i puntatori Lookup & Classification - 33 Ottobre 2009 Longest Prefix Match Multi-bit Trie Binary trie W Profondità = W Archi/Nodo= 2 Porzione = 1 bit Multi-ary trie Profondità = W/k Archi/Nodo = 2k Porzione = k bit W/k Invece di valutare un solo bit alla volta si valutano k>1 bit ad ogni passaggio Lookup & Classification - 34 Ottobre 2009 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* Aumenta l’occupazione di memoria: nel caso peggiore un prefisso genera 2k-1 prefissi espansi Lookup & Classification - 35 Ottobre 2009 Multi-bit Trie (k=2) Struttura di un nodo Lookup 10111 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 - 36 10 10 G P41 ptr10 ptr11 C P2 10 ptr01 E P11 11 11 F P12 H P42 Prefissi espansi Ottobre 2009 Multi-bit Trie Espansione memoria prefissi aumenta occupazione in Replicazione dei puntatori di next hop Incremento dei puntatori ai nodi successori Incremento dei puntatori null in un nodo Il numero di accessi alla memoria decrementa in proporzione al numero di bit valutati Time ~ W/k Storage ~ NW/k * 2k-1 Lookup & Classification - 37 Ottobre 2009 Multi-Bit Trie Compressione dei livelli con k = 8 bit MAX 4 accessi a memoria! L8 L16 L24 L32 Lookup & Classification - 38 Ottobre 2009 Outline 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 - 39 Based Processing (IP Ottobre 2009 Classificazione: Supporto per nuovi servizi ISP 4 X ISP1 ISP 3 Y ISP 2 Service Example Differentiated Services Ensure that traffic from ISP2 is given higher priority over traffic from ISP3. Packet Filtering Deny all web traffic from ISP3 at interface X. (Firewalling, ACLs) Policy-based routing Lookup & Classification - 40 Ensure that all web traffic from ISP2 is sent via interface Y. Ottobre 2009 Da un Packet-Based Router ad un Flow-Based Router Packet-Based Router: Forwarding by network address Il processo di forwarding valuta il campo IP destination e inoltra il pacchetto verso la route “migliore” tra quelle di sua conoscenza Best Effort Processing Flow-Based Router Le decisioni di forwarding vengono prese sfruttando le informazioni contenute in campi chiave del pacchetto Tutti i pacchetti appartenenti ad uno specifico flusso obbediscono a regole predefinite e subiscono lo stesso tipo di elaborazione Il router deve identificare il flusso di appartenenza di ogni pacchetto ed effettuare le opportune elaborazioni Lookup & Classification - 41 Ottobre 2009 Esempi di flussi Flusso = tutti i pacchetti che condividono determinate caratteristiche I pacchetti di una comunicazione end-to-end: (IP src, IP dst) I pacchetti destinati ad una particolare subnet che sfruttano un determinato protocollo di trasporto: I (IP dst prefix, protocol) pacchetti di una connessione TCP (IP src, IP dst, TCP src, TCP dst) Generica Lookup & Classification - 42 sessione (e.g. connessione tcp) (IP src, IP dst, Port src, Port dst, Protocol) Ottobre 2009 Packet Classification Definizione Classificatore: Insieme finito di regole R1, R2, R3…, RN (database delle regole) Ogni regola definisce delle condizioni su un insieme di campi H[1], H[2], …, H[k] (tupla) estratti dal pacchetto Ad ogni regola viene generalmente associata un’azione da intraprendere (e.g. permit/deny, etc.) Lookup & Classification - 43 Ottobre 2009 Packet Classification Definizione In generale, per ogni campo è possibile avere diversi tipi di confronto Exact Match: confronto con un valore esatto Prefix Match: confronto su un valore con mascheramento (e.g. net address + mask) Range Match: confronto su un intervallo di valori (riconducibile a prefix match) Lookup & Classification - 44 Ottobre 2009 Esempio: Access List interface interface FastEthernet0/1 FastEthernet0/1 ip ip address address 156.23.14.11 156.23.14.11 255.255.255.0 255.255.255.0 ip ip access-group access-group 108 108 in in !! access-list access-list 108 108 permit permit tcp tcp access-list access-list 108 108 permit permit tcp tcp access-list tcp access-list 108 108 deny deny tcp access-list access-list 108 108 permit permit access-list access-list 108 108 permit permit access-list access-list 108 108 deny deny any any host host 130.192.86.4 130.192.86.4 eq eq ftp ftp any any host host 130.192.86.5 130.192.86.5 eq eq ftp ftp any any any any eq eq ftp ftp tcp tcp any any host host 130.192.86.4 130.192.86.4 eq eq www www tcp tcp any any host host 130.192.86.5 130.192.86.5 eq eq www www tcp tcp any any any any eq eq www www access-list access-list 108 108 permit permit tcp tcp 130.192.225.0 130.192.225.0 0.0.0.255 0.0.0.255 host host 130.192.86.4 130.192.86.4 eq eq smtp smtp access-list tcp access-list 108 108 deny deny tcp any any any any eq eq smtp smtp access-list udp access-list 108 108 deny deny udp any any any any range range 00 1024 1024 !! Sintassi Sintassi Cisco Cisco IOS IOS (extended (extended ACL): ACL): access-list access-list nn {permit {permit || deny} deny} {tcp {tcp || udp} udp} source source source-mask source-mask [operator [operator [source-port]] [source-port]] destination destination destination-mask destination-mask [operator [operator [dest-port]] [dest-port]] Lookup & Classification - 45 Ottobre 2009 Classificazione Rule Database (ACL) con k = 5 Src Port Dst Port Proto Action 1 any any 130.192.86.4 ftp tcp permit 2 any any 130.192.86.5 ftp tcp permit 3 any any any ftp tcp deny 4 any any 130.192.86.4 www tcp permit 5 any any 130.192.86.5 www tcp permit 6 any any any www tcp deny 7 130.192.225.0/24 any 130.192.86.4 smtp tcp permit 8 any any any smtp tcp deny 9 any any any 0..1024 udp deny Pacchetto: <192.168.10.23, 3455, 130.192.86.5, 80, TCP> Classificazione: Estrarre l’azione associata alla regola a priorità più alta con la quale vi è un match Lookup & Classification - 46 Ottobre 2009 Classificazione Rule Database (ACL) con k = 5 Src Port Dst Port Proto Action 1 any any 130.192.86.4 ftp tcp permit 2 any any 130.192.86.5 ftp tcp permit 3 any any any ftp tcp deny 4 any any 130.192.86.4 www tcp permit 5 any any 130.192.86.5 www tcp permit 6 any any any www tcp deny 7 130.192.225.0/24 any 130.192.86.4 smtp tcp permit 8 any any any smtp tcp deny 9 any any any 0..1024 udp deny Pacchetto: <192.168.10.23, 3455, 130.192.86.4, 110, TCP> Lookup & Classification - 47 Ottobre 2009 Longest Prefix Match Lookup: Classificazione in una dimensione K=1 H[0] = IP destination Rule Database = Forwarding Table Regole = <prefix, next-hop, link> Un unico tipo di azione (i.e. Forward verso next-hop sul link x) Costo Regola = 1/prefix-length Lookup & Classification - 48 Ottobre 2009 Criteri di valutazione I requisiti per gli algoritmi e le tecniche di classificazione sono simili a quelli visti per le tecniche di lookup Velocità: necessità di sostenere wire-speed per i pacchetti di dimensione minima (40 byte) Occupazione di memoria: è preferibile che l’intero database risieda in memoria ad alta velocità (+ costosa) Capacità di gestire ampi database di regole reali Velocità di update: in generale non è detto che sia un parametro determinante, tuttavia nel caso di classificazione stateful è richiesto un tempo di update molto ridotto Scalabilità nel numero di campi utilizzati per la classificazione Flessibilità nella definizione delle regole: una buona soluzione deve supportare regole generiche, con la possibilità di utilizzare prefissi, operatori di confronto, range e wildcard Lookup & Classification - 49 Ottobre 2009 Soluzione Semplice Linear Search Storage: O(N) Speed: O(N) Update: O(1) Diverse implementazioni di classificatori (eg. router di fascia bassa, firewall) effettuano una scansione lineare del database delle regole Tecnica utilizzata in soluzioni software, esempio: NetFilter: firewall integrato nel kernel Linux Soluzione ragionevole in alcuni casi, per rule set limitati Non applicabile ai router di backbone Lookup & Classification - 50 Ottobre 2009 Soluzione hardware Classificazione tramite TCAM Si sfrutta l’approccio adottato per il longest prefix match tramite TCAM Ogni riga della memoria CAM contiene i campi H[0], …, H[k-1] in una sequenza di bit ternari (0, 1, X) Considerando i cinque campi ip src, ip dst, src port, dst port e protocol si ottengono righe da 104 bit (32 + 32 + 16 + 16 + 8) Lookup & Classification - 51 Ottobre 2009 Soluzione hardware Classificazione tramite TCAM TCAM RAM 00000110 110011001… 00000110 01000101… XXXXXXXX 11001XXX… XXXXXXXX Encoder 11XXXXXX… ACTION log2 w bit Decoder RULE DATABASE permit permit deny deny match Search Data Register Output Data Register 104 bit Packet Fields H[0] H[1] H[2] H[3] H[4] Lookup & Classification - 52 Action deny Ottobre 2009 Classificazione tramite TCAM Problemi L’utilizzo delle TCAM per la classificazione soffre dei problemi già visti per i lookup esatti e con longest prefix match: - Bassa densità di bit/chip Alta dissipazione di potenza Costo per chip elevato Bassa scalabilità in dimensioni e potenza Nel caso della classificazione vi è un ulteriore problema, dato dalla moltiplicazione delle regole causata dalla trasformazione dei range in prefissi Lookup & Classification - 53 Ottobre 2009 Classificazione con TCAM Moltiplicazione delle regole Per ogni range in cui i limiti non sono potenze di due bisogna generare più di un prefisso 1 Range [3,11] Prefissi Corrispondenti 0011, 01**, 10** 2 [2,7] 001*, 01** 3 [4,11] 01**, 10** 4 [4,7] 01** 5 [1,14] 0001, 001*, 01**, 10**, 110*, 1110 Fortunatamente in situazioni reali vi sono poche regole basate su range Lookup & Classification - 54 Ottobre 2009 Classificazione Soluzioni algoritmiche E’ opinione comune che per sostenere linerate elevati (e.g. OC-768 = 40Gbps), l’unica soluzione possibile al problema della classificazione sia l’utilizzo delle memorie TCAM, anche se queste presentano diversi problemi * Allo stato attuale, i limiti imposti dall’utilizzo delle TCAM ed alcune considerazioni sulla forma e la distribuzione delle regole nei database reali rendono alcune soluzioni algoritmiche degne di essere prese in considerazione in fase di progettazione * F. Baboescu, S. Singh, and G. Varghese, "Packet classification for core routers: Is there an alternative to CAMs?" in INFOCOM, 2003 Lookup & Classification - 55 Ottobre 2009 Classificazione Interpretazione Geometrica I campi chiave di un pacchetto sono definiti dalla tupla <H[0], H[1], …, H[k-1]>, cioè da un vettore Un pacchetto identifica quindi un punto in uno spazio di dimensione k Un range di valori per un campo è rappresentato da un segmento Lo stesso per i prefissi: 130.192.225.0/24 corrisponde 130.192.225.0 130.192.225.255 Lookup & Classification - 56 al range Ottobre 2009 Classificazione Interpretazione Geometrica Le regole di classificazione, in generale, sono rappresentabili tramite iperrettangoli Limitandosi a due dimensioni (e.g. ip source, ip destination), il problema di classificazione si traduce nella ricerca del rettangolo di costo minore che contiene il punto identificato dal pacchetto IP dst 130.192.255.255 130.192.86.4 1 IP src IP dst 1 any 130.192.0.0/16 2 130.192.0.0/16 130.192.86.4 3 130.192.128.0/17 130.192.0.0/17 2 3 130.192.0.0 Pacchetto: (130.192.200.23 139.192.86.4) IP src 130.192.0.0 Lookup & Classification - 57 130.192.255.255 Ottobre 2009 Limiti derivati dalla Geometria Computazionale Quello della classificazione assomiglia al problema geometrico della localizzazione di un punto nello spazio Dato uno spazio di dimensione k>3 ed N regioni rettangolari, la Geometria Computazionale fornisce i seguenti limiti al problema: Dato un insieme di regioni non sovrapposte, trovare la regione che contiene il punto Tempo di soluzione O(log N) Memoria occupata O(Nk) Oppure: Tempo di soluzione O((log N)k-1) Memoria occupata O(N) Lookup & Classification - 58 Ottobre 2009 Limiti derivati dalla Geometria Computazionale Nella classificazione le regioni possono essere sovrapposte, quindi la soluzione al problema è difficile almeno quanto quello della localizzazione di un punto Risultato: “algorithmic approaches to classification require either a large amount of memory or a large amount of time.”* Esistono soluzioni generali al problema in due dimensioni Per k dimensioni si sfruttano considerazioni sulla struttura dei rule database reali ed euristiche * G. Varghese, "Network Algorithmics,: An Interdisciplinary Approach to Designing Fast Networked Devices” - (The Morgan Kaufmann Series in Networking) Lookup & Classification - 59 Ottobre 2009 Soluzioni algoritmiche Classificazione con K = 2 Algoritmi: Hierarchical tries Set pruning tries Grid of tries Rappresentano un estensione alle due dimensioni degli unibit tries utilizzati per il longest prefix match Supponiamo che ogni regola sia composta da due campi H1 e H2 (e.g. ip src prefix ed ip dest prefix) Lookup & Classification - 60 Ottobre 2009 Hierarchical Tries Costruzione Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 1 [R7] [R1, R2, R3] 0 0 [R4, R5] [R6] next-trie ptr 1 R4 1 0 0 1 R3 1 R5 Lookup & Classification - 61 1 0 R2 R1 0 R7 R6 Dimensione H2 Ottobre 2009 Hierarchical Tries Si costruisce prima un albero trie ad una dimensione considerando solo il campo H1 Per ogni prefisso p contenuto nel trie H1 si costruisce ricorsivamente uno hierarchical trie Tp sulle regole che specificano p nella dimensione H1 Il prefisso p è collegato al trie Tp tramite un puntatore next-trie pointer Lookup & Classification - 62 Ottobre 2009 Hierarchical Tries Ricerca Search (000,010) Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 1 [R7] [R1, R2, R3] 0 0 [R4, R5] [R6] next-trie ptr 1 R4 1 0 O(NW) memory O(W2) lookup 1 322 = 1024!!! 0 R3 1 R5 Lookup & Classification - 63 1 0 R2 R1 0 R7 R6 Dimensione H2 Ottobre 2009 Set Pruning Tries Consente di ridurre il tempo di ricerca, eliminando il backtracking attraverso la replicazione degli alberi trie di secondo livello Ricerca: Si ricerca il longest prefix match per il campo H1 nel trie di primo livello Seguendo il next-trie pointer, si prosegue nel trie di secondo livello cercando il longest prefix match per il campo H2 Lookup & Classification - 64 Ottobre 2009 Set Pruning Tries Costruzione Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 [R7] [R1, R2, R3, R7] 0 [R1, R2, R3, R4, R5, R7] 0 1 1 [R6, R7] next-trie ptr 0 1 R4 1 0 R7 R2 R1 R5 R7 Lookup & Classification - 65 0 0 R3 0 1 0 0 1 0 0 0 R2 R1 R7 R7 1 R6 Dimensione H2 Ottobre 2009 Set Pruning Tries Costruzione Search (000,010) Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 [R7] [R1, R2, R3, R7] 0 [R1, R2, R3, R4, R5, R7] 0 1 1 0 next-trie ptr 0 1 1 0 0 R3 0 R7 R2 R1 R5 R7 Lookup & Classification - 66 0 [R6, R7] R4 0 1 1 0 0 0 R2 R1 R7 R7 1 O(N2) memory O(2W) lookup R6 Dimensione H2 Ottobre 2009 Grid of Tries Propone una struttura che può essere considerata una soluzione intermedia tra Hierarchical Tries e Set Pruning Tries La replicazione delle regole di Set Pruning Tries viene evitata grazie ad un puntatore aggiuntivo: lo switch pointer, che è etichettato come “0”, oppure “1” e punta a sottoporzioni dei trie di secondo livello Lookup & Classification - 67 Ottobre 2009 Grid of Tries Costruzione Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 0 switch ptr 1 0 R5 Lookup & Classification - 68 0 [R6, R7] [R1, R2, R3, R4, R5, R7] R4 [R7] [R1, R2, R3, R7] 0 1 1 next-trie ptr 0 1 0 1 0 R2 R1 0 0 1 R3 0 R7 R6 Dimensione H2 Ottobre 2009 Grid of Tries Ricerca Search (000,010) Rule H1 H2 IP src IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* Dimensione H1 0 0 switch ptr 1 0 R5 Lookup & Classification - 69 0 [R6, R7] [R1, R2, R3, R4, R5, R7] R4 [R7] [R1, R2, R3, R7] 0 1 1 next-trie ptr 0 1 0 1 0 R2 R1 0 0 1 R3 0 R7 O(NW) memory O(2W) lookup R6 Dimensione H2 Ottobre 2009 Grid-of-Tries Vantaggi Buona soluzione per 2 dimensioni Svantaggi Difficoltà nelle operazioni di update della struttura Non facilmente estendibile a più di due dimensioni Lookup & Classification - 70 Ottobre 2009 Classificazione oltre le 2 dimensioni Cross-Producting Rule Database Rule H1 H2 R1 0* 10* R2 0* 01* R3 0* 1* Rule R4 00* 1* R2 00* 01* R5 10* 1* R4 00* 10* R4 00* 1* - 10* 01* Cross-Product Table H1 H2 Set H1 Set H2 R5 10* 10* H1 H2 R5 10* 1* 00* 01* R2 0* 01* 10* 10* 10* R1 0* 10* 0* 1* R3 0* 1* LPM Lookup LPM Lookup Packet: (101, 100) Lookup & Classification - 71 (10*, 10*) Ottobre 2009 Cross-Producting Storage: O(Nk) Speed k longest prefix match lookup + 1 exact match lookup (e.g. hashing) Vantaggi Alte prestazioni Supporta regole a più di due dimensioni Svantaggi Enorme occupazione di memoria anche per poche regole in 5 dimensioni (1005 = 10G entries) La fase di preprocessing può essere lunga Lookup & Classification - 72 Ottobre 2009 Soluzioni basate su euristiche Recursive Flow Classification [Gupta, McKeown 1999] Ottimizzazione del Cross-Producting Hierarchical Intelligent Cuttings [Gupta, McKeown 1999] Aggregated Bit-vector [Baboescu, Varghese 2001] HyperCuts [Singh, Baboescu, Varghese2003] Extended Grid Of Tries with Path Compression [Singh, Baboescu, Varghese2003] Lookup & Classification - 73 Ottobre 2009 Soluzioni basate su euristiche Come si comportano? Bene a basse velocità Hypercuts elabora ~20K regole in 5 dimensioni usando ~9 Mb di memoria con ~20 accessi a memoria Ad alte velocità hanno bisogno di grandi quantità di memoria Recursive Flow Classification (basato su CrossProducting) elabora ~1000 regole in 5 dimensioni utilizzando ~16 Mb di memoria con ~6 accessi a memoria Lookup & Classification - 74 Ottobre 2009 Soluzioni per la classificazione utilizzate nella realtà Grande maggioranza: TCAM Alcuni: Derivati di RFC Alte performance e worst case deterministico Alto costo e alta dissipazione energetica Basse performance euristiche e basso Altri: HyperCuts/HiCuts Altri: essenzialmente linear-search Lookup & Classification - 75 costo, basato su Ottobre 2009 Classificazione Riferimenti 1. T.V. Lakshman. D. Stiliadis. “High speed policy based packet forwarding using efficient multi-dimensional range matching”, Sigcomm 1998, pp 191-202 2. V. Srinivasan, S. Suri, G. Varghese and M. Waldvogel. “Fast and scalable layer 4 switching”, Sigcomm 1998, pp 203-214 [Grid-oftries, crossproducting] V. Srinivasan, G. Varghese, S. Suri. “Fast packet classification using tuple space search”, Sigcomm 1999, pp 135-146 P. Gupta, N. McKeown, “Packet classification on multiple fields,” Sigcomm 1999, pp 147-160 [RFC] P. Gupta and N. McKeown, “Algorithms for packet classification,” IEEE Network, March/April 2001, vol. 15, no. 2, pp 24-32 F. Baboescu and G. Varghese, “Scalable packet classification,” Proc. Sigcomm 2001 F. Baboescu, S. Singh, and G. Varghese, "Packet classification for core routers: Is there an alternative to CAMs?" in INFOCOM, 2003 K. Lakshminarayanan, A. Rangarajan and S. Venkatachary. “Algorithms for advanced packet classification with Ternary CAMs”, Sigcomm 2005. Lookup & Classification - 76
Documenti analoghi
Lookup e Classificazione ad Alte Prestazioni (II)
Ensure that traffic from ISP2 is given higher priority over
traffic from ISP3.
ricerca dei percorsi ip - Università degli Studi di Modena e Reggio
IDEA anzichè richiedere una classe B perchè non richiedere un numero di
reti di classe C tale da soddisfare le proprie necessità ?
Reti di classe C sono più di 2 milioni e mediamente con 8 di esse ...