Cenni di teoria sulle reti e Hardware di rete

Gli strati - ISO-OSI

  • Sebbene lo standard ISO-OSI definisca una serie di protocolli per ogni suo livello, la complicazione di questi standard ha fatto sì che non vi siano implementazioni complete dell'intero stack di protocolli
  • Ogni livello scambia dati solo con il livello immediatamente inferiore o immediatamente superiore
  • i frame trasferiscono dati grezzi. Per poter ottenere dei risultati dalla rete occorre organizzare i dati ed aggiungere funzioni

Gli strati - ISO-OSI

  • Questo problema è stato affrontato dai tecnici della commissione Open System Interconnect (OSI) dell'International Standards Organization (ISO) che hanno messo a punto lo standard denominato ISO-OSI
  • L'importanza di questo standard stà nel fatto che la scomposizione in sette livelli del problema costituisce un riferimento per inquadrare le operazioni di comunicazione

Gli strati - ISO-OSI

  • Un dato introdotto da un utente su di una macchina attraversa e viene trattato da tutti i livelli di quella macchina (dal 7 all'1), viaggia sul filo e viene trattato da tutti i livelli sulla macchina ricevente (dall'1 al 7) prima di venir conseganto all'utente sulla seconda macchina
  • Questo standard prevede la suddivisione del problema in sette livelli indipendenti, ognuno dei quali si occupa di un preciso aspetto della comunicazione tra le macchine
  • Ogni livello lavora con il pari livello sull'altra macchina interessata alla comunicazione

NAT

  • In caso di PAT il firewall manterrà aggiornata una tabella nella quale scriverà la corrispondenza tra indirizzo/porta interna ed indirizzo/porta esterna, per consentire sia di mandare successivi pacchetti codificati sempre nello stesso modo, sia per consentire di ritornare correttamente le risposte.
  • Normalmente con il PAT il firewall consente solo le richieste dall'interno e le risposte dall'esterno, ma può anche essere configurato per consentire chiamate dall'esterno a server interni.

NAT

  • In questo caso si configurerà il firewall per fare la Network Addres Translation (NAT), per fargli modificare i gli indirizzi dei pacchetti in transito, dai reali a quelli interni, fasulli.
  • Gli IP utilizzabili per le reti private sono:
    • 10.0.0.0 - una classe A
    • 172.16.0.0 - 172.31.0.0 - 16 classi B
    • 192.168.0.0 - 192.168.255.0 - 256 classi C

NAT

  • Alcuni protocolli (come ad esempio FTP) scambiano tra server e client informazioni su indirizzi o porte. In questo caso occorrerà avere nel firewall dei filtri che, analizzando i dati in transito, intercettino le informazioni sui port e sugli indirizzi e le modifichino in base al NAT/PAT applicato. Questi filtri prendono il nome di proxy o fixup
  • A volte, ad esempio se non si possiedono abbastanza indirizzi IP per le macchine da collegare ad Internet, oppure per rendere più difficile una violazione della rete, si vogliono utilizzara nella rete interna indirizzi diversi da quelli visibili da Internet

NAT

  • Se gli indirizzi reali sono minori rispetto alle macchine da collegare (o sempre per motivi di sicurezza) si vorrà far modificare al firewall anche il port, in questo caso si parlerà di Port Addres Translation o PAT

Hub

  • Questo apparecchio ha lo scopo di amplificare il segnale elettrico, ma di fatto un segnale che entra da una delle porte viene ripetuto identico su tutte le altre porte, senza né modifiche né ritardi sensibili.
  • Se l'hub è a 100 Mb, spesso è in grado di essere connesso anche a schede a 10 Mb, convertendo i pacchetti e consentendo la connessione tra schede a 10 Mb e schede a 100 Mb
  • Le reti locali comunemente utilizzate sono di tipo Ethernet.
  • Con il doppino si ottengono le connessioni 10baseT, a 10 Mb e 100baseT o 100baseTX a 100 Mb

Hub

  • Questo apparecchio prende il nome di HUB (in inglese, il mozzo della ruota)
  • Successivamente, visto il costo e la vulnerabilità di questo tipo di connessione, si è passati ad una connessione tramite cavo telefonico (doppino intrecciato, Unshilded Twisted Pair o UTP) a quattro coppie (8 fili), che utilizzano connettori (plug) telefonici di tipo RJ45, a perforazione di isolante
  • Mentre il cavo coassiale connette insieme tutte le macchine, il doppino deve essere connesso ad un apparecchio intermedio che raccoglie i cavi delle singole macchine (questo è uno dei motivi che lo rendono più sicuro)

Hub

  • Originariamente queste reti avevano la velocità di 10 MBit per secondo ed utilizzavano un cavo coassiale che collegava tutte le macchine insieme (10base5 o 10base3)

Il filo

  • I fili potrebbero connettere tra loro tutte le macchine insieme
  • Una rete è costituita da macchine connesse da fili
  • Ogni frame (ethernet) contiene, oltre ad un blocco dei nostri dati, delle informazioni di servizio, tra cui l'identificativo (indirizzo MAC) della scheda di rete cha ha inviato il frame e quello della scheda che lo deve ricevere
  • Le specifiche di come inviare e ricevere i dati di rete sono descritti nello standard IEEE 802

Il filo

  • I dati vengono spezzati in singoli bit, trasformati in livelli di tensione ed inviati uno alla volta sul filo, in sequenza
  • Per poter viaggiare sui fili senza intralciarsi a vicenda, i dati vengono organizzati in frame
  • Più spesso i fili delle singole macchine vengono connessi ad un apparato centrale chiamato hub
  • Su questi fili viaggiano i nostri dati

I sette livelli ISO-OSI

  • 3 - Network Layer (livello di rete) - consente ad una comunicazione di raggiungere un destinatatio anche non direttamente connesso, attraversando macchine intermedie. Consente più comunicazioni contemporanee su di una singola connessione.
  • 7 - Application Layer (livello applicativo) - si occupa dei programmi utente. Alcuni di questi sono la posta ed il trasferimento file
  • 2 - Link Layer (livello di connessione) - trasforma i dati in singoli bit e viceversa. Garantisce la correttezza dei dati trasmessi (assenza di errori). Gestisce una sola connessione alla volta tra due macchine.

I sette livelli ISO-OSI

  • 6 - Presentation Layer (livello di presentazione) - esegue la traduzione dei dati per macchine che usino alfabeti diversi o diverse codifiche dei dati
  • 5 - Session Layer (livello di sessione) - inroduce dei marcatori per garantire (come ad esempio in una transazione bancaria) che una serie di operazioni indipendenti vengano o tutte eseguite o eliminate in toto, per evitare situazioni ambigue, anche in caso di caduta della comunicazione.

I sette livelli ISO-OSI

  • 4 - Transport layer (livello di trasporto) - gestisce la qualità del servizio, limitando la banda per consentire a più canali di convivere o aggregando connessioni per garantire una maggior banda. Riordina i pacchetti ricevuti.
  • 1 - Phisical Layer (livello fisico) - si occupa di definire le caratteristiche del filo. Fà sì che i bit generati da una macchina arrivino al meglio all'altra

IPv6

  • Le principali strategie per consentire la convivenza dei due ambienti sono:
    • Presenza di entrambi gli stack nelle macchine, per consentire di parlare con apparecchiature di entrambi i tipi
    • Possibilità di trasferire una comunicazione IPv6 su un tratto di rete gestita con IPv4
    • Possibilità di trasferire una comunicazione IPv4 su un tratto di rete gestito con IPv6

IPv6

  • Per evitare di aumentare eccessivamente la dimensione del pacchetto, una serie di opzioni scarsamente usate sono state eliminate dalla intestazione standard, e spostata in intestazioni opzionali, in questo modo la dimensione dell'intestazione IPv6 è solo il doppio di quella IPv4
  • Per risolvere il problema del numero di indirizzi disponibili che ha portato al NAT, IPv6 aumenta la dimensione dell'indirizzo IP da 32 bit a 128 bit
  • Dato che l'intera conversione delle apparecchiature Internet ad IPv6 richiederà molti anni, se mai avverrà completamente, sono state previste una serie di strategie per consentire la convivenza dei due ambienti.

IPv6

  • Inoltre, può anche venire tralasciato un eventuale gruppo di numeri a 0 consecutivi, sostituiti dalla sequenza ::
  • In questi numeri esadecimali, che rappresentano ciascuno 16 bit, le eventuali cifre a 0 iniziali possono venire tralasciate
  • Dal 6 Giugno 2006 è ufficialmente uscito dalla sperimentazione il nuovo standard di comunicazione Internet chiamato IPv6.
  • Gli indirizzi IPv6 quindi si esprimono non più come una dotted quad ma come 8 numeri esadecimali a 4 cifre max cadauno, separati da :

Le reti locali

  • Quindi, vista anche la velocità della rete, il costo della trasmissione dipende prevalentemente dal numero dei frame trasmessi, piuttosto che dalla reale quantità di dati trasmessi.
  • Il costo della trasmissione di un singolo frame, anche vista la limitata velocità, è alto e proporzionale alla sua lunghezza, quindi ogni frame viene controllato e confermato, per evitare di far percorrere ad un dato errato lunghi tratti inutilmente.
  • Al contrario in una rete locale il filo connette assieme (almeno a livello logico/elettrico) tutte le macchine della rete, quindi un frame trasmesso da una macchina raggiunge sempre tutte le altre.

Le reti locali

  • In questo modello, prima di scambiare dati occorre instaurare una connessione, che definisce il percorso da fare. Una volta finito di scambiare i dati la connessione và chiusa.
  • Da questo deriva la necessità di inserire nel frame un identificativo del mittente e del destinatario, non individuabili fisicamente attraverso il filo usato per la trasmissione
  • Dato che il filo è comune a tutte le macchine, occorre affrontare il problema delle collisioni, vale a dire del tentativo di una macchina di trasmettere un frame mentre un'altra ha già cominciato a trasmettere il suo, con conseguente perdita di entrambi i frame.

Le reti locali

  • Il modello ISO-OSI si riferisce ad un'infrastruttura di tipo telefonico, nella quale ogni macchina possiede una o più connessioni fisiche di tipo point to point tramite ognuna delle quali può scambiare dati direttamente con una singola macchina.
  • Si preferisce quindi inviare frame direttamente al destinatario, evitando la connessione, senza richiedere una conferma per garantire la correttezza (gli errori verranno gestiti a livello superiore). Un frame di questo tipo (non confermato e non connesso) prende il nome di daragram

Proxy e Gateway

  • Se noi dobbiamo connettere sistemi diversi, ci servirà sempre un apparato a livello 7
  • Se ad esempio dobbiamo trasformare una e-mail in un SMS o vioceversa dovremo opoerare a livello 7
  • Il proxy potrà quindi:
    1. Consentire a dei client in una rete privata di accedere al Web
    2. Limitare l'accesso alle pagine, in base al nome o al contenuto
    3. Memorizzare localmente le pagine per accelerare accessi successivi (cache)

Proxy e Gateway

  • Un esempio molto comune di proxy è il proxy http che serve per accedere alle pagine Web
  • Abbiamo visto come viene usato da parte di un firewall nelle operazioni di NAT/PAT
  • Genericamente il proxy è un apparato che riceve delle richieste e le inoltra, operando qualche modifica (potrebbe anche essere un programma) che lavora a livello 7
  • In questo caso il browser fà una richiesta specifica al proxy, il quale farà l'accesso reale alla risorsa richiestra e la invierà al browser

Proxy e Gateway

  • In questo caso, dove l'oggetto di partenza è radicalmente diverso dall'oggetto finale si parla di gateway (SMS gateway nel nostro esempio)

Router

  • La tabella di routing può essere compilata manualmente o gestita in maniera automatizzata tramite il protocollo RIP2
  • L'apparato che esegue questa connessione si chiama Router
  • Il router immagazzina questa conoscenza nella tabella di routing
  • Il router deve conoscere la topologia della rete complessiva

Router

  • Hub e Switch lavorano a livello 2 e conoscono solamente gli indirizzi MAC, quindi possono operare in una singola rete locale.
  • Normalmente la connessione viene fatta utilizzando il livello IP di Internet
  • Per collegare tra loro reti locali diverse occorre invece lavorare a livello 3
  • In particolare, deve conoscere a quale router connesso ad una delle sue reti mandare i pacchetti, in base all'host (il generico calcolatore) di destinazione

Modem o Terminal Adapter

  • Un modem o un terminal adapter ha il solo scopo di ricevere bit ad un estremo e riprodurli il puù fedelmente possibile all'altro estremo di una linea, quindi lavora a livello 1
  • Se si connette un modem o terminal adapter ad un PC, sarà il PC a gestire la conversione in bit tramite l'interfaccia seriale (o una scheda interna) e a incapsulare i pacchetti con il protocollo PPP (o un suo derivato come PPPoE o PPPoA)

Modem o Terminal Adapter

  • Nel caso la linea sia analogica dovremo trasformare i nostri dati in suoni, tramite un'operazione di modulazione, per trasmetterli e decodificare i suoni per trasformarli in dati tramite un demodulatore, quindi useremo un MOdulatore/DEModulatore o modem telefonico o ADSL.
  • A seconda dei casi si utilizzerà una linea digitale oppure una normale linea telefonica analogia (Public Switched Telephone Network o PSTN)

Modem o Terminal Adapter

  • Se la linea è digitale (come ISDN, Integrated Services Data Network) i dati viaggiano già in forma digitale sulla linea, quindi servirà solo un apparato che converta i livelli di tensione e corrente e sincronizzi il segnale, per connettersi, vale a dire un Terminal Adapter.
  • Per trasmettere tramite un modem o terminal adapter dei pacchetti occorre incapsularli in un protocollo che li trasformi in bit (o in byte da trasmettere tramite un'interfaccia seriale). In genere si utilizza il Point to Point Protocol o PPP.
  • Per connettere tra loro reti locali distanti si usano normalmente dei cavi telefonici

Modem o Terminal Adapter

  • Se invece si vuole connettere un'intera rete in genere si utilizza un router ADSL o ISDN. In realtà si utilizza un modem o terminal adapter con un router integrato ed a volte anche con un firwall integrato

Firewall

  • Questo apparecchio si chiama Firewall (muro tagliafuoco), ed è in grado anche di filtrare i pacchetti in base ad altre informazioni contenute nella testata, in maniera molto sofisticata.
  • Alcuni router consentono di bloccare o consentire alcuni pacchetti in base ai loro indirizzi di origine e destinazione, tramite le Access Control List o ACL
  • Per ottenere questo occorre un apparecchio che sia in grado di tenere la storia dei pacchetti che transitano, riconoscendo quindi che un determinato pacchetto giunge come risposta ad uno che abbiamo inviato

Firewall

  • Spesso invece è conveniete isolare la nostra rete locale da internet, consentendo solamente il transito di alcuni pacchetti
  • Quando noi richiediamo informazioni tramite Internet, prima inviamo un pacchetto di richiesta, poi riceviamo un pacchetto con le informazioni richieste.
  • Tramite le ACL noi non riusciamo a consentire l'ingresso dei pacchetti di risposta ma bloccare i pacchetti che da Internet accedono alla nostra rete.
  • Un router invia ogni pacchetto che riceve ad un'altro router, fino a raggiungere la destinazione. Questo rende le reti connesse come un'unica grande rete

Indirizzamento IP - Netmask

  • Con alcune semplici operazioni logiche tra indirizzo IP e netmask (and, xor e not) è possibile separare l'indirizzo in numero di rete e numero di host, oppure di confrontare il numero di rete tra due indirizzi IP
  • La tabella conterrà anche una riga che indica un router cui mandare i pacchetti la cui rete di destinazione non è in tabella. Questo router prende il nome di default gateway
  • Lo standard delle classi è troppo rigido, specialmente adesso che si tende ad assegnare pochi indirizzi IP ad ogni utente

Indirizzamento IP - Netmask

  • Per separare il numero di rete dal numero dell'host si utilizza quindi la netmask
  • Nella netmask tutti i bit del numero di rete sono a 1, quelli del numero di host a 0
  • La netmask è un numero a 32 bit (come l'indirizzo IP), nel quale i bit più significativi sono tutti ad 1 ed i meno significativi a 0
  • In ogni riga della tabella di routing troveremo, quindi, l'indirizzo di una rete (esteso a 32 bit con 0 a destra), la netmask l'indirizzo IP di un router direttamente connesso, se la rete è remota, oppure l'indirizzo 0 se la rete è direttamente connessa

Indirizzamento IP

  • Un primo modo per determinarla è in base ai bit più significativi dell'indirizzo, in base al concetto di classe:
    • Classe A, da 0 a 127, 7 bit per la rete, 24 per l'host
    • Classe B, da 128 a 191, 14 bit per la rete, 16 bit per l'host
    • Classe C, da 192 a 223, 21 bit per la rete, 8 bit per l'host

Indirizzamento IP

  • Un indirizzo IP (IPv4) è un numero a 32 bit (normalmente scritto come quattro numeri decimali tra 0 e 255, separati da punti, detti anche dotted quad) diviso in due parti:
    1. Numero della Rete
    2. Numero dell'Host
  • Ma come fà il router a conoscere la rete cui è destinato un pacchetto?
  • La dimensione del numero di rete (e per differenza, quella del numero di host) non è fissa, per consentire un'ottima flessibilità

Indirizzamento IP

  • Due host che condividano lo stesso numero di rete, appartengono alla stessa rete

Switch

  • Ogni volta che da una porta entra un frame, lo Switch legge dalla sua testata l'indirizzo MAC del mittente e lo inserisce in una tabella, associato alla relativa porta.
  • Per connettere più VLAN ad un router (che consenta di conneterle) o ad un'altro switch (che le estenda) senza usare più cavi è possibile usare anche una sola connessione (detta Trunk) che raccoglie più VLAN secondo il protocollo 802.1q.
  • Per fare questo dovrebbe conoscere l'indirizzo MAC di ogni macchina connessa alle sue porte e leggere ed interpretare le informazioni di servizio dei frame, per individuare i destinatari

Switch

  • Alcuni Switch di fascia alta sono in grado anche di simulare una separazione fisica tra le porte, come se fossero connesse a switch diversi, in base al numero di porta oppure all'indirizzo MAC (VLAN)
  • L'HUB ripete su ogni porta il segnale in entrata da una porta, quindi se una macchina stà inviando un pacchetto, nessun'altra lo può fare nello stesso momento, pena una collisione.
  • Se l'HUB fosse intelligente, potrebbe instradare i frame da una porta all'altra, consentendo nello setesso momento la comunicazione tra più coppie di macchine.

Switch

  • Questo modo di operare non elimina la possibilità di collisioni (più mittenti possono inviare pacchetti allo stesso destinatario, ed esistono i pacchetti di broadcast, inviati a tutte le macchine), ma può comunque migliorare la prestazione della rete.

Il modello internet

  • Oltre ad IP, al livello 3 troviamo altri protocolli di servizio, che consentono di gestire la rete o di fare manutenzione, come ad esempio ICMP ed ARP, che trasforma gli indirizzi IP in indirizzi MAC.
  • Il protocollo IP, che è quello che consente la comunicazione, prevede la possibilità di avere più protocolli di livello superiore, ma non di avere più comunicazioni contemporanee per ogni protocollo.
  • Sia TCP che UDP, utilizzando le porte o port, che vanno da 1 a 65.535, consentono di gestire più comunicazioni contemporanee, anche verso destinatari diversi.

Il modello internet

  • Riferendosi al modello ISO-OSI (in maniera imprecisa, dato che la suddivisione dei compiti non coincide), Internet è stata creata per connettere tra loro reti esistenti, quindi con qualunque livello fisico e di connessione (che nelle reti locali prendono il nome di Media Access Control e Logical Link Control, MAC ed LLC).
  • Sopra il livello di trasporto Internet prevede un solo livello (applicativo) che comprende i livelli dal 5 al 7 di ISO-OSI, e prevede protocolli come FTP, SMTP, POP3, IMAP, TELNET, HTTP ecc.

Il modello internet

  • Al livello di trasporto troviamo i due fondamentali protocolli Transfer Control Protocol (TCP) e User Datagram Protocol (UDP), che consentono una comunicazione confermata e connessa (TCP) nella quale vengono garantiti la correttezza e l'ordine dei dati, ed una comunicazione datagram (UDP)
  • Il livello di rete di Internet è costituito dal protocollo Internet Protocol (IP), che consente (tramite gli indirizzi IP e le Netmask) di trasferire pacchetti daragram da una macchina all'altra, sia che appartengano alla stessa rete che a reti diverse.
  • Internet è una rete di reti, che nasce quindi per far comunicare macchine appartenenti a reti locali

Logica del firewall

  • Normalemnte il firewall possiede almeno due interfacce:
    1. Una esterna, considerata insicura
    2. Una interna considerata sicura
  • Normalmente, per garantire una maggior sicurezza, in questo caso si sceglie un firewall con trè porte:
    • esterna, insicura
    • interna, sicura
    • Demilitarizzata per i server (DeMilitarized Zone o DMZ), mediamente sicura

Logica del firewall

  • Come regola generale il traffico originato da una rete più sicura, verso una meno sicura è consentito, mentre il traffico generato da una rete meno sicura verso una più sicura è bloccato
  • In questo caso occorrerà abilitare nel firewall le richieste per l'indirizzo del server, limitate al servizio.
  • Se in una rete interna ci sono dei server, questi devono poter fornire un determinato servizio all'esterno.
[any material that should appear in print but not on the slide]