Che cos'è la rete virtuale? Discutiamo oggi di questo argomento.
Quello che di solito pensiamo delle reti informatiche è che ci sono vari cavi (Ethernet, fibra ottica, coassiale) collegati a dispositivi come router e switch che dirigono i pacchetti di dati dove devono andare.
L'avvento del Wi-Fi e delle reti di dati cellulari ha sostituito alcuni di questi fili con segnali wireless, ma anche le onde radio appartengono al regno fisico, collegandosi alle torri dei telefoni cellulari o ai punti di accesso Wi-Fi.
Nel modello di riferimento di rete OSI a sette livelli, tutte queste apparecchiature di rete, l'elaborazione e la comunicazione occupano i tre livelli più bassi: Livello 3 (rete), Livello 2 (collegamento dati) e Livello 1 (livello fisico).
In una rete virtuale, tutte queste attività si svolgono nel software.
Una rete virtuale può esistere interamente all'interno di un singolo computer fisico (server). In alternativa, può costituire un livello di astrazione che gira su una rete fisica, la cui configurazione e topologia può essere significativamente diversa da quella della rete virtuale.
La creazione di una rete virtuale è un compito complesso, ma i vantaggi sono enormi: le reti possono essere riconfigurate semplicemente cambiando i file, anziché con un laborioso lavoro manuale che può comportare la necessità di strisciare i condotti.
Come funziona una rete virtuale?
Per capire come funziona la rete virtuale, partiamo da un concetto correlato e più familiare: le macchine virtuali. La maggior parte di noi conosce le macchine virtuali, che consentono di eseguire più istanze di applicazioni su un'unica macchina fisica.
Queste macchine virtuali non "sanno" di essere virtuali; tutte le chiamate di sistema e le altre comunicazioni che avrebbero normalmente con l'hardware sottostante sono intercettate da un livello di software chiamato hypervisor. Un hypervisor gestisce le richieste di più macchine virtuali in esecuzione sullo stesso computer per fare l'uso più efficiente possibile delle risorse hardware sottostanti.
La VM può anche tradurre le istruzioni tra le varie piattaforme hardware, in modo che, ad esempio, una VM possa essere eseguita su una macchina x86 anche se è stata progettata per un processore ARM. L'hypervisor può restituire i risultati che la macchina virtuale si aspetta di ricevere dall'hardware.
Le reti virtuali si basano sugli stessi principi. Il software è configurato per simulare una rete con il terreno specifico richiesto dall'amministratore. Come nel caso delle macchine virtuali, le reti virtuali sono in grado di fare la loro magia perché i sistemi operativi e le applicazioni con cui comunicano non sanno (o non si preoccupano) se stanno parlando con uno switch reale o con uno switch virtuale (vSwitch).
Si limitano a inviare pacchetti contrassegnati da alcune informazioni sul routing di rete nelle intestazioni e si aspettano di ricevere pacchetti simili in cambio. Poiché questa comunicazione è standardizzata, è facile creare software in grado di emulare il comportamento di una scheda di rete fisica, di uno switch o di un router; strumenti come Open vSwitch possono essere eseguiti su un hypervisor o fungere da stack di controllo per l'hardware di rete fisico.
Una volta che l'hypervisor ha questi pacchetti, deve capire come instradarli verso la loro destinazione, proprio come l'hardware della rete fisica. La differenza è che l'hypervisor deve convertire le informazioni sulla rete virtuale definita dal software (la rete a cui il nostro computer "pensa" di essere collegato) in informazioni sull'ambiente fisico sottostante.
Un computer può pensare di inviare pacchetti a un altro computer sulla stessa LAN, ma in realtà i due computer possono trovarsi in paesi diversi o essere due macchine virtuali in esecuzione sullo stesso server.
Gli hypervisor in genere risolvono questo problema incapsulando il pacchetto in un altro pacchetto con informazioni di instradamento diverse nell'intestazione, per poi consegnarlo all'infrastruttura di rete fisica. Una volta che il pacchetto raggiunge la sua destinazione, il pacchetto esterno viene rimosso; il sistema che riceve il pacchetto lo vedrà arrivare attraverso la rete virtuale, anziché attraverso la rete fisica che ha attraversato.
È ovvio che l'implementazione di una rete virtuale richiede un notevole lavoro e ingegno. Perché affrontare questo problema? Un'illustrazione dei diversi tipi di reti virtuali vi darà un'idea degli scenari reali in cui sono utili.
Tipo di rete virtuale
Una distinzione importante è quella tra reti virtuali interne ed esterne. Le reti virtuali interne sono utilizzate per collegare più macchine virtuali in esecuzione sullo stesso server. In questo caso, l'hypervisor non ha bisogno di incapsulare i pacchetti di rete e di inviarli sulla rete reale; si limita a determinare a quale macchina virtuale sono destinati e a consegnarli.
Può sembrare strano utilizzare un protocollo sviluppato per la comunicazione tra computer come mezzo di comunicazione tra due processi in esecuzione sullo stesso hardware fisico. Ma ricordate che uno dei vantaggi della virtualizzazione è la possibilità di eseguire più sistemi operativi out-of-the-box come processi completamente separati e indipendenti sullo stesso server.
L'uso di pacchetti e protocolli di rete standard a questo scopo e l'infrastruttura di sicurezza associata consentono a queste macchine virtuali di funzionare e comunicare tra loro senza alcuna modifica.
Le reti virtuali esterne, invece, coinvolgono computer fisici separati (o un mix di macchine virtuali e macchine fisiche). In questo scenario, i computer sono collegati attraverso dispositivi di rete fisici tradizionali (comprese le connessioni via Internet), ma l'amministratore di rete crea una topologia di rete virtuale diversa dalla topologia fisica sottostante.
Esistono tre tipi di reti virtualiche può essere interna o esterna:
Una rete privata virtuale (VPN) è la forma più semplice di rete virtuale. Lo scenario più comune è quello di un computer collegato a una rete aziendale locale attraverso Internet. Dal punto di vista del computer e degli altri computer con cui interagisce, una volta stabilita la VPN, il computer fa parte della LAN, anche se è remoto.
Una LAN virtuale (VLAN) è più complessa: consiste in un'intera rete locale definita virtualmente. Le VLAN possono essere create dividendo una singola LAN fisica in più VLAN o combinando LAN fisicamente indipendenti in un'unica VLAN.
LAN virtuale estensibile (VXLAN) è una versione migliorata della VLAN che consente di suddividere le LAN di grandi dimensioni in un numero maggiore di VLAN separate e facilita la migrazione delle macchine virtuali senza interrompere il servizio, entrambi aspetti fondamentali per l'infrastruttura cloud.
Vantaggi e benefici delle reti virtuali
La rete virtuale è assolutamente necessaria quando si eseguono più macchine virtuali sullo stesso hardware, uno scenario comune nel cloud computing. Allo stesso tempo, la creazione di VLAN e VXLAN sopra le reti fisiche esistenti consente agli amministratori di ristrutturare rapidamente la rete per soddisfare le proprie esigenze, spesso in modo automatico nell'era dell'infrastruttura come codice. Questo sarebbe difficile o impossibile da fare ricostruendo manualmente la rete fisica.
I vantaggi delle reti virtuali includono:
Ridurre i costi e la manutenzione dell'hardware di rete fisico.
Semplificate la gestione della rete con un controllo centralizzato e automatizzato.
Fornisce opzioni di configurazione di rete più flessibili e a grana fine.
Questi vantaggi contribuiscono a migliorare la produttività dell'IT e a ridurre i costi di gestione, un motivo importante per continuare a utilizzare le reti virtuali.