# Interfaccia di loopback

Il loopback è una scheda di rete virtuale gestita dal protocollo TCP/IP. I dati inviati all'IP di loopback (solitamente 127.0.0.1) non vengono instradati attraverso la scheda di rete, ma attraverso l'interfaccia di loopback. Grazie al loopback i dati vengono gestiti localmente, senza l'ausilio della scheda di rete (perciò il termine localhost).
Lo scopo di questa interfaccia è quello di testare il funzionamento di un sistema. In generale, le interfacce di loopback possono essere utilizzate anche in contesti diversi dalle reti di computer, tramite diversi tipi di tecnologie, ad esempio: nelle telecomunicazioni, nelle centrali telefoniche, nelle comunicazioni seriali ed anche nei sistemi audio.

## Descrizione

Nelle reti di computer, l'interfaccia di loopback permette la comunicazione tra processi, ma esclusivamente tra processi che sono eseguiti nella stessa macchina. Un esempio tipico di utilizzo è quello in cui si deve testare il funzionamento di un server web, realizzando una connessione con un client eseguito sulla stessa macchina su cui è eseguito anche il server.

## Implementazione

Nel caso più generale di un sistema di comunicazione il test di loop-back potrebbe essere realizzato applicando un particolare cavo che permetta al messaggio di tornare indietro verso lo stesso dispositivo da cui è partito. Nel caso di reti di computer, l'interfaccia di loopback non è hardware, ma è realizzata virtualmente dal sistema operativo, quindi i dati non sono realmente inviati a nessuna "reale" scheda di rete. Quando un sistema operativo invia dei messaggi verso l'interfaccia di loopback, quindi, nella realtà, i dati sono restituiti al network stack del sistema operativo stesso, come se fosse stato ricevuto da un'altra scheda di rete.

## Indirizzo IP

All'interfaccia di loopback, come ad ogni altra interfaccia di rete, si deve attribuire un indirizzo IP. Secondo gli standard internazionali della Internet Engineering Task Force (IETF) l'interfaccia di loopback può utilizzare per convenzione questi indirizzi:
* 127.0.0.1/32, cioè un indirizzo appartenente al blocco di indirizzi IPv4 127.0.0.0/8 secondo la notazione CIDR
* un indirizzo IPv6 0:0:0:0:0:0:0:1/128 che può essere indicato anche come ::1/128

## Instradamento

Secondo lo standard IETF nessuna interfaccia "reale" dovrebbe ricevere o inviare messaggi di rete che al loro interno hanno un indirizzo di loopback, e quindi tali messaggi potrebbero essere utilizzati per altri scopi.

## Risoluzione del nome localhost

Nelle reti di computer ogni dispositivo di rete può essere identificato tramite un indirizzo IP oppure anche tramite un hostname e questa regola è valida anche per un'interfaccia di rete come l'interfaccia di loopback. In alternativa all'indirizzo IPv4 o IPv6, per identificare l'interfaccia di loopback, si può usare l'etichetta localhost. Normalmente il nome "localhost" viene risolto dal sistema con l'indirizzo IPv4 127.0.0.1 e con l'indirizzo IPv6 ::1

## Router

Le interfacce di loopback possono essere assegnate anche ai router. Un router può arrivare ad averne fino a 2147483647. Osserviamo l'output di un router 1760 Cisco in configuration mode:
L'utilità di assegnare una molteplicità di indirizzi di loopback su un router è sempre per motivi di test, cioè per poter osservare il comportamento del router durante l'utilizzo di protocolli di routing.