Protocollo di tunneling

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Tunneling)
Nota disambigua.svg Disambiguazione – Se stai cercando l'effetto tunnel, vedi Effetto tunnel.

Nell'ambito delle reti di computers, un protocollo di tunneling permette ad un utente di fornire o accedere ad un servizio non supportato o non fornito direttamente dalla rete. Un uso importate del tunneling è permettere ad un protocollo straniero di essere usato su una rete che non lo supporta; per esempio, usare IPv6 su una rete compatibile solo con IPv4. Un altro uso importante è fornire servizi che sono di norma impraticabili o insicuri se offerti attraverso la rete originaria; per esempio, fornire un indirizzo di rete aziendale ad un utente remoto la quale rete fisica non è parte del network aziendale. Siccome il tunneling comporta il reincapsulamento dei traffico di rete in una forma differente, usualmente usando uno standard crittografico, un terzo uso è quello di nascondere la natura dei dati che sono trasmessi mediante tunneling.

Il protocollo di tunneling funziona usando la porzione riservata ai dati di un normale pacchetto IP detto payload, in esso sono memorizzati i reali pacchetti forniti dal servizio. Il tunneling usa un modello di protocollo a livelli, come i protocolli OSI o TCP/IP, ma frequentemente viola questa caratteristica quando usa il payload per trasportare un servizio non normalmente previsto dalla rete sottostante. Usualmente, nel modello a strati, il protocollo di ricezione opera ad un livello uguale o maggiore rispetto al protocollo di invio (anche esso detto payload).

Caratteristiche tecniche[modifica | modifica wikitesto]

Per capire una particolare implementazione di un protocollo di tunneling, si devono prima comprendere le tecniche usate dal protocollo di invio (payload) e ricezione.

Come esempio di tunneling di un livello di rete su un altro livello di rete si ha il protocollo Generic Routing Encapsulation (GRE); questo usa IP (IP numero di protocollo 47) per trasportare i pacchetti IP con indirizzi privati RFC 1918 (ad esempio appartenenti ad una rete locale) su internet (con destinazione un'altra rete locale), il protocollo GRE usa pacchetti con header IP, e in questo caso il protocollo di ricezione e il protocollo di invio sono gli stessi, ma gli indirizzi del payload sono incompatibili con quelli del network ricevente (network locale).

Descrizione[modifica | modifica wikitesto]

Nelle configurazioni normali, un protocollo viene incapsulato in un altro protocollo di livello inferiore. Ad esempio, IP viene incapsulato in ethernet.

  • Un insieme importante delle tecniche di tunneling sono quelle usate per realizzare VPN, in cui IP viene incapsulato in IP, TCP o UDP, inserendo uno strato di crittografia. In queste tecniche, due reti IP, o due parti della stessa rete IP, entrambe connesse ad Internet, vengono interconnesse facendo passare il traffico all'interno di una connessione che viene trasmessa su Internet.
  • La funzionalità di port forwarding di SSH consente di inoltrare connessioni TCP tra host arbitrari all'interno di una connessione SSH, che a sua volta viaggia su TCP. In questo modo si riesce facilmente a proteggere un protocollo applicativo insicuro per farlo transitare su una rete non fidata, oppure ad aggirare limitazioni realizzate attraverso firewall o configurazioni di routing che non permetterebbero a due host di comunicare direttamente.
  • L'utilizzo di protocolli di livello di rete per trasportare IP, che a sua volta è un protocollo di livello rete, è a sua volta una forma di tunneling. L'esempio tipico è la connessione di due reti IP attraverso una galleria ATM: in tal caso, il pacchetto IP viene inserito (e opportunamente frammentato) all'interno del campo dati della cella ATM, trasmesso attraverso la rete e quindi spacchettato e ricomposto all'arrivo. In questo modo, gli switch ATM non si renderanno conto di cosa stanno trasmettendo, perché il campo dati è trasmesso così com'è, senza dover essere interpretato. Ai capi della galleria è necessario inserire router multiprotocollo, che siano in grado di compiere le operazioni di impacchettamento dei dati.
  • Per trasportare il protocollo IPv6 all'interno di IPv4, o viceversa, si usano delle gallerie. Un insieme di tecniche di tunneling sono state previste per gestire la transizione da IPv4 a IPv6.

Voci correlate[modifica | modifica wikitesto]