Lookup e Classificazione ad Alte Prestazioni (II)
Transcript
Lookup e Classificazione ad Alte Prestazioni (II)
Ottobre 2006 Lookup e Classificazione ad Alte Prestazioni (II) Olivier Morandi [email protected] Ottobre 2006 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 (Firewalling, ACLs) Deny all web traffic from ISP3 at interface X. Policy-based routing Ensure that all web traffic from ISP2 is sent via interface Y. Lookup & Classification (II) - 2 Ottobre 2006 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 (II) - 3 Ottobre 2006 Esempi di flussi Flusso = tutti i pacchetti che condividono le stesse 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: (IP dst prefix, protocol) I pacchetti di una connessione TCP (IP src, IP dst, TCP src, TCP dst) Generica sessione (e.g. connessione tcp) (IP src, IP dst, Port src, Port dst, Protocol) Lookup & Classification (II) - 4 Ottobre 2006 Flow Based Router Routing, resource reservation, admission control, SLAs Routing Routing Lookup Lookup Lookup & Classification (II) - 5 Packet Packet Classification Classification Special Special processing processing Switching Switching Scheduling Scheduling Mgmt & Control Plane Data Plane Ottobre 2006 Tecniche di Packet Filtering vs. Tecniche di Classificazione Stesso obiettivo: Ambiti d’impiego molto diversi Software Packet Filters (e.g. BPF, Pathfinder, ecc.) Suddividere il traffico in flussi General purpose classification Implementano early demultiplexing flessibile Possibilità di impostare filtri molto complessi Classificazione nei router Special purpose classification Early demultiplexing spesso è hard-coded Estrazione di campi specifici dal pacchetto Confronto di tali campi con un insieme di valori definiti in un database di regole Lookup & Classification (II) - 6 Ottobre 2006 Packet Classification Definizione formale Dato un insieme di campi dello header di un pacchetto H[0], H[1], …, H[k-1], (e.g. ip source, ip destination, L4 source, L4 destination, L4 protocol), un classificatore è definito da un insieme finito di regole R1, R2, R3…, RN, il database delle regole, in cui ciascuna regola è definita da una tupla di k valori, uno per ogni campo specificato Per ogni campo è possibile avere tre tipi di confronto Exact Match: confronto con un valore esatto Prefix Match: confronto su un valore mascheramento (e.g. net address + mask) Range Match: confronto su un intervallo di valori Lookup & Classification (II) - 7 con Ottobre 2006 Packet Classification Definizione formale Ad ogni regola Ri è associata una direttiva di che specifica l’azione da intraprendere a fronte di un match (e.g. Blocca/Inoltra il pacchetto, inoltra su una coda ad una certa priorità, ecc.) Un pacchetto P soddisfa una regola R se ogni campo chiave di P soddifa la rispettiva condizione specificata in R Il tipo di confronto da soddisfare è definito implicitamente nella definizione di ogni campo Un pacchetto può soddisfare più di una regola contemporaneamente, quindi ad ogni regola è associato un valore di costo (e.g. nei firewall e nelle ACL Cisco, il numero d’ordine della regola all’interno del rule database) Classificazione = trovare la regola a costo più basso che il pacchetto soddisfa Lookup & Classification (II) - 8 Ottobre 2006 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 any any host host 130.192.86.4 130.192.86.4 eq eq ftp ftp access-list access-list 108 108 permit permit tcp tcp any any host host 130.192.86.5 130.192.86.5 eq eq ftp ftp access-list tcp access-list 108 108 deny deny tcp any any any any eq eq ftp ftp access-list access-list 108 108 permit permit tcp tcp any any host host 130.192.86.4 130.192.86.4 eq eq www www access-list access-list 108 108 permit permit tcp tcp any any host host 130.192.86.5 130.192.86.5 eq eq www www access-list tcp access-list 108 108 deny deny 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 (II) - 9 Ottobre 2006 Classificazione Rule Database (ACL) - 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 (II) - 10 Ottobre 2006 Classificazione Rule Database (ACL) - 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 (II) - 11 Ottobre 2006 Longest Prefix Match Lookup: Classificazione in una dimensione K=1 H[0] = IP destination Rule Database = Forwarding Table Regole = <prefix, next-hop, link> Costo Regola = 1/prefix-length Lookup & Classification (II) - 12 Ottobre 2006 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 (II) - 13 Ottobre 2006 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 Snort: IDS open source Soluzione ragionevole in alcuni casi, per rule set limitati Non applicabile ai router di backbone Lookup & Classification (II) - 14 Ottobre 2006 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 (II) - 15 Ottobre 2006 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 (II) - 16 Action deny Ottobre 2006 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 (II) - 17 Ottobre 2006 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 (II) - 18 Ottobre 2006 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 (II) - 19 Ottobre 2006 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 (II) - 20 al range Ottobre 2006 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 (II) - 21 130.192.255.255 Ottobre 2006 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 (II) - 22 Ottobre 2006 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 (II) - 23 Ottobre 2006 Hierarchical Tries Estende alle due dimensioni la soluzione basata su uni-bit trie 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) 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 (II) - 24 Ottobre 2006 Hierarchical Tries Costruzione Rule Dimensione H1 0 1 [R7] [R1, R2, R3] 0 0 [R4, R5] [R6] next-trie ptr 1 R4 0 1 0 1 0 0 R5 R2 R1 R7 Lookup & Classification (II) - 25 H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* 1 R3 1 H1 IP src R6 Dimensione H2 Ottobre 2006 Hierarchical Tries Ricerca Search (000,010) Dimensione H1 0 1 [R7] [R1, R2, R3] 0 0 [R4, R5] [R6] next-trie ptr 1 R4 0 1 R3 1 0 0 R5 R2 R1 R7 Lookup & Classification (II) - 26 H1 IP src H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* O(NW) memory O(W2) lookup 1 322 = 1024!!! 0 1 Rule R6 Dimensione H2 Ottobre 2006 Set Pruning Tries Consente di ridurre il tempo di ricerca, eliminando il backtracking attraverso la replicazione delle regole 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 (II) - 27 Ottobre 2006 Set Pruning Tries Costruzione Rule 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 0 0 R3 0 1 0 R7 R2 R1 R5 R7 1 0 0 Lookup & Classification (II) - 28 1 0 0 0 R2 R1 R7 R7 H1 IP src H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* 1 R6 Dimensione H2 Ottobre 2006 Set Pruning Tries Costruzione Search (000,010) Dimensione H1 0 [R7] [R1, R2, R3, R7] 0 [R1, R2, R3, R4, R5, R7] 0 1 0 next-trie ptr 0 1 0 [R6, R7] 1 R4 1 0 1 0 0 R3 0 R7 R2 R1 R5 R7 Lookup & Classification (II) - 29 1 0 0 0 R2 R1 R7 R7 1 Rule H1 IP src H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* O(N2) memory O(2W) lookup R6 Dimensione H2 Ottobre 2006 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 (II) - 30 Ottobre 2006 Grid of Tries Costruzione Rule Dimensione H1 0 [R1, R2, R3, R4, R5, R7] R4 [R7] [R1, R2, R3, R7] 0 1 1 0 switch ptr 1 0 R5 Lookup & Classification (II) - 31 0 [R6, R7] next-trie ptr 0 1 0 1 0 R2 R1 0 0 R7 H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* 1 R3 0 H1 IP src R6 Dimensione H2 Ottobre 2006 Grid of Tries Ricerca Search (000,010) Dimensione H1 0 [R1, R2, R3, R4, R5, R7] R4 [R7] [R1, R2, R3, R7] 0 1 1 0 switch ptr 1 0 R5 Lookup & Classification (II) - 32 0 [R6, R7] next-trie ptr 0 1 0 1 0 R2 R1 0 0 1 R3 0 R7 Rule H1 IP src H2 IP dst R1 0* 10* R2 0* 01* R3 0* 1* R4 00* 1* R5 00* 11* R6 10* 1* R7 * 00* O(NW) memory O(2W) lookup R6 Dimensione H2 Ottobre 2006 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 (II) - 33 Ottobre 2006 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* R1 0* 10* 0* 1* R3 0* 1* LPM Lookup LPM Lookup Packet: (101, 100) Lookup & Classification (II) - 34 (10*, 10*) Ottobre 2006 Cross-Producting Storage: O(Nk) Speed: O(1) 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 La fase di preprocessing può essere lunga Lookup & Classification (II) - 35 Ottobre 2006 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 (II) - 36 Ottobre 2006 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 RFC (basato su Cross-Producting) elabora ~1000 regole in 5 dimensioni utilizzando ~16 Mb di memoria con ~6 accessi a memoria Lookup & Classification (II) - 37 Ottobre 2006 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 (II) - 38 costo, basato su Ottobre 2006 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 (II) - 39
Documenti analoghi
Algoritmi di Lookup e classificazione
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 ch...
Lookup e Classificazione ad Alte Prestazioni
migliorare il tempo medio di ricerca
Il caso peggiore non è accettabile
ricerca dei percorsi ip - Università degli Studi di Modena e Reggio
stesse informazioni di routing (indirizzo IP di next-hop)
Se d’altra parte diverse entry alla tabella coprono lo stesso indirizzo IP, si applica la
regola del longest matching prefix:
prefix dato u...