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

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...

Dettagli

Lookup e Classificazione ad Alte Prestazioni

Lookup e Classificazione ad Alte Prestazioni migliorare il tempo medio di ricerca  Il caso peggiore non è accettabile

Dettagli

ricerca dei percorsi ip - Università degli Studi di Modena e Reggio

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...

Dettagli