Sei sulla pagina 1di 14

Reti e dintorni

Aprile 2001 N 2

ICMP echo (spoofed source address of victim) Sent to IP broadcast address ICMP echo reply

Internet Perpetrator Victim

iii)

b)

Il client invia al proxy server le credenziali in suo possesso iv) Il proxy server valuta le credenziali, se conformi effettua una connessione con il server remoto v) Il client pu scambiare dati con il server remoto vi) Per ogni messaggio il proxy server valuta lopportunit della trasmissione Si ritiene generalmente che il firewall proxy server sia pi sicuro rispetto al packet filtering, in quanto introduce livelli di controllo aggiuntivi. Lo svantaggio una minore trasparenza dovuta a una partecipazione attiva degli utenti nel processo di firewall. informazioni sullo stato e ricostruiscono il flusso di dati associato al traffico. Questa tecnica entra nel merito di tutti i parametri
MAIL SERVER FIREWALL WEB SERVER

Firewall
I firewall sono preposti al controllo del flusso del traffico in base a regole che consentono o impediscono determinati tipi di traffico. Attualmente i firewall possono essere suddivisi in: 1) Firewall Packet Filtering
a) I firewall di questo tipo si basano esclusivamente sulle intestazioni TCP, UDP, ICMP e IP dei singoli pacchetti. Un router utilizzato come firewall, deve effettuare controlli complessi sui pacchetti. Tal controlli consumano notevoli risorse del router stesso, e i controlli sono effettuati per ogni pacchetto ricevuto. Dunque un router

3) Firewall Stateful Filtering a) I firewall di questo tipo mantengono

INTERNET INTERNET FIREWAL L

INTRANET

DMZ

che implementa funzioni di packet filtering deve disporre di una CPU pi veloce e di maggiore memoria, rispetto a un router che deve solo svolgere funzioni di instradamento IP. La maggiore limitazione del packet filtering dovuta al fatto che questa tecnica non effettua controlli a livello applicativo. Comunque il packet filtering risulta un sistema economico, in quanto le sue funzionalit sono integrate nei vari sistemi operativi dei router in commercio. Loperato di questo tipo di firewall completamente trasparente agli utenti.

connessi allintestazione TCP, quali i numeri seriali, gli ack e lo stato dei flags. Un filtro sul circuito non lascia passare i pacchetti che non fanno parte di una connessione stabilita. Per evitare che un hacker riesca in un attacco di tipo denial of service, il firewall accetta solo un limitato numero di richieste da ogni utente. Per complicare la predizione dei numeri seriali (tecnica utilizzata dagli hacker per dirottare una connessione stabilita!) il firewall sostituisce i numeri seriali con numeri casuali. Loperato di questo tipo di firewall completamente trasparente agli utenti.

Pix Firewall Cisco


La serie firewall PIX della Cisco sono del tipo Stateful Filtering e si basano sullalgoritmo ASA (Adaptive Security Algorithm). Le interfacce presenti sul PIX si caratterizzano per il loro livello di sicurezza. a) la prima interfaccia ha un livello di sicurezza 0 e si chiama outside (ethernet0) b) la seconda interfaccia ha un livello di sicurezza 100 e si chiama inside (ethernet1) c) se eventualmente sono presenti altre interfacce il loro livello di sicurezza deve essere un numero compreso tra 1 e 99 Il comando da utilizzare per modificare il livello di sicurezza delle interfacce : nameif hardware_id interface_name sec_level

2) Firewall Proxy Service


a) I firewall di questo tipo elaborano i messaggi specifici di determinate applicazioni IP. La tecnica utilizza la
INTERNET

PROXY SERVER

INTRANET

hardware_id = identificativo dellintefaccia. Per esempio ethernet2 interface_name = nome dellinterfaccia sec_level = livello di sicurezza, valore tra 1 e 99

seguente procedura: i) Il client contatta il proxy server, indicando il server remoto con cui intende scambiare dati ii) Il proxy server richiede allutente linvio delle credenziali indispensabili per accedere al servizio

TECNONET S.p.A.

3 Lalgoritmo ASA si basa sulle seguenti regole base: 1) Per default nessuna connessione o tipo di traffico permesso tra le interfacce. Bisogna abilitare le connessioni con opportuni comandi. 1 2) Abilitazione delle connessioni TCP o del traffico UDP provenienti da uninterfaccia con un livello di sicurezza superiore (per esempio inside) dirette verso interfacce con livello di sicurezza inferiore (per esempio outside) tramite NAT (Network Address Translation) dinamico, PAT (Port Address Translation) o SAT (Static Address Translation). Per quanto riguarda il protocollo UDP che non forma connessioni, lalgoritmo ASA crea un database sul tipo di pacchetto UDP spedito dallinterfaccia con livello di sicurezza superiore. Il PIX far passare solo i pacchetti che ritiene che siano di risposta ai pacchetti UDP trasmessi. (Comandi utilizzati: nat, static, global) 3) Le connessioni provenienti da interfacce con un livello di sicurezza inferiore (per esempio outside) verso interfacce con un livello di sicurezza superiore (per esempio inside), sono bloccate. 4) Non permesso nessun tipo di traffico tra due interfacce con lo stesso livello di sicurezza. 5) Per abilitare le connessioni TCP provenienti da interfacce con livello di sicurezza inferiore verso interfacce con livello di sicurezza superiore si utilizzano i comandi: static, conduit. 6) Tutti i pacchetti del protocollo ICMP sono bloccati. 7) I multicast sono bloccati.

Definisce il range di indirizzi utilizzati dal NAT. Se viene definito un solo indirizzo vuol dire che si utilizza il PAT. Questo comando va usato in associazione con il comando nat (int_name_high) num local_ip netmask Num = numero identificativo diverso da zero Int_name_low = nome dellinterfaccia con livello di sicurezza inferiore Int_name_high = nome dellinterfaccia con livello di sicurezza superiore Global_ip_range = range di indirizzi utilizzati per il nat. Se viene utilizzato un solo indirizzo verr attivato il pat. Alcuni esempi: Global (outside) 1 145.45.89.1-145.45.89.50 Nat (inside) 1 0.0.0.0 0.0.0.0 Viene attivato il NAT. Tutti gli hosts presenti sullinside si presenteranno sulle connessioni verso hosts connessi sulloutside con lindirizzo sorgente sostituito da unindirizzo ip appartenente al range definito dal comando global. Se tutti gli indirizzi del range sono gi utilizzati la connessione esterna non pu avvenire. Global (outside) 1 167.2.6.10 Nat (inside) 1 192.168.1.0 255.255.255.0 Tutti gli hosts appartenenti alla subnet 192.168.1.0/24 si presenteranno allesterno tutti con lo stesso indirizzo. In questo caso viene attivato il PAT.

Static (high_int, low_int) low_int_ip high_int_ip netmask netmask Questo comando abilita la SAT. Abilita i clients o il client
appartenenti allinterfaccia con livello di sicurezza superiore ad iniziare le connessioni. High_int = nome dellinterfaccia con livello di sicurezza superiore Low_int = nome dellinterfaccia con livello di sicurezza inferiore Low_int_ip = indirizzo ip visto dallesterno della subnet o del server dove si deve aprire la connessione High_int_ip = indirizzo ip interno della subnet o del server

Comandi base
Ip address interface_name ip_address netmask
Definisce lindirizzo ip dellinterfaccia. Per esempio ip address inside 192.168.2.1 255.255.255.0

Conduit permit|deny prot low_int_ip netmask operator port ip_client netmask Abilita i clients o il client appartenenti allinterfaccia con
livello di sicurezza inferiore ad iniziare connessioni verso linterfaccia di livello superiore. Questo comando v sempre utilizzato in associazione a un comando static Prot = numero di protocollo ip o alias (per esempio tcp) Low_int_ip = indirizzo ip visto dallesterno della subnet o del server dove si deve aprire la connessione Operator = operatore logico (per esempio eq = equal oppure gt = great then) Port = numero di porta Ip_client = indirizzo ip del client o della subnet alle quali permessa la connessione

Nat (interface_name) 0 local_ip netmask Permette lapertura di connessioni da parte

dei client connessi su uninterfaccia con livello di sicurezza superiore verso hosts posizionati su interfacce con livello di sicurezza inferiore. Lo zero sta ad intendere che il nat (networ address translation) disabilitato. Alcuni esempi: Nat (inside) 0 0 0 : qualsiasi utente dallinterfaccia inside pu aprire connessioni verso qualsiasi altra interfaccia Nat (inside) 0 192.168.1.0 255.255.255.0 : qualsiasi host appartenente alla subnet 192.168.1.0/24 pu aprire connessioni verso qualsiasi altra interfaccia Nat (inside) 0 10.0.0.56 255.255.255.255 : soltanto allhost 10.0.0.56 permesso di aprire connessioni verso qualsiasi interfaccia Nat (dmz) 0 0 0 : qualsiasi host presente sullinterfaccia dmz pu aprire connessioni verso interfacce con livello di sicurezza inferiore alla dmz.

Qualche esempio di configurazione

Global (int_name_low) num global_ip_range netmask netmask

150.45.12.1

Ricordo che lapertura di una connessione in TCP si distingue dal primo pacchetto che ha il flag SYN settato (vedi RETI E DINTORNI n1)

Figura a

TECNONET S.p.A.

Abbiamo una rete che non fornisce servizi web o altro allesterno e utilizza indirizzi riconosciuti globalmente. Nessun client presente sulloutside o su internet pu aprire connessioni verso linside. Dunque non viene utilizzato il nat. Tutti i pc appartenenti alla subnet 150.45.12.0/24 hanno come default gateway lindirizzo ip dellinterfaccia inside del pix 150.45.12.1 Configurazione Pix
nameif ethernet0 outside security0 nameif ethernet1 inside security100 Definizione del livello di sicurezza che in questo caso non sono modificabili per l'nterfacce inside e outside Definizione degli indirizzi ip dellinterfacce outside e inside

route outside 0.0.0.0 0.0.0.0 209.165.201.1

route inside 10.1.2.0 255.255.255.0 10.1.1.3

Tutti i pacchetti non diretti alla subnet 209.165.201.0/24 sono indirizzati al router 209.165.201.1 I pacchetti di ritorno verso la subnet 10.1.2.0/24 sono indirizzati al router 10.1.1.3

R.Gaeta Bibliografia: Configuration Guide for the PIX Firewall manuale Cisco

ip address outside 209.165.201.3 255.255.255.0 ip address inside 150.45.12.1 255.255.255.0 nat (inside) 0 150.45.12.0 255.255.255.0

route outside 0.0.0.0 0.0.0.0 209.165.201.1

Abilita tutti gli hosts della subnet 150.45.12.0/24 ad iniziare connessioni verso lesterno senza Nat Tutti i pacchetti non diretti alla subnet 209.165.201.0/24 sono indirizzati al router 209.165.201.1

10.1.1.1

Figura b In questa rete abbiamo che soltanto gli hosts appartenenti alla subnet 10.1.2.0/24 sono abilitati ad utilizzare internet. Questi clients usciranno su internet utilizzando il range di indirizzi 209.165.201.10 209.165.201.19 per il Nat dinamico e lindirizzo 209.165.201.20 per il Pat. Inoltre dallesterno tutti possono connettersi al webserver 10.1.1.10 che allesterno viene visto con lindirizzo 209.165.201.5. Configurazione Pix
nameif ethernet0 outside security0 nameif ethernet1 inside security100 Definizione del livello di sicurezza che in questo caso non sono modificabili per l'nterfacce inside e outside Definizione dellindirizzi ip dellinterfacce outside e inside Abilitazione del NAT per i clients della subnet 10.1.2.0/24. Si utilizza il 209.165.201.20 per il PAT Viene definito in modo statico lindirizzo ip esterno del webserver Viene permesso a chiunque di collegarsi dallesterno al webserver

ip address outside 209.165.201.3 255.255.255.0 ip address inside 10.1.1.1 255.255.255.0 nat (inside) 1 10.1.2.0 255.255.255.0 global (outside) 1 209.165.201.10209.165.201.19 global (outside) 1 209.165.201.20 static (inside,outside) 209.165.201.5 10.1.1.10 netmask 255.255.255.255 conduit permit tcp 209.165.201.5 eq 80 any

TECNONET S.p.A.

b) Assegnamento agli scopi configurazione c) Attivazione degli scopi

dei

valori

di

Terminologia
DHCP Lease: I server DHCP specificano, per ciascuno scopo, per quanto tempo un client pu utilizzare un indirizzo IP Scopo di DHCP: I parametri di configurazione tra cui lindirizzo IP sono assegnati in base a raggruppamenti logici di utenti. Ogni sottorete di una rete IP ha propri parametri definiti entro un unico scopo. Ciascuna sottorete pu prevedere un solo scopo. Intervallo di esclusione: Devono essere esclusi tutti i clent NON-DHCP, i server DHCP, tutti i router e in alcuni casi apparati tipo i terminal server (hanno un proprio meccanismo di assegnazione)

DHCP
Definito dalla RFC 1541, 1534 e 1533. Il DHCP basato sul protocollo BOOTP. Dato che il DHCP definito da una serie di RFC vi sono varie implementazioni e opzioni. DHCP utilizza UDP.

Creazione dello scopo


Lamministratore deve definire un indirizzo IP di partenza, un indirizzo di fine una netmask e tutti gli indirizzi che dovranno essere esclusi. Inoltre si definisce il lease time.

Modello di riferimento del DHCP


1) Modello client/server 2) Server depositario degli indirizzi IP disponibili 3) Eventuale presenza di un agent relay che non n un client n un server ( un router!)
FLAT NETWORK DHCP CLIENT

Assegnamento agli scopi


Dopo aver creato uno scopo lo si potr gi usare ma esso fornirebbe soltanto lindirizzo IP e la netmask (e il lease time!). Ma il DHCP pu fornire una quantit molto elevata di parametri di configurazione (per esempio il tipo di nodo NetBios).

Configurazione Client
I clients DHCP non richiedono configurazione iniziale per operare in questo processo. In fase di inizializzazione richiederanno servizi da qualsiasi server DHCP in rete

DHCP SERVER ROUTED NETWORK

DHCP CLIENT

Configurazione dellagent relay


Comporta la creazione di redirezionatori di diffusione UDP. In questo caso la PDU Broadcast UDP viene trasformata in Unicast. Nulla vieta a questo punto che il server DHCP si trovi in una qualsiasi Subnet presente sulla rete. Si deve fare riferimento al manuale dellapparato.

AGENT RELAY DHCP DHCP SERVER

Scenario DHCP (FLAT NETWORK) Configurazione del Server


La configurazione del server DHCP segue tre passi: a) Creazione dello Scopo
CLIENT MAC = MAC1 IP = ??????? SERVER MAC = MAC2 IP = IP2

TECNONET S.p.A.

Spedisce PDU: DHCP DISCOVERY

ip helper-address server_dhcp_ip
Source MAC: MAC1 IP: 0.0.0.0 Port: 68 Source MAC: MAC2 IP: IP2 Port: 67 Dati: IP da fornire al client, lease time, ecc. Source MAC: MAC1 IP: 0.0.0.0 Port: 68 Dati: Server IP Address Source MAC: MAC2 IP: IP2 Port: 67 Destination MAC: Broadcast IP: Broadcast IP Port: 67 Spedisce PDU: DHCP OFFER

insieme al comando di configurazione globale: ip forward-protocol udp port Questa coppia di comandi trasforma le PDU Broadcast UDP, con porta di destinazione port, in Unicast verso lindirizzo specificato server_dhcp_ip. V abilitato sullinterfaccia dove non presente il server DHCP.

Destination MAC: Broadcast2 IP: Broadcast Port: 68

Spedisce PDU: DHCP REQUEST

Destination MAC: Broadcast IP: Broadcast IP Port: 67

Destination MAC: Broadcast IP: Broadcast IP Port: 68 Dati: tutti i parametri

Spedisce PDU: DHCP ACK

Esempio: Supponiamo di avere un router dove sullinterfaccia FastEthernet0/1 presente il server DHCP con indirizzo IP: 10.1.1.1/24. Sullinterfaccia FastEthernet0/0 abbiamo dei client DHCP e nessun server DHCP. La configurazione allora :
! ip forward-protocol udp 67 ! interface FastEthernet0/0 ip address 10.2.2.1 255.255.255.0 ip helper-address 10.1.1.1 no shutdown ! interface FastEthernet0/1 ip address 10.1.1.2 255.255.255.0 no shutdown

Scenario DHCP (Routed Network)


CLIENT
MAC: MAC1 IP: ???????

AGENT RELAY
MAC: MAC3 MAC: MAC4 IP: IP3 IP: IP4 Help address: IP2

SERVER
MAC: MAC2 IP: IP2
Default Gateway: IP4

PDU: DHCP DISCOVERY Source MAC: MAC1 IP: 0.0.0.0 Port: 68 Destination MAC: Bcast IP: Bcast Port: 67 Source MAC: MAC4 IP: IP3 Port: 68 Destination MAC: MAC2 IP: IP2 Port: 67 PDU: DHCP OFFER Source MAC: MAC2 IP: IP2 Port: 67 Dati: offerta IP1

Configurazione Agent Relay su Smart Switch Router Enterasys (SSR2000; SSR8000; SSR8600)
Il comando da utilizzare : ip helper-address interface interface_name server_dhcp_ip 67 Con questo comando soltanto i pacchetti UDP Broadcast del DHCP (porta 67) saranno trasformati in Unicast verso il server_dhcp_ip. Se non si specifica la porta, di default saranno reindirizzati i seguenti servizi:
DHCP/BOOTP DNS (porta 53) NetBIOS Name Server (porta 137) NetBIOS (porta 138) TACACS Server (porta 49) Time Service (porta 37)

Destination MAC: MAC1 IP: IP1 Port: 68

Source MAC:MAC3 IP: IP2 Port: 67 Dati: offerta IP1 PDU: DHCP REQUEST Source MAC: MAC1 IP: 0.0.0.0 Port: 68 Dati: Server Address Destination MAC: Bcast IP: Bcast Port: 67

Destination MAC: MAC4 IP: IP3 Port: 67

Source Destination MAC: MAC4 MAC: MAC2 IP: IP3 IP: IP2 Port: 68 Port: 67 Dati: Server Address PDU: DHCP ACK Destination MAC: MAC4 IP: IP3 Port: 67 Dati: tutti i parametri Source MAC: MAC2 IP: IP2 Port: 67

Destination MAC: MAC1 IP: IP1 Port: 68

Source MAC:MAC3 IP: IP2 Port: 67 Dati: tutti i parametri

Configurazione Agent Relay DHCP su apparati CISCO


Agent Relay DHCP supportato quasi da tutti i router cisco e dallo switch/router 8500 e in pi dai Catalyst 5000 con il modulo RSM e dai Catalyst 6000 con la MLSFC. Si usi il comando dinterfaccia utilizzato :

Si pu scegliere un qualsiasi valore per la porta di destinazione, e questo permette il reindirizzamento di pacchetti UDP broadcast proprietari. Esiste anche il comando: ip helper-address interface interface_name allinterfaces udp_port Questo comando non trasforma i pacchetti UDP broadcast in unicast ma li ritrasmette su tutte le interfacce tranne linterfaccia di provenienza (flooding). R. Gaeta

Oppure Unicast. Dipende da un flag presente sulla PDU DHCP DISCOVERY

TECNONET S.p.A.

Bibliografia: Lan Commutate John J. Roese Mc Graw Hill

TECNONET S.p.A.

Flow Based: riconoscendo i pacchetti che appartengono ad uno stesso flusso possibile fare linstradamento di livello 3 solo sul primo pacchetto di ogni flusso, permettendo ai successivi di seguire un percorso agevolato (allinterno dello switch) . Packet By Packet: comporta lanalisi di ogni pacchetto al fine di determinare se per esso gi esiste un percorso agevolato in funzione dellindirizzo del destinatario.

Architettura dei Routers


La trasformazione di Internet in una infrastruttura commerciale non solo ha determinato una crescente domanda di BANDA ma ha anche cambiato significativamente le aspettative degli utenti. Se in passato lo scopo principale dei Router era quello di garantire la comunicazione tra reti anche diverse tra di loro, oggi diventa fondamentale soddisfare due esigenze in contrapposizione tra loro: 1) Gli utenti si aspettano di ricevere dagli Internet Service Provider (ISP) servizi sempre pi affidabili, sicuri e veloci e soprattutto tariffe che siano proporzionali alla qualit del servizio ricevuto. 2) Gli ISP vogliono massimizzare lutilizzo dei costosi Link, multiplexando le informazioni che i vari utenti inviano sulla rete. Il problema fondamentale riuscire a classificare i pacchetti che viaggiano sul Link alla stessa velocit con cui si esegue il Look-up nelle tabelle di instradamento. La criticit diventa evidente se si pensa che tra i servizi che si vogliono offrire ai clienti, vi sono quelli real-time tipo video e audio.

Anche se i passaggi dai Router ai Layer3 Switch e da questi ai Gigabit Router non si possono considerare delle rivoluzioni, hanno comunque comportato una evoluzione sia dal punto di vista architetturale che da un punto di vista funzionale. Per quanto riguarda le architetture ne esistono di due livelli: Data Plane, che essenzialmente si occupa del processo di forwarding e Control Plane che si occupa invece del processo di routing. In generale si assistito ad una migrazione delle competenze del Data Plane, che da implementazioni software sono passate a realizzazioni interamente hardware. Motivi di Marketing hanno spinto i costruttori a distinguere questi tre prodotti, ma nella trattazione con il termine Router si intenderanno tutti questi, non distinguendo di fatto i tre tipi di dispositivi.

Cache
Molti router realizzano un instradamento di tipo Flow Based. Questo consiste nel memorizzare in una cache le route relative alle destinazioni usate pi di recente in modo che i pacchetti appartenenti ad un flusso presente in tale memoria possano seguire un percorso agevolato: Fast Path. Se i pacchetti non ricavano la route dalla cache allora devono essere analizzati e passano attraverso lo Slow Path. Spesso viene messo in discussione il futuro di questo meccanismo, infatti al crescere del numero di nodi diminuisce lhit-rate. Per limitare questo problema si utilizzano delle funzioni di hash per comprimere il valore da memorizzare nella route: si passa da 32 a 8-10 bit. Le funzioni di hash presentano per due problemi: 1) Sono traffic-dependend

Evoluzione
I dispositivi che realizzano linstradamento a livello 3 appartengono a 2 categorie: Router (Router + Layer3 switch + Gigabit Router) e Multi-Layer Switch. Questi ultimi sono dispositivi che sfruttando le conoscenze acquisite nella realizzazione delle reti IP/ATM, si propongono di ridurre i tempi di latenza del pacchetto allinterno dello switch, attraverso due strategie:

TECNONET S.p.A.

2) Espongono il router ad attacchi da parte di hacker, che possono scoprire il tipo di traffico che fa generare pi collisioni alle funzioni di hash, e utilizzarle per intasare il fast path Unaltro problema di questa soluzione pu determinare la violazione dei doveri contrattuali del provider nei confronti dei suoi utenti. Vediamo un esempio:

progetti non rivestono ancora vitale importanza in effetti con velocit aggregate di 500 Kpps costituiscono dei colli di bottiglia per linternetworking.

Multiple Processor Shared Bus

Processo di Forwarding: 1) Linterfaccia passa il pacchetto alla CPU che in quel momento libera. 2) La CPU invia il pacchetto allinterfaccia di uscita. Il sistema diventa multiprocessor, quindi richiesto un Arbitro per gestire la contesa del Bus. Questo blocco deve anche segnalare alle Interface Card quale CPU libera, in modo che i pacchetti siano inviati al processore che in grado di gestirli. Il Bus rappresenta ancora un collo di bottiglia. Unaltra possibilit prevede di mantenere una sola CPU, ma di utilizzare delle Interface Card pi intelligenti, dotate di un processore e di una cache, che contiene parte della tabella di Instradamento.

Supponiamo che per i pacchetti rossi, il provider garantisca un servizio Real-Time. Come si vede anche se i buffer di uscita per i pacchetti rossi sono disponibili questi vengono bloccati in ingresso a causa dei pacchetti gialli che invece hanno i relativi buffer di uscita bloccati. Purtroppo non c modo di risolvere questo problema in quanto patologico di questo meccanismo.

Architetture
Single Processor Shared Bus

Processo di Forwarding: 1) Linterfaccia di ingresso passa il pacchetto alla CPU . 2) La CPU invia il pacchetto allinterfaccia di uscita. I Router sono basati su un'unica CPU general purpose e Sistemi Operativi(SO) Real Time. La scelta di questi ultimi diventa fondamentale per ottenere prestazioni sufficienti, infatti le risorse messe a disposizione da questa architettura sono limitate ed un loro sfruttamento ottimale diventa necessario. La memoria una Ram di tipo statico che deve contenere la tabella di Instradamento. Il Bus condiviso dalle varie interfacce e dalla CPU e costituisce un collo di bottiglia dellarchitettura. IP non si ancora affermato come il principale protocollo di livello 3, quindi di primaria importanza far in modo che le varie architetture siano in grado di comunicare tra loro. Le prestazioni in questi primi

Il grande vantaggio legato al fatto che grazie al fatto che il Look-up pu essere fatto direttamente dallinterfaccia, il messaggio attraversa il Bus una volta sola, almeno nel caso migliore. Le entry della cache possono determinare il percorso sulla base delle connessioni oppure dellindirizzo del destinatario, nel senso che le routes usate pi recentemente sono copiate nella cache dellinterfaccia, che quindi in grado di realizzare linstradamento senza coinvolgere la CPU. Si parla in questo caso di Fast Path, che si contrappone alla situazione in cui il processo di forwarding debba accedere alla tabella di routing, perch la route desiderata non presente nella cache. Si parla allora di Slow Path. Linstradamento sulla base della connessione pi complesso perch richiede il riconoscimento dei flussi di dati in tempi ristretti. Oltretutto la gestione della coerenza della cache con la memoria principale, dove contenuta la tabella di routing, richiede un ulteriore logica. I limiti di questa architettura sono il Bus che ancora condiviso, e il fatto di dipendere dal tipo di traffico.

Multiple Processor Space Switching


Processo di Forwarding:

TECNONET S.p.A.

10

1) Se il pacchetto pu essere direttamente instradato dallInterface Card che lo riceve allora viene mandato allInterface Card duscita. 2) Se lInterfaccia non in grado di smistarlo allora passa il pacchetto alla CPU che provvede a realizzare il Look-up. La route utilizzata viene copiata nella cache dellinterfaccia mittente che pu ora instradare direttamente i pacchetti che appartengono alla stessa connessione.

Il punto di forza di questa architettura, costituito dal Forwarding Engine . Esistono due possibilit per realizzare questo componente: La prima e la pi semplice quella di utilizzare un componente unico per svolgere tutte le funzioni per la gestione del pacchetto. Bisogna considerare che le strutture dati necessarie a gestire i vari pacchetti devono essere replicate per ogni FE, che in questo modello sono responsabili di un set di link. Sono quindi richieste grosse memorie, che per lelevato costo non possono essere anche veloci. Inoltre essistono problemi di sincronizzazione per mantenere consistenti le Forwarding table dei vari FE. La seconda prevede invece di utilizzare un unico dispositivo responsabile di tutti i link costituito da pi blocchi che siano in grado di gestire separatamente le varie funzioni necessarie: Buffering Filtering e classificazione dei pacchetti Determinazione del Next Hop Accodamento sullinterfaccia di uscita Schedulazione dei pacchetti in base alle strategie decise per implentare la differenziazione dei servizi

E una soluzione che permette di superare i vincoli legati al Bus Condiviso grazie allintroduzione del CrossBar Switch. La gestione del bus avviene tramite matrice di commutazione che permette la comunicazione in parallelo tra diverse sorgenti e diverse destinazioni. E una commutazione derivata da quella ATM e permette troughput dellordine dei Gpps. Il resto dellarchitettura simile a quella precedente. Spesso le CPU sono ancora general purpose, il che non li rende ancora adatti per la gestione di link veloci.

Shared Parallel Processor Space Switching

Nel Forwarding Engine ci sono cinque elementi fondamentali: Processo di Forwarding: 1) Se il pacchetto pu essere direttamente instradato dallInterface Card che lo riceve allora viene mandato allInterface Card duscita. 2) Se lInterfaccia non in grado di smistarlo allora passa la prima parte del pacchetto al Forwarding Engine (FE) che provvede a realizzare il Look-up. La parte del pacchetto viene aggiornata e restituita allinterfaccia mittente che a sua volta lo instrada verso la destinazione. Viene aggiornata la Cache dellinterfaccia mittente. 3) Se neanche il Forwarding Engine in grado di gestirlo allora viene passato alla CPU che se non in grado di gestirlo lo scarta. In caso contrario il pacchetto ritorna allinterfaccia mittente che lo instrada. Viene aggiornata la Cache dellinterfaccia mittente. Concentator. Scheduler: seleziona il flusso di pacchetti in base alle politiche DiffServ Filter Processor: implementa funzioni di sicurezza e identifica i flussi di pacchetti che hanno propriet comuni Route Look-up: determina il Next Hop Buffering: accoda i pacchetti in base alle politiche DiffServ

Oltre a non risentire degli svantaggi identificati per la prima soluzione presenta anche i seguenti vantaggi: 1) Limportanza del sistema operativo diminuisce, infatti non bisogna pi gestire le sincronizzazioni tra le varie tabelle 2) Le operazioni svolte singolarmente dai vari processori sono semplici e quindi adatte ad una implementazione hardware con degli ASICs. Questo permette Up-Grade del sistema in modo semplice ed economico semplicemente sostituendo gli ASICs.

TECNONET S.p.A.

11

Table Look Up
Probabilmente la pi importante operazione di un Router consiste nel Look-Up nella Routing Table: quella che richiede pi tempo e pi utilizzo del processore ed determinante per le prestazioni di questo elemento. Le caratteristiche richieste da un algoritmo di routing sono: 1) Prestazioni elevate al fine di permettere throughtput dellordine di 10 Mpps 2) Flessibilit per gestire : traffico di tipo Unicast e Multicast ,flussi a Banda Garantita, IPv6 3) Costi contenuti : lobiettivo di arrivare ai costi degli apparati di internetworking di livello 2 Attualmente nessuno degli algoritmi in grado di soddisfare pienamente le richieste dei Gigabit Router. Vediamo comunque le soluzioni pi interessanti.

gira in background aggiorna la tabella di routing per essere coerente con la situazione corrente. Questa tabella contenuta anche grazie al fatto che, nonostante la dimensione dellindirizzo sia di 32 bit una funzione di hash comprime linformazione necessaria ad eseguire il look up a 8-10 bit. Ogni indirizzo corrisponde ad un solo valore della funzione di hash, ed ogni valore della funzione associato a pi indirizzi. Passi dellalgoritmo: 1) Calcolo della funzione di hash relativa allindirizzo IP di destinazione 2) Confronto in parallelo con tutte le entries della hash table Vista la semplicit dellalgoritmo la limitata dimensione della tabella si presta ad una implementazione hardware. Esistono per degli svantaggi notevoli. Il primo legato al fatto che non si sfrutta la struttura gerarchica dellindirizzo IP, infatti le funzioni di hash vengono calcolate sullintero indirizzo, il secondo un problema patologico di questo tipo di funzioni che pu generare lo stesso valore per diversi indirizzi. Questo comporta un diverso ritardo per i pacchetti, la cui funzione genera una collisione. Situazione peraltro pi probabile al crescere delle dimensioni della rete.

Patricia Tree
E lalgoritmo pi utilizzato nei router di tipo Slow Path ed implementa il Longest Prefix Match. Associa ad ogni prefisso una porta di uscita ed un Next Hop MAC Address. La Forwarding Table memorizzata in un Albero binario. La root dellalbero associata al bit pi significativo, le foglie determinano la route relativa o allindirizzo completo, nel caso si tratti di un Host direttamente connesso al router, oppure quella pi specifica per quella destinazione. Lalgoritmo prevede i seguenti passi: 1) Si analizza la root e si decide se analizzare il sottoalbero di destra o di sinistra 2) Si analizzano i successivi nodi. I nodi appartenenti ad un livello sono associati a bit sempre meno significativi man mano che si scende lalbero. 3) Lalgoritmo esegue sempre le stesse operazioni per ogni nodo dellalbero. Eventualmente vengono raggiunte le foglie che determinano la route pi specifica per quella destinazion 4) Se questa fase non determina la route , lalgoritmo riesamina lalbero , confrontando lintero indirizzo con i prefissi contenuti in tutti i nodi 5) Nel caso peggiore si analizzeranno tutti i rami e si determiner la route di default perch non esiste una entry per quel pacchetto E stato pensato per applicazioni software con processori general purpose perch sarebbe complesso da realizzare in hardware . E anche utilizzato per costruire le Forwarding Table attraverso i protocolli di routing.

Patricia tree + Hashing Route


Per reti semplici la soluzione migliore una combinazione delle due soluzioni sopra esposte. La prima utilizzata nel Fast Path che si basa su tabelle con circa 10.000 prefissi mentre la seconda utilizzata nello Slow Path che associato a tabelle che ne contengono circa 50.000. Questa soluzione non scalabile soprattutto a causa dei problemi legati alla cache: la localit dei pacchetti un concetto che viene meno al crescere del numero di nodi da gestire. Inoltre limiti intrinseci dei due algoritmi possono condizionare le prestazioni del sistema, infatti se il Best-Case pu offrire throughput elevati, nel Worst-Case la situazione inaccettabile arrivando ad assorbire quasi interamente il processore che deve determinare la route. Per quanto riguarda i vari tipi di traffico, il comportamento di questi router non omogeneo e se ne possono valutare le prestazioni solo su basi statistiche: non vi garanzia che un pacchetto non sia costretto ad attraversare lo slow path, indipendentemente dal tipo di pacchetto. Risulta quindi che non sono indicati per servizi del tipo a banda garantita.

ASIK
Se consideriamo i Gigabit Router, nel caso peggiore (pacchetti da 64 byte), dobbiamo essere in grado di gestire fino a 1,5 Mpps, cio abbiano 672 nanosecondi per ricevere il pacchetto determinare una route e rispedirlo sulla rete. Queste velocit di fatto scartano la possibilit di usare algoritmi implementati in software e di conseguenza i due precedentemente analizzati.

Host Route Hashing


A differenza del precedente si basa sul match esatto delle informazioni di instradamento. Si suppone che in un certo momento ci siano poche centinaia di pacchetti che richiedono il look-up. Un processo software che

TECNONET S.p.A.

12

Esiste un algoritmo realizzato da Ahuja-ShahIllingworth-Kanakia presso la Torrent Networking che si presta ad implementazione hardware, ma del quale non sono stati resi noti i dettagli. Sono comunque disponibili le caratteristiche: Tabelle di routing di dimensione variabile, algoritmo Longest Prefix Match per minimizzare il numero di accessi. Nel router IP9000 la Forwarding Table contiene oltre 200.000 prefissi. La gestione dei pacchetti wire speed anche con Link dellordine del Gb/s. Lalgoritmo si presta ad un implementazione hardware compatta ed economica riducendo cos i costi di produzione. Il numero di accessi in memoria dipende dalla dimensione della Tabella di routing, ma le elevate prestazioni che lalgoritmo permette consentono di utilizzare memorie pi lente, capienti ed economiche Come il Patricia Tree richiede una quantit di memoria che dipende dal numero di subnets piuttosto che dal numero di hosts E deterministico e ha un wost-case di 16 accessi in memoria per determinare la migliore route. Questo permette di eseguire il Look-up quando il pacchetto non stato ancora ricevuto completamente E abbastanza flessibile da permettere ricerche basate su pi campi dellheader IP, piuttosto che sul semplice Destination Prefix. Questa caratteristica utilissima se si vogliono implementare protocolli quali RSVP Estrema facilit e velocita per laggiunta o leliminazione di routers

aggregazioni di pacchetti con un numero contenuto di regole. Se lalgoritmo si basa sul match esatto allora le regole devono essere preprocessate per essere convertite da regole generali a regole specifiche per un solo datagram. In pratica questo non fattibile perch il numero delle regole crescerebbe esponenzialmente. 2) Devono esistere delle priorit per le regole, in modo da risolvere eventuale conflitti che possono nascere nel caso un flusso soddisfi pi condizioni. Non molto interessante il limite asintotico dellalgoritmo, quanto la possibilit di dividere il problema principale in sottoproblemi che possano essere risolti in parallelo. Una implementazione interessante quella utilizzata in un prototipo Bell Labs che usa un dispositivo FPGA (FieldProgrammable Gate Array) e una SRAM sincrona per gestire fino a 512 regole e processare 1 Mpps nel worst-case.

Gestione delle risorse


Le risorse critiche che un router deve gestire sono la banda, che deve essere divisa tra i vari link, e i buffers. Uno scheduler che alloca dinamicamente la banda, concede ai flussi di datagrams laccesso al link. Se un determinato flusso non contiene pacchetti, viene comunque schedulato e questo fa perdere del tempo inutilmente. Per i flussi adattativi, cio quelli che si adattano alla situazione della rete, particolarmente importante sfruttare la banda fornita dallo scheduler. Sono cos necessari dei buffer, che assicurino lesistenza di dati da far transitare sul link, una volta ottenutone laccesso. Il livello di condivisione dei link, viene settato per classi dal manager della rete oppure attraverso protocolli di segnalazione quali RSVP. I pacchetti che arrivano al router sono raggruppati per classi, lo scheduler selezioner una di queste classi, e il pacchetto sar trasmesso secondo una strategia FIFO.

Packet Filtering e classificazione


Una delle specifiche pi importanti che il Forwarding Engine deve soddisfare e quella di identificare il flusso cui appartiene un pacchetto e comportarsi di conseguenza. Questa caratteristica che dapprima era utilizzata per implementare meccanismi di sicurezza come per es. i FireWall, viene ora anche utilizzata per fornire servizi differenziati ai vari flussi di datagrams. Il Packet Filtering in questo caso necessit anche informazioni presenti nel header di TCP/UDP e segue delle regole stabilite o dallamministratore della rete o da protocolli di routing quali RSVP. Il problema della classificazione dei pachetti pu essere visto come segue: dato uno spazio n-dimensionale e un punto al suo interno determinare loggetto che lo contiene dove gli assi del sistema di riferimento rappresentano le regole ( per es. potrebbero essere IPsrc, IPdest, Type, PORTsrc e PORTdest presenti negli headers ) il punto il pacchetto e loggetto il flusso in cui deve essere inserito il pacchetto. Due importanti caratteristiche che le regole devono avere sono: 1) Devovo applicarsi ad un insieme di indirizzi, numeri di porta o protocolli e non esattamente ad uno solo di essi. Questo permette di gestire

Lo scheduler condizionato dal fatto che il flusso pu essere adattativo o non adattativo. Nel primo caso il flusso incrementa la sua portata finch colma la banda messa a disposizione dal router, nel secondo caso la portata stabilit in funzione dellapplicazione. Solitamente flussi diversi relativi alla stessa

TECNONET S.p.A.

13

applicazione sono aggregati. Lo stato dellarte per quel che riguarda gli algoritmi di allocazione della banda costituito dall Hierarchical Link Sharing mentre per la gestione dei buffer si pensa ad un accodamento di tipo Per-Flow Queueing.

priorit. Per esempio se non esiste traffico di tipo BE1 sar BE2 a sfruttarlo. Il vantaggio di questo schema che possiamo usare le stesse strutture dato e lo stesso algoritmo, che implementa sia SVC sia SPQF, per gestire classi che richiedono servizi differenti.

Hierarchical Link Sharing


Si basa su uno schema che permette laggregazione delle risorse a diversi livelli. La banda viene suddivisa in una gerarchia di classi, che sono formate da un insieme di flussi che hanno determinate propriet in comune. Possono essere il tipo di protocollo utilizzato, un insieme di sottoreti attraversato, etc.. La classe pi specifica riguarda i pacchetti che appartengono ad una determinata applicazione. Ogni nodo della gerarchia pu dividersi equamente la banda con gli altri nodi dello stesso livello oppure seguire una determinata strategia di allocazione. Di seguito riportato un esempio.

Per-Flow Queueing
Laccodamento per connessioni considerato impraticabile, visto gli elevati costi che si dovrebbero sostenere per implementare un architettura in grado di memorizzare informazioni sulle centinaia di migliaia di connessioni che possono attraversare le dorsali di rete. Cos quello che si fa cercare di limitare il numero di informazioni necessarie sulla base delle seguenti considerazioni: Conservare delle informazioni sullo stato di tutte le connessioni pu non essere necessario al fino di garantire un Fair Queueing E necessario conoscere il peso dei vari flussi, che spesso specificato per una classe di flussi piuttosto che per i flussi singoli Sono necessarie delle informazioni circa il servizio da offrire alle varie classi.

Il raggruppamento in classi fatto durante la fase di Packet Filtering i flussi vengono aggregati secondo determinate regole, per es. probabile che flussi TCP saranno raccolti in una classe FTPlike ed in una TELNETlike. Si capisce quindi che il numero di informazioni decresce fortemente con il raggruppamento in classi. I cerchi arancione rappresentano i nodi schedulati con schema Start-Potencial-based worst-case FairQueueing (SPFQ) mentre quelli verdi con Shaped Virtual Clock (SVC). Il primo distribuisce la banda equamente tra le classi che la richiedono mentre il secondo garantisce una schedulazione periodica di quella classe. E quindi particolarmente adatto per flussi che richiedono una banda garantita. Nel nostro esempio abbiamo tre nodi, con traffico distributo come segue: Nodo A : Costant Bit Rate (CBR) e Best Effort (BE). La banda assegnata secondo un algoritmo SVC, per il traffico CBR, e SPQF per quello BE. Questo meccanismo permette al BE di sfruttare tutta la banda in eccesso assegnata alla classe CBR. Nodo B : traffico Voice e BE. Tutta la banda assegnata al traffico di tipo Voice, cosicch il BE sar schedulato solo se non c traffico del primo tipo. Nodo C : traffico BE con diverse priorit. Vengono assegnati diversi pesi alle varie classi che in questo modo si dividono il traffico per ordine di

MultiGigabit Router

E un dispositivo in grado di instradare fino a 10 Mpps con Bandwidth di 50 Gb/s, ottimizzato per traffico di tipo IP. Paragonato alle architetture esposte precedentemente possiamo dire che uno Shared Parallel Processor Space Switching con processori di tipo general purpose per gestire le Interface Card. Il progetto si basa sulle seguenti scelte architetturali: 1) Ogni Forwarding Engine ha una propria Forwarding Table. Questo approccio diverso da quello tradizionale che prevedeva una copia

TECNONET S.p.A.

14

2)

3)

4)

5)

6)

7)

8)

centralizzata della tabella pi delle cache distribuite sui vari processori. Siccome i Forwarding Engine necessitano solo di un riassunto della tabella principale, le loro copie sono molto pi contenute: 100KB bastano per contenere le informazioni necessarie per 50.000 routes. I Forwarding Engine non risiedono a bordo delle Line Card. Questa soluzione in controtendenza rispetto ai router tradizionali ed motivata dalle seguenti considerazioni: Difficolt nellinserire sia questi processori che la logica per la gestione delle Line Card in supporti dalle dimensioni ridotte Meglio ingombranti Forwarding Engine, ma con buone prestazioni, piuttosto che dispositivi contenuti ma dalle limitate prestazioni Flessibilit per la gestione delle VPN : dedicando un Forwarding Engine ad ogni Line Card possibile che tutte le interfacce che appartengono alla stessa rete virtuale comunichino senza attraversare e quindi affollare il CrossBar Switch Il Forwarding Engine non essendo vincolato a nessuna Line Card, (sulla quale tutte le interfacce presenti devono usare lo stesso protocollo di livello 2) pu gestire pacchetti di tipo diverso . Questo permesso dal fatto che le Line Card trasformano il pacchetto ricevuto in un formato specifico, in un formato astratto che uguale per tutti i datagrams QoS processor a bordo delle Line Card

Conclusioni
Dopo un periodo di valutazione delle varie architetture, le industrie che producono apparati di networking hanno riconosciuto che lintelligenza dei router una richiesta fondamentale per la costruzione di grandi reti. I venditori hanno incominciato ad interessarsi del problema del routing veloce sono comparse sul mercato una serie di alternative. Le elevate prestazioni di un router non dipendono solo dalla velocit con cui instrada i pacchetti, ma anche dallefficienza nel classificarli e nel determinare la miglior route. R. Gaeta Bibliografia: Evoluzione dei routers Tesi di A. Seato

TECNONET S.p.A.