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)

Lookup e Classificazione ad Alte Prestazioni (II) Ensure that traffic from ISP2 is given higher priority over traffic from ISP3.

Dettagli

Lookup e Classificazione ad Alte Prestazioni

Lookup e Classificazione ad Alte Prestazioni Tecnologie e algoritmi di Classificazione

Dettagli

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

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

Dettagli