Firewall
Firewall Router con funzionalità aggiuntive collocato tra una rete privata e il resto di Internet Inoltra/filtra i pacchetti che lo attraversano Permette di avere politiche di sicurezza centralizzate Spesso integrato con NAT
Firewall Il firewall (lett. muro tagliafuoco) è un dispositivo hardware o software che permette di proteggere e quindi filtrare il traffico da e verso un singolo PC, o una rete LAN, al fine di evitare accessi non autorizzati. Il traffico diretto alla rete deve attraversare questo dispositivo creando una barriera inattaccabile con cui offrire sicurezza alla LAN Esso ispeziona il flusso di dati, intervenendo in base a regole che l’amministratore ha deciso. I firewall di ultima generazione hanno la caratteristica “stateful inspection” cioè di tener traccia delle connessioni che li attraversano verificandone lo stato.
Funzioni di un Firewall Un FIREWALL svolge, normalmente, le funzioni di filtro e mascheramento di pacchetti IP: INPUT determina cosa può ARRIVARE OUTPUT determina cosa può USCIRE FORWARDING inoltra un pacchetto dall’interno verso l’esterno e viceversa PRE/POSTROUTING utilizzando la tecnica NAT maschera l’indirizzo reale dei PC di una lan, con il proprio (come abitualmente per VPN)
Componenti di un Firewall Packet-filtering Network Layer Application level gateway (Proxy)Session Layer Circuit level gateway Transport Layer NAT e VPN Spesso ma non necessariamente presenti tutte insieme
Packet Filtering (Network Layer) Filtraggio basato su header pacchetti (su ogni singolo pkt) IP source/destination UDP/TCP Source/destination port ICMP message type Payload (UDP, TCP, tunnel…
Packet Filtering (Network Layer) - Il firewall ha una tabella di filtraggio - Tipicamente ogni riga e’ una 4-pla (SourceIP, SourcePort, DestIP, DestPort) • ( 192.12.13.14, *, 128.7.6.5, 80 ) • (*,*, 128.7.6.5, 80 )
Application Gateway-Proxy (Session Layer) Un proxy per ogni applicazione Il proxy si comporta come un server verso il client locale e come un client verso il server remoto Si può disabilitare traffico IP tra interno ed esterno e si possono far interagire con l’esterno soltanto le applicazioni presenti nel proxy
“Open http://bmrc.berkeley.edu” Proxy Server Gateway FTP Proxy Server TCP Connection 1 TCP Connection 2 HTTP Proxy “Open http://bmrc.berkeley.edu” 128.32.32.68 HTTPS Proxy bmrc.berkeley.edu DNS Server Si può permettere l’accesso al proxy solo ad alcuni host sulla rete “interna” seguendo tecniche di autenticazione diverse (IP, dominio etc.)
Esempi di proxy specifici Http: filtraggio delle URL (client/server) blocco di alcune porte azioni diversificate in relazione a indirizzo IP sorgente FTP: meccanismi antivirus Posta elettronica meccanismo antispam
Proxy - FTP
Circuit Level Gateway (Transport Layer) Si tratta in pratica di un proxy a livello di trasporto (UDP o TCP) Permette il funzionamento di tutte le applicazioni che rispettano le specifiche a livello di trasporto Esempio: si decide di permettere tutto e solo il traffico TCP e, per UDP, soltanto quello DNS - Tutte le applicazioni basate su TCP funzionano senza modifiche e cosi’ pure il DNS
Dove effettuare il filtraggio In ingresso: - so da quale interfaccia arriva il pacchetto proteggo il sistema locale In uscita: - gestisco anche il traffico generato localmente Rete interna 1 Internet (rete esterna) Rete interna 2 Firewall Rete interna 3
Firewall Architecture
Packet Filtering Architecture Economico - Semplicemente un router che fa packet filtering (Network Layer) Regole: di solito tutto il traffico che non è esplicitamente consentito è vietato
Dual Homed Architecture Almeno due interfacce di rete (e relativi indirizzi IP) Tutto ciò che non è permesso è vietato Non è possibile traffico IP diretto tra interno ed esterno Può inglobare packet filtering, application gw, circuit level gw
Screened Host Architecture Application GW, packet filter e circuit level GW - Accesso ai server locali dall’esterno soltanto attraverso il GW - Accesso verso la rete esterna anche senza passare dal GW
DeMilitarized Zone (DMZ) Come per la Screened host architecture ma con un ulteriore router interno Massimo grado di sicurezza Solo i server pubblici stanno nella dmz
Firewall IPCOP
Caratteristiche IPCop è una mini-distribuzione GNU/Linux opensource. Garantisce un’efficiente sicurezza perimetrale della rete impedendo intrusioni esterne non autorizzate L’immagine iso di circa 45 MB è scaricabile direttamente dal sito http://www.ipcop.org IPCop è un’ottima soluzione per piccole reti, reti aziendali. Può essere adattata ad ogni esigenza e può essere usata anche su hardware piuttosto datato La sua gestione avviene mediante un'interfaccia Web accessibile da qualsiasi PC connesso alla rete ed anche da remoto Il progetto IPCop è stato sviluppato dal 2001 e risulta ormai un prodotto maturo che riscuote successo in una vasta comunità di utilizzatori Fa da application gateway (proxy) per WEB e DNS Fa da packet filtering e circuit level filtering Implementa NAT/PAT Gestisce VPN LAN-to-LAN e client-to-LAN Gestisce DMZ
Caratteristiche Firewall basato su Netfilter/Iptables con kernel 2.4.X File system ext3 e supporto device SCSI. Supporto per quattro interfacce di rete. Supporto modem (analogici, ISDN, ADSL). Supporto DMZ. Supporto server SSH per connessioni remote. Gestione NAT/PAT. Supporto server NTP per sincronizzare data e ora a due schede. IDS (Intrusion Detection System) su tutte le schede di rete. Gestione VPN. Supporto proxy per il Web. Caching e Dynamic DNS. Logging avanzato per ogni tipo di servizio. Grafici di stato e di traffico. Amministrazione e gestione attraverso il browser (http e https). Possibilità di patches e updates. Backup e Restore della configurazione.
Interfacce di rete Gli adattatori di rete sono individuati con dei colori: RED rappresenta l’interfaccia connessa ad internet. GREEN rappresenta l’interfaccia per la rete interna. BLUE rappresenta l’interfaccia per una seconda rete interna o per una rete wireless. ORANGE rappresenta l’interfaccia per un’eventuale zona DMZ in cui si trovano server che offrono servizi all’esterno. L’applicazione minima prevede due interfacce di rete, quella verso internet (RED) e quella verso la rete locale (GREEN) da proteggere. Nel caso in cui esistono due reti locali che devono rimanere fisicamente separate si utilizza anche l’interfaccia BLUE.
Schema funzionale
Tipi di Configurazione GREEN + RED (LAN + WAN) (2 schede di rete) GREEN + ORANGE + RED (LAN + DMZ + WAN) (3 schede di rete) GREEN + BLUE + RED (LAN + rete wi-fi + WAN) (3 schede di rete, 1 AP) GREEN + BLUE + ORANGE + RED (LAN + rete wi-fi + DMZ + WAN) (4 schede di rete, 1 AP)
Configurazione (Web)
Tipologie di Servizi SISTEMA Inizio | Aggiornamenti | Password | Accesso SSH | Impostazioni interfaccia | Salvataggio | Arresto | Crediti STATO Stato sistema | Stato rete | Grafici di sistema | Grafici traffico | Grafici proxy | Connessioni NETWORK Connessioni | Upload | Modem | Alias IP SERVIZI Proxy | Server DHCP | DNS dinamico | Modifica host | Time server | Gestione banda | Rilevamento intrusioni FIREWALL Port forwarding | Accesso esterno | DMZ pinholes VPN VPN LOG Impostazioni log | Sommario log | Log proxy | Log di sistema
Servizi: accesso ssh
Servizi: rilevamento intrusioni (SNORT)
Servizi: Web Proxy (Squid)
Servizi: Accesso esterno (management)
Servizi: NTP
Servizi: Port forwarding (accesso a risorse interne)
Servizi: gestione DMZ Permette l’accesso dalla rete ORANGE e dalla BLU ai servizi della GREEN
Servizi: VPN
ADDONS IPCop può essere reso più performante e più versatile mediante l’installazione di alcuni moduli o software aggiuntivi detti “ADDONS”. La lista dei siti web, dove scaricare gli addons in formato tar.gz, è presente sul sito ufficiale sezione “Addons”. I più forniti sono: • http://firewalladdons.sourceforge.net • http://www.mhaddons.tk
ADDONS Gli addons possono essere installati in due modi: 1. Installazione tramite shell 2. Installazione lato web dopo aver installato Addon Server Addon Server è un modulo che permette l’installazione di addons compatibili con la versione di IPCop utilizzata. Supporta l’installazione solamente degli addons disponibili nella relativa pagina web. http://firewalladdons.sourceforge.net
TIPI di ADDONS BLOCK-OUT-TRAFFIC (www.blockouttraffic.de) Blocca tutto il traffico in uscita non autorizzato • ADVPROXY (www.advproxy.net) Frontend avanzato di Squid • URLFILTER (www.urlfilter.net) Web content filter basato su SquidGuard. • COP+ (home.earthlink.net/~copplus) Web content filter basato su DansGuardian • COPFILTER (www.copfilter.org) Scansiona e filtra il traffico da virus e spam • OPENVPN (www.zerina.de) Per implementare in modo semplice una VPN client-to-LAN
Firewall alternativi ASTARO SECURITY LINUX http://www.astaro.com Distribuzione commerciale con comoda interfaccia web e notevoli funzionalità: firewall, VPN, antivirus, antispam, content filtering, antispyware, intrusion IDS SMOOTHWALL http://www.smoothwall.org Storica distribuzione per firewall con la versione Express (free) e versioni commerciali. Supporto VPN, antivirus, antispam, content filtering, antispyware, intrusion detection, kernel 2.6.x ENDIAN http://www.endian.it Progetto tutto italiano dedicato alla protezione delle reti. Esiste una versione opensource e una commerciale. Supporta in modo nativo antivirus, antispam, content filtering, IDS oltre ai normali servizi di firewalling e di rete DEVIL LINUX http://www.devil-linux.org Può essere caricata direttamente da CD o USB. Ha un kernel hardened con GRSecurity e una interfaccia testuale per la gestione del sistema M0n0WALL http://www.m0n0.ch Non è basata su Linux ma su FreeBSD. Ha una comoda interfaccia, supporto DHCPd, IPSEC, PPTP, SNMP. Notare che usa ipfilter e non iptables.
Esempio di VPN LAN-to-LAN
Ipsec.conf config setup interfaces="ipsec0=eth0" klipsdebug=none plutodebug=none plutoload=%search plutostart=%search conn %default keyingtries=0 conn site1-site2 left=207.151.222.2 leftsubnet=192.168.1.0/24 leftnexthop=207.151.222.1 right=172.35.55.8 rightsubnet=192.168.2.0/24 rightnexthop=172.35.55.1 auto=start authby=rsasig leftid=@sg1.yourdomain.com rightid=@sg2.yourdomain.com leftrsasigkey=0x--left-public-key rightrsasigkey=0x--right-public-key
IPCOP-VPN
IPCOP-VPN
IPCOP-VPN
IPCOP_VPN
IPCOP-VPN
IPCOP-VPN
IPCOP-VPN
IPCOP-OPENVPN
RETI MPLS (Multi Protocol Label Switching)
Perchè MPLS Possibilità per una rete aziendale di avere: Linee di “backup automatiche” (ridondanza, alta affidabilità) in caso di link failure Traffic Engineering: per la creazione di percorsi per il traffico dati indipendenti dalle tabelle di routing IP classiche (load balancing sulla rete)pacchetti con stessa destinazione instradati su link diversi (load balancing) QoS: MPLS può lavorare in congiunzione a DiffServ e IntServQoS garantita VPN: MPLS permette la creazione di VPN Alta efficienza di Routing (Label Switching) Multi-protocol support
MPLS-Obiettivi Migliorare le prestazioni, l’affidabilità e la scalabilità del routing IP Definire un meccanismo unico di trasporto adatto ad una molteplicità di protocolli diversi (interoperabilità) Definito dall’IETF dal 2001 (RFC 3031, 3032)
Principali caratteristiche di MPLS QoS support Traffic Engineering Virtual Private Networks (VPN) Multiprotocol support
QoS support DiffServ e IntServ hanno entrambi controindicazioni I network provider hanno necessità di Garantire specifici quantitativi di banda per determinate applicazioni Controllare la latenza / jitter Garantire i livelli di QoS specificati Configurare la QoS in base agli utenti MPLS fornisce un framework connection-oriented all’interno del quale è possibile soddisfare questi requisiti
Traffic Engineering Il routing “tradizionale” IP (e.g., OSPF) non prevede cammini multipli e opera su base pacchetto. MPLS opera su base flusso permettendo di usare route multiple tra punti di ingresso / uscita dalla rete. MPLS dà possibilità di rerouting in caso di link failure o traffic overhead
Virtual Private Networks MPLS permette di ottenere: Separazione dei flussi di una VPN da quelli del normale traffico Garantire ai flussi della VPN un elevato grado di sicurezza Inoltre: MPLS non ha necessità di “vedere” nemmeno l’header IP, per cui si possono creare VPN con crittazione anche degli header IP (senza doverlo rispecificare all’esterno)
Multiprotocol support MPLS non si basa su alcuna tecnologia in particolare, è possibile avere switch: IP MPLS ATM MPLS Frame Relay MPLS Inoltre gli switch MPLS-enabled possono coesistere con switch non-MPLS MPLS può “trasportare” qualsiasi tipo di protocollo, non soltanto IP -> multiprotocollo
Routing classico e Label Switching E’ tipico dei “tradizionali” Router IP Ambiente non orientato alla connessione (connectionless) Uso degli indirizzi espliciti per instradare il pacchetto Prestazioni limitate Label Switching Commutazione basata su etichetta (simile ad ATM livello 2 e su apparati proprietari) Ambiente orientato alla connessione (connection oriented) Identificazioni di flussi e uso di etichette Prestazioni elevate
Label Switching: Generalità È una tecnica di instradamento che introduce meccanismi orientati alla commutazione di circuito in ambienti a commutazione di pacchetto realizzando reti a commutazione di etichetta o label switching L’idea di base è quella di associare a tutti i pacchetti un breve identificativo di lunghezza fissa detto Label, questa sarà utilizzata, dagli apparati di rete, per effettuare un instradamento veloce basato sul suo valore
Label Switching : Instradamento tradizionale Nei router convenzionali la decisione di instradamento è presa solo sulla base dell’indirizzo IP di destinazione (sul percorso più breve) Non c’è controllo sull’instradamento
Label Switching : Instradamento con etichette Il label switching consente di assegnare etichette diverse a flussi diversi anche se diretti alla stessa destinazione I router instradano i pacchetti in base all’etichetta Si ottiene un controllo delle rotte seguite dai flussi di traffico, consentendo un efficace bilanciamento del traffico
MPLS: Storia Il principale limite delle varie soluzioni label switching è che sono proprietarie e non interoperabili Quasi tutte le soluzioni offerte dai vendor richiedono ATM come substrato, e quindi non possono operare con protocolli come Frame Relay, PPP, Ethernet, etc. IETF nel gennaio 1997 ha dato vita all’ MPLS Working Group al fine integrare le varie proposte in modo da produrre uno standard multivendor e multiprotocollo Il risultato è stato MPLS
MPLS: Pila ISO/OSI All’interno della pila ISO/OSI MPLS si colloca in uno strato intermedio compreso tra rete e il data-link Risulta quindi indipendente sia dalla sottorete di trasporto (Frame Relay, ATM, SDH etc.) sia dai protocolli di rete adottati
Label Switching La funzione di switching è eseguita esclusivamente mediante l’elaborazione delle label Label Switching Router (LSR) esamina la label associata al pacchetto sul link entrante determina la porta d’uscita sostituisce la vecchia etichetta con la nuova valida sul link d’uscita (label swapping) trasferisce in uscita il pacchetto Riduzione delle dimensioni delle routing table Il numero di entry di una routing table è dell’ordine del numero di FEC sui link entranti e uscenti ad un LSR (e non degli host/reti di destinazione)
Label Switching Forwarding Equivalent Class (FEC) Label aggregato di pacchetti che deve avere lo stesso trattamento in rete (es. stessa destinazione, stessa QoS)il numero delle FEC è sicuramente inferiore al numero di destinazioni Label identifica la FEC a cui appartiene un pacchetto lunghezza costante e breve validità locale (limitata ad un link tra due router)
MPLS: Processo di instradamento e FEC Nel processo di instradamento di un pacchetto possono essere individuate due fasi ricavare dall’ intestazione le informazioni necessarie per inserirlo in una determinata classe FEC ricavare le informazioni per l’instradamento dalla tabella di routing (o tabella FEC-To-Next-Hop) in base alla classe FEC di appartenenza Una FEC può essere quindi considerata come una classe di pacchetti che il router inoltra sulla stessa rotta
MPLS: Posizionamento dell’ etichetta La label è una entità breve e di lunghezza fissa chiamata shim header Non codifica indirizzi di rete E’ trasportata assieme al pacchetto, tipicamente è inserita tra l’intestazione del protocollo di livello due e prima dell’intestazione IP
Codifica delle Label
MPLS: Struttura dello Shim Header LABEL: è l’etichetta vera e propria utilizzata per il trasferimento Exp: 3 bit riservati per uso sperimentale (potrebbe indicare la classe di servizio a cui il pacchetto appartiene) S: è un bit usato nella tecnica di label stacking in reti MPLS gerarchiche è possibile utilizzare MPLS su diversi livelli di instradamento chiamati domini (simile al concetto di routing gerarchico) quando si entra in un dominio MPLS, viene aggiunta un’etichetta MPLS valida in quel dominio che viene rimossa quando se ne esce se non ci sono ulteriori etichette S = 1, altrimenti S = 0 TTL: tempo di vita del pacchetto
ROUTE AT EDGE, SWITCH IN CORE IP IP #L1 IP #L2 IP #L3 IP IP Forwarding LABEL SWITCHING IP Forwarding
Label Switching Accesso diretto alla routing table La coppia (port, label) determina la funzione da applicare alla label Pushing (assegnazione)primo router MPLS Swapping (conversione)router intermedio MPLS Popping (eliminazione)ultimo routing MPLS La coppia (port, label) determina l’uscita (port, label)
Allocazione delle Label Binding Operazione di assegnazione di una label ad una FEC La definizione delle FEC e le assegnazioni delle label sono effettuate prima dell’invio dei pacchetti dati E’ necessaria una fase di instaurazione preventiva La distribuzione delle etichette può essere effettuata mediante Un protocollo di segnalazione (Label Distribution Protocol) La configurazione dei router (binding statico) L’assegnazione può essere ad esempio basata su prefisso di destinazione (destination prefix) livello di qualità di servizio (QoS level) Local binding Assegnazione di una label ad una FEC eseguita autonomamente da un router Remote binding Assegnazione di un etichetta ad una FEC eseguita da un router remoto e comunicata al router mediante messaggi di segnalazione
Terminologia MPLS Label Switched Path (LSP) percorso che un pacchetto appartenente ad un certa FEC segue attraverso un dominio MPLS concatenazione di link in cui è attiva la label switching tunnel in cui transitano i pacchetti IP (MPLS Tunnel)
Terminologia MPLS Label Switching Router (LSR) eseguono le funzioni di forwarding dei pacchetti MPLS sono anche in grado di eseguire tutte le funzioni dello strato IP gestiscono i protocolli di segnalazione MPLS (es. Label Distribution Protocol)
Terminologia MPLS Ingress LSR È il router da cui inizia un LSP Processa il traffico IP entrante al dominio MPLS Assegna ai pacchetti la FEC appropriata Genera le label (label pushing) e forma i MPLS-PDU
Terminologia MPLS Transit LSR È un router intermedio di un LSP Processa il traffico all’interno di un dominio MPLS Esegue il forwarding delle MPLS-PDU e l’elaborazione delle label (label swapping)
Terminologia MPLS Egress LSR È l’ultimo router di un LSP Processa il traffico uscente da un dominio MPLS Rimuove le label MPLS (label popping) e estrae i pacchetti IP
MPLS: Funzionamento L’ LSR di ingresso al backbone MPLS analizza l’intestazione IP del pacchetto, classifica il pacchetto, aggiunge la label e lo trasmette al next hop LSR All’interno del dominio MPLS gli LSR instradano il pacchetto lungo il LSP in accordo con la label specificata L’ LSR di uscita rimuove la label ed il pacchetto viene instradato all’indirizzo destinazione in base all’indirizzo IP (cioè nel modo tradizionale).
MPLS: Rete di esempio
MPLS: Esempio di instradamento
Esempio di Label Switching
Label Distribution Protocol (LDP) Protocollo di controllo Insieme procedure con cui un LSR comunica ad un altro LSR l’esecuzione di un binding tra label e FEC Due LSR che comunicano mediante un Label Distribution Protocol sono detti Label Distribution Peer L’architettura MPLS non impone l’uso di uno specifico Label Distribution Protocol Protocolli LDP proposti BGP (estensione) RSVP (estensione) MPLS-LDP CR-LDP
Allocazione delle Label MPLS supporta due metodologie di allocazione delle label Controllo indipendente (Independent Control) Controllo ordinato (Ordered Control) Independent Control Ogni LSR assegna e distribuisce le label in modo indipendente (Local Binding) dagli altri Ordered Control l’allocazione e la distribuzione delle label avviene in modo ordinato in un ordine prestabilito tra gli LSR di ogni LSP (Remote Binding) E’ più lento del controllo indipendente, ma consente un maggiore controllo sulla rete da parte dell’operatore
Allocazione delle Label L’assegnazione di una label ad una FEC è effettuata dall’LSR a valle (Downstream binding) Downstream On Demand Un LSR riceve una richiesta di allocazione di una label dal LSR a monte Unsolicited Downstream Distribuzione delle etichette anche in assenza di richieste esplicite
MPLS Label Distribution 1 47.1 3 Request: 47.1 3 Request: 47.1 2 1 Mapping: 0.40 Egress router 1 2 Mapping: 0.50 47.3 3 47.2 2 Ingress router
Label Switched Path (LSP) IP 47.1.1.1 1 47.1 3 3 2 1 1 2 47.3 3 47.2 2 IP 47.1.1.1
Label Stack Un pacchetto MPLS può trasportare diverse label Vantaggi Un LSR elabora sempre e solo la label più esterna Vantaggi Gerarchia di routing Aggregazione di LSP individuali in “trunk” LSP (facilità di gestione su certe tratte gestione unica di LSP diversi, table più snelle) Virtual Private Networks (VPNs)
Label Stack Snellezza tabelle
Label Stack TE domain 2 TE domain 1 TE domain 3 LSR TE domain 2 LSR TE domain 1 LSR LSR LSR TE domain 3 LSP stitching To improve scalability, very large networks running MPLS can be divided into multiple traffic engineering domains. For example, the network can be partitioned into a number of IS-IS areas, which do not have complete information of the entire network. Because the traffic engineering database is constructed from information carried in IS-IS extensions, the traffic engineering domain cannot extend beyond an IS-IS area. CCC enables you to set up an LSP that extends beyond the limits of a traffic engineering domain by stitching LSPs from multiple domains together. You can also stitch together LSPs when one LSP extends into a separate BGP domain that might belong to another ISP. LSR Grandi reti possono essere divise in diversi domini su cui vengono applicate tecniche di traffic engineering diverse
Tabelle di Forwarding Un record di una tabella di forwarding in un LSR contiene L’ uscita verso cui deve essere rilanciato il pacchetto (next hop) L’operazione che deve essere effettuata sulla label entrante Label swapping Conversione della label più esterna da quella valida sul link entrante a quella valida sul link uscente Label popping Eliminazione della label più esterna Label pushing Introduzione di una nuova label in testa allo stack Le operazioni di label swapping e di label pushing possono essere svolte sullo stesso pacchetto dallo stesso LSR
Penultimate Hop Popping E’ conveniente rimuovere una label al penultimo LSR di un LSP per ridurre la complessità dell’elaborazioni eseguite dall’ultimo LSR
Instradamento MPLS Instradamento hop-by-hop (hop-by-hop routing) Un LSR sceglie il next hop dell’LSP indipendentemente dagli altri LSP Approccio classico IP Instradamento esplicito (Explicit Routing) Strictly explicit routing vengono specificati tutti gli LSR che saranno attraversati dall’LSP Loosely explicit routing vengono specificati parte degli LSR che saranno attraversati dall’LSP On-line (run-time): Constraint Based Routing (CBR) Off-line (pre-stabilito): algoritmi di pianificazione E’ utilizzato per il supporto di funzioni di ingegneria del traffico
Segnalazione MPLS E’ necessario un protocollo di segnalazione per Coordinare la distribuzione delle label Consentire l’instaurazione di LSP espliciti Consentire la prenotazione di banda (QoS) Gestire le Classi of Servizio (QoS) Riassegnazione delle risorse (in caso di re-routing) Possibili protocolli di segnalazione MPLS Label Distribution Protocol (LDP) Resource Reservation Protocol (RSVP) Constrained Routing with LDP (CR-LDP)
Possibile grazie all’Explicit Routing Traffic Engineering B C Demand A D Traffic engineering è il processo di mappatura della domanda di traffico sulla rete Network Topology Scopo del traffic engineering: Massimizzare l’utilizzo di link e nodi attraverso la rete Predisporre i link in modo da avere delay e qos garantite Distribuire il traffico su diversi link Garantire link alternativi per fare il re-routing del traffico in caso di link failure Soddisfare i requisiti (policy) imposti dal network operator Possibile grazie all’Explicit Routing
Perchè Traffic Engineering? What problem are we trying to solve with Traffic Engineering?
Breve Storia Primi anni 90 Internet ha un numero relativamente ridotto di router e link da gestire e configurare La gestione e configurazione può essere fatta manualmente Protocolli di routing IGP (Interior Gateway Protocol) con ricerca del cammino più breve erano sufficienti In the early 1990s, ISP networks were composed of routers interconnected by leased lines—T1 (1.5-Mbps) and T3 (45-Mbps) links. Traffic engineering was simpler then—metric-based control was adequate because Internet backbones were much smaller in terms of the number of routers, number of links, and amount of traffic. Also, in the days before the tremendous popularity of the any-to-any WWW, the Internet’s topological hierarchy forced traffic to flow across more deterministic paths. Current events on the network (for example, John Glenn and the Starr Report) did not create temporary hot spots.
IGP routing Il traffico inviato ad A o B segue il cammino più breve (o con metrica inferiore) 1 1 A B The figure above shows metric-based traffic engineering in action. When sending large amounts of data to network A, traffic is routed through the top router because it has a lower overall cost. 1 2 C
IGP routing Traffic engineering Fare il reinstradamento del flusso di traffico indirizzato ad A attraverso C causa un reinstradamento anche del traffico verso B! Alcuni link diventano sotto utilizzati o sovrautilizzati 1 4 Rerouting traffic for router A by raising metrics along the current path has the desired effect of forcing the traffic to use router C, but has the unintended effect of causing traffic destined for B to do the same. Since interior gateway protocol (IGP) route calculation was topology driven and based on a simple additive metric such as the hop count or an administrative value, the traffic patterns on the network were not taken into account when the IGP calculated its forwarding table. As a result, traffic was not evenly distributed across the network's links, causing inefficient use of expensive resources. Some links became congested, while other links remained underutilized. This might have been satisfactory in a sparsely-connected network, but in a richly-connected network (that is, bigger, more thickly meshed and more redundant) it is necessary to control the paths that traffic takes in order to balance loads. IGP is topology driven as opposed to being resource driven! A B 1 2 C
IGP routing Problemi Alcuni link risultano poco sfurttati Alcuni link risultano sovraccaricati Tutto il traffico segue il cammino IGP più breve Aggiustare continuamente le metriche IGP aggiunge instabilità alla rete As Internet service provider (ISP) networks became more richly connected, it became more difficult to ensure that a metric adjustment in one part of the network did not cause problems in another part of the network. Traffic engineering based on metric manipulation offers a trial-and-error approach rather than a scientific solution to an increasingly complex problem. IGP metric manipulation has a “snap” effect when it comes to redirecting traffic… (not an “even” distribution)
Breve Storia Metà anni 90 Grande crescita di Internet Router troppo lenti Metric engineering di IGP troppo complessa Il calcolo delle tabelle di routing IGP era topology driven, non traffic driven Metric-based traffic controls continued to be an adequate traffic engineering solution until 1994 or 1995. At this point, some ISPs reached a size at which they did not feel comfortable moving forward with either metric-based traffic controls or router-based cores. Traditional software-based routers had the potential to become traffic bottlenecks under heavy load because their aggregate bandwidth and packet-processing capabilities were limited. It became increasingly difficult to ensure that a metric adjustment in one part of a huge network did not create a new problem in another part. And router-based cores did not offer the high-speed interfaces or deterministic performance that ISPs required as they planned to grow their core networks.
Why Traffic Engineering? C’era la necessità di una soluzione più granulare e deterministica “A major goal of Internet Traffic Engineering is to facilitate efficient and reliable network operations while simultaneously optimizing network resource utilization and performance.” RFC 2702 Requirements for Traffic Engineering over MPLS Metric-based traffic controls continued to be an adequate traffic engineering solution until 1994 or 1995. At this point, some ISPs reached a size at which they did not feel comfortable moving forward with either metric-based traffic controls or router-based cores. Traditional software-based routers had the potential to become traffic bottlenecks under heavy load because their aggregate bandwidth and packet-processing capabilities were limited. It became increasingly difficult to ensure that a metric adjustment in one part of a huge network did not create a new problem in another part. And router-based cores did not offer the high-speed interfaces or deterministic performance that ISPs required as they planned to grow their core networks.
Vantaggi di MPLS Concepito inizialmente per rendere I router più veloci Analisi di label più veloce che il match su routing classico Non c’è attualmente più questa necessità (oggi l’HW dà prestazioni notevoli anche sullo switching classico) Il valore aggiunto di MPLS è oggi soprattutto il traffic engineering It is commonly believed that Multiprotocol Label Switching (MPLS) significantly enhances the forwarding performance of label-switching routers. It is more accurate to say that exact-match lookups, such as those performed by MPLS and ATM switches, have historically been faster than the longest match lookups performed by IP routers. However, recent advances in silicon technology allow ASIC-based route-lookup engines to run just as fast as MPLS or ATM virtual path identifier/virtual circuit identifier (VPI/VCI) lookup engines. The real benefit of MPLS is that it provides a clean separation between routing (that is, control) and forwarding (that is, moving data). This separation allows the deployment of a single forwarding algorithm—MPLS—that can be used for multiple services and traffic types. In the future, as ISPs need to develop new revenue-generating services, the MPLS forwarding infrastructure can remain the same while new services are built by simply changing the way packets are assigned to an LSP. For example, packets could be assigned to a label-switched path based on a combination of the destination subnetwork and application type, a combination of the source and destination subnetworks, a specific quality of service (QoS) requirement, an IP multicast group, or a VPN identifier. In this manner, new services can easily be migrated to operate over the common MPLS forwarding infrastructure.
Router Based Traffic Engineering Standard IGP routing 192.168.1/24 134.112/16 New York San Francisco
Router Based Traffic Engineering Costruire cammini unidirezionali attraverso la rete senza usare la metrica IGP shortest path IGP shortest path New York In the traditional layer 3 forwarding paradigm, as a packet travels from one router to the next an independent forwarding decision is made at each hop. The IP network-layer header is analyzed and the next hop is chosen based on this analysis and on the information in the routing table. In the JUNOS traffic engineering environment, the analysis of the packet header is performed just once—right before the packet enters the engineered path. The packet is assigned a label, which is a short, fixed-length value placed at the front of the packet. Routers in the traffic engineering path use labels as lookup indicies into the label forwarding table. For each label, this table stores forwarding information such as the router interface for which a labeled packet should be forwarded. San Francisco Traffic engineered path
Router Based Traffic Engineering I preffissi IP possono ora essere legati a percorsi label switching (LSP) 192.168.1/24 New York San Francisco 134.112/16
The Traffic Engineering System Statistics Collection Traffic Analysis Traffic Engineering Design and Modeling CLI TE Tunnel Configuration Router Network Traffic Engineering Tools Reti Private - NAT
Reinstradamento Iniziato dall’ingress LSR Eccezione è il reinstradamento veloce di breve periodo in caso di link failure (vedi dopo) Condizioni che determinano un reinstradamento Cammini migliori si rendono disponibili Link failure Cambiamento manuale nella configurazione Fatto prima dell’interruzione del vecchio cammino Viene stabilito il nuovo LSP Viene inoltrato il traffic al nuovo LSP Viene dismesso il vecchio LSP
Reinstradamento veloce (link failure) Gestito anche dall’ingress router (che cerca una strada alternativa di lungo termine), ma gestito nell’immediato dal nodo che rileva il link failure Cammini alternativi immediatamente disponibili (il nodo a monte del link failure cerca strade alternative di breve termine)
Reinstradamento veloce (link failure) Si utilizza una soluzione immediata a breve termine per limitare la perdita di pacchetti Se un nodo o un link sono inutilizzabili, il nodo precedente Cambia percorso immediatamente cercando una strada a breve termine Segnala il link failure all’ingress LSR Solo l’ingress LSR conosce i vincoli e le policy Ingress LSR calcola la strada alternativa Basandosi su cammini secondari configurati Inizia la procedura di re-routing a lungo termine
Esempio LSP primario da A ad E F E A D B C [edit protocols] user@A# show mpls mpls { label-switched-path to-E { to 192.168.24.1; primary use-C; secondary use-F; } path use-C { 192.168.1.2 loose; secondary use-F { 192.168.8.1 loose; A D B C
Esempio Reinstradamento veloce di breve termine A crea cammini alternativi attorno a B B crea cammini alternativi attorno a C C crea cammini alternativi attorno a D F E [edit protocols] user@A# show mpls mpls { label-switched-path to-E { to 192.168.24.1; primary use-C; secondary use-F; fast-reroute; } path use-C { 192.168.1.2 loose; path use-F { 192.168.8.1 loose; A D B C
Esempio – Soluzione di breve periodo Il link da B a C fallisce B immediatamente crea un cammino alternativo attorno a C B segnala ad A che è avvenuto un link failure F E A D B C
Esempio – Soluzione di lungo periodo A calcola e segnala un nuovo cammino primario F E A D B C
Local Protection via a Bypass Tunnel Primary Paths R8 R3 Backup Paths Bypass Tunnel R1 R5 R10 R6 R7
Path Protection R2 R9 R4 R8 R3 R1 R5 R10 R6 R7 Primary Path Backup Path
Interoperabilità MPLS può lavorare con molti supporti e protocolli sia a livello Data Link Layer (2) che Network Layer (3) Ethernet PPP (SONET, DS-3 etc.) ATM Frame Relay
MPLS: Sfatare i miti Esistono alcuni miti riguardo il ruolo di MPLS “MPLS utilizzato per aumentare la velocità delle IP route lookup” sebbene questo sia stato uno degli obiettivi originari delle soluzioni proprietarie nella metà delgi anni ’90, i recenti progressi nella tecnologia del silicio consentono di effettuare una IP route lookup alla stessa velocità di una lookup MPLS “MPLS è stato progettato per eliminare completamente la necessità del routing IP convenzionale” l’ analisi di un pacchetto a livello 3 è fondamentale per la sicurezza gli host non implementano MPLS, quindi i pacchetti IP trasmessi da un host devono essere elaborati a livello 3 almeno dal primo e dall’ultimo router se un LSR esamina l’header IP ed assegna una label, la label rappresenta una route aggregata (sarebbe impensabile avere un LSP per ciascun host su Internet), questo significa che, in qualche punto lungo il tragitto, l’header IP dovrà essere riesaminato a livello 3 per determinare una granularità più fine per continuare l’instradamento
MPLS-VPN VPN A/Site 2 VPN B/Site 1 VPN B/Site 2 MPLS VPN A/Site 3 CEA2 CE1B1 CEB2 VPN B/Site 2 P1 PE2 CE2B1 MPLS P2 PE1 PE3 CEA3 CEA1 P3 CEB3 VPN A/Site 3 VPN A/Site 1 VPN B/Site 3 Reti Private - NAT
MPLS-VPN VPN A/Site 2 VPN B/Site 1 VPN B/Site 2 MPLS Two-level CEA2 CE1B1 CEB2 VPN B/Site 2 P1 PE2 CE2B1 MPLS P2 PE1 PE3 CEA3 Two-level labelled packets CEA1 CEB3 VPN A/Site 3 VPN A/Site 1 VPN B/Site 3 Reti Private - NAT
Rete IP pubblica con VPN multiple MPLS-VPN Rete IP pubblica con VPN multiple Vs. Reti IP private BGP/MPLS VPN Network
MPLS-VPN VPN identificate univocamente da Label + VPN ID forwarding disgiunto dall’IP addressing Data privacy ottenuta logicamente mediante label switched path separati Enterprise B Enterprise A Internet Backbone— “VPN 0” Intranet VPN 10 Extranet VPN 20 Enterprise B Enterprise A Enterprise C
MPLS-VPN iBGP PE IGP (e.g. OSPF)/TDP eBGP/ CE Static/RIP 1. Viene usato IGP per la raggiungibilità locale (dei router MPLS) 2. CE (customer edge) e PE (provider edge) scambiano routing info (IP) 3. I vari PEs scambiano VPN routing info (VPN-IP) via mBGP (RFC2283) 4. LDP è usato nel core network (per segnaletica) iBGP PE IGP (e.g. OSPF)/TDP eBGP/ Static/RIP CE
Selective Advertisement MPLS-VPN Controlled Route Distribution via Selective Advertisement Cust A 10.1.1 VPN 15 Cust A 10.2.1 VPN 15 (15)10.1.1 (15)10.2.1 Internet Scale VPN (15)10.3.1 Cust A 10.3.1 VPN 15 Private View Public View (354)128.24.1 (354)128.24.2 Private View Forwarding Examples IN OUT Cust B 128.24.1 VPN 354 Cust B 128.24.2 VPN 354 (15)10.2.1 (15)10.1.1 (15)10.3.1 (354)128.24.2 (354)128.24.1
MPLS GMPLS GMPLS - Generalized MPLS MPLS è stato progettato per 802.x, ATM, Frame Relay… Ora ci sono le reti lambda switched, SDH, etc. Serve qualcosa di più… generale
Focus di GMPLS Lo scopo di GMPLS è di estendere i concetti di MANGEMENT propri di MPLS a reti di natura diversa e di estendere l’introperabilità E’ un set di protocolli di management degli LSP e di setup degli LSP sui diversi tipi di rete In particolare il focus è sul setup degli LSP, sul mantenimento della QoS e sul miglioramento della fault-tolerance della rete E’ un work-in-progress, mentre l’adozione di MPLS è un dato di fatto, l’evoluzione e l’uso su larga scala di GMPLS è tuttora un’incognita