Clonazione delle macchine virtuali tramite l'isolamento rete
Il Lab management virtuale è un'area emergente nel ciclo dello sviluppo di software.Visual Studio Lab Management è un prodotto di Visual Studio che fornisce il Lab management virtuale a sviluppatori e tester.Tramite Visual Studio Lab Management, i team di sviluppo possono sfruttare la tecnologia di virtualizzazione allo sviluppo e esercitazioni per creare ambienti a più livelli complessi da macchine virtuali.Di conseguenza possono distribuire compilazioni di applicazioni ed eseguire test in questi ambienti.
Uno dei motivi per utilizzare la virtualizzazione nello sviluppo e nei test è che in questo modo è possibile creare copie identiche, o cloni, delle macchine virtuali distribuite copiando solo alcuni file.La duplicazione è utile in molti scenari.Ad esempio, uno sviluppatore che necessita di una copia dell'ambiente di un tester per riprodurre un certo problema può creare un clone di quell'ambiente.In un team di tester, ogni tester può duplicare una copia di un ambiente e quindi coordinare le sue attività di test con il resto del team.La duplicazione risparmiare tempo sia per gli sviluppatori che per i tester dal momento che non è più necessario installare continuamente sistemi operativi e altre applicazioni in ogni ambiente che vengono creati.
Requisiti
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
Anche se è semplice da usare un ambiente virtuale, esistono conseguenze di duplicazione che è necessario considerare.I computer in un ambiente duplicato hanno gli stessi nomi dei computer dei computer nell'ambiente originale.In alcuni casi, possono anche avere lo stesso indirizzo IP e indirizzo MAC.Ciò potrebbe provocare sia la perdita della connettività di rete per uno dei cloni, o che il traffico di rete destinato ad un clone raggiunga invece l'altro.Infine, come conseguenza imprevista può verificarsi che venga distribuita un'applicazione di un particolare clone e che venga invece eseguito il test su di un altro clone.
[!NOTA]
È possibile utilizzare solo l'isolamento rete con ambienti SCVMM.Questa funzionalità non è disponibile per gli ambienti standard.
Visual Studio Lab Management risolve i problemi e facilita la duplicazione sicura degli ambienti virtuali con una tecnologia denominata isolamento rete.In questo argomento viene illustrato come funziona l'isolamento rete e confronta la duplicazione con e senza isolamento rete.Nel primo esempio vengono descritte le varie forme dei potenziali conflitti tra i cloni in assenza di isolamento rete.Negli esempi successivi vengono esaminate più soluzioni per impedire conflitti tramite l'utilizzo di Visual Studio Lab Management.
Conflitti di rete
Figura 1 mostra un ambiente virtuale che in genere è possibile creare tramite Lab Management.Questo ambiente, denominato ambiente originale, presenta due macchine virtuali: server web e server db.Questi computer eseguono il ruolo rispettivamente di server web e di server database in un'applicazione web a 3 livelli.In questo esempio, si suppone che un membro di un team di sviluppo abbia creato questo ambiente e vi abbia implementato l'ultima compilazione della propria applicazione web.Inoltre si suppone che uno snapshot chiamato ultima compilazione sia stato creato in questo ambiente dopo che la compilazione è stata implementata.Uno snapshot è uno stato temporizzato dell'ambiente.È possibile ripristinare e riprendere l'esecuzione da questo stato salvato in qualsiasi momento.Nella figura vengono illustrati i nomi computer, gli indirizzi IP e indirizzi MAC delle due macchine virtuali nell'ambiente originale.
Ambiente originale
La Figura 2 mostra, oltre all'ambiente originale, anche un ambiente duplicato.Dopo la duplicazione, quando entrambi gli ambienti vengono avviati, potrebbero verificarsi seguenti tipi di conflitti di rete:
Conflitti dei nomi computer
Conflitti di indirizzi IP
Conflitti dell'indirizzo MAC
Ambienti originali e duplicati in una rete comune
L'esatto risultato di questi conflitti dipende da numerosi fattori: il sistema operativo delle macchine virtuali, l'infrastruttura della rete del lab, e così via.Nella figura 2, si presuppone che un indirizzo IP statico e un indirizzo MAC statico siano stati configurati in ciascuna macchina virtuale dell'ambiente originale.Pertanto, quando l'ambiente è stato duplicato, le macchine virtuali duplicate avevano lo stesso IP e indirizzo MAC.
Conflitti dei nomi computer
Un nome computer è un nome descrittivo assegnato da un utente per identificare un computer in una rete.Solitamente vengono utilizzati due protocolli per tradurre un nome computer nel suo indirizzo IP: netbios e domain name server (DNS).Quando due computer con lo stesso nome computer vengono avviati nello stesso periodo di rete, Netbios rileva il conflitto di nomi e avvisa l'utente.In genere, Netbios può rilevare conflitti solo se i computer sono sullo stesso intervallo di rete.Se i computer non sono nello stesso intervallo di rete o se gli avvisi vengono ignorati, si verifica nel DNS il caso seguente di conflitti.Il DNS è un repository centrale per computer dove sono registrati i loro nomi.Quando due computer che hanno lo stesso nome computer cercano di registrarsi nel DNS, il secondo computer potrebbe sovrascrivere la voce creata dal primo computer.In questo caso, il primo computer che comincia non è raggiungibile tramite una risoluzione del nome.
Esistono modalità semplici per evitare o per risolvere conflitti di nomi computer.Anziché creare copie identiche degli ambienti, è possibile personalizzare ogni clone alla creazione utilizzando un meccanismo denominato sysprep.Sysprep fa parte dei sistemi operativi Windows.Quando si utilizza lo sysprep per duplicare gli ambienti, ogni macchina virtuale dell'ambiente ottiene un nome computer univoco, l'indirizzo IP e l'indirizzo MAC diversi da quelli nell'ambiente originale.Tuttavia, i cloni non risultano più identici.
L'impatto di avere un nome computer univoco in ogni clone, sia che questa operazione venga eseguita tramite sysprep o con un intervento manuale da parte dell'utente per evitare conflitti, dipende dal software installato nella macchina virtuale.Osservare l'esempio per comprendere quanto detto.Quando l'applicazione è stata distribuita in un ambiente, un file web.config è stato creato sul server web.In questo file, è stato configurato il nome computer db-server come parte della stringa di connessione.Un frammento del file è mostrato di seguito:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ConnectionString"
value="Persist Security Info=True;User ID=dbuser;
Password=password;Initial Catalog=Store;Data Source=db-server"/>
</appSettings>
</configuration>
Quando modifichiamo il nome computer del server database nell'ambiente duplicato, dobbiamo anche modificare manualmente il file web.config come segue per utilizzare il nuovo nome (db-server2 è il nuovo nome computer assegnato alla macchina virtuale nell'ambiente duplicato).
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ConnectionString"
value="Persist Security Info=True;User ID=dbuser;
Password=password;Initial Catalog=Store;Data Source=db-server2"/>
</appSettings>
</configuration>
Inoltre, SQL Server richiede passaggi aggiuntivi se il nome del computer viene modificato.Un frammento degli script SQL per ottenere questo risultato è mostrato di seguito:
sp_dropserver db-server
sp_addserver db-server2, local
GO
Nell'esempio precedente viene mostrato come un'applicazione deve essere riconfigurata se i nomi computer vengono modificati.Naturalmente, questa routine dipende dall'applicazione.Se un'applicazione inserisce il nome computer nelle voci in un database, tali voci devono essere modificate in un modo simile.In alcuni casi, una volta modificato il nome computer è necessario reinstallare un'applicazione.Eseguire tali riconfigurazioni e reinstallazioni è chiaramente quanto desideravamo inizialmente evitare tramite l'utilizzo della duplicazione.Si necessita quindi di una soluzione più affidabile, indipendente dalle applicazioni, che consenta in modo sicuro che più cloni coesistano senza conflitti di nomi computer.
Conflitti di indirizzi IP
Un indirizzo del protocollo internet (IP) viene utilizzato dai computer per comunicare tra loro in una rete TCP.Gli indirizzi IP vengono assegnati in modo statico o dinamico da un server DHCP in rete.Ogni interfaccia di rete collegata in un computer dispone di un indirizzo IP.Se una macchina virtuale configurata con un indirizzo IP statico viene duplicata e quindi inserita nella stessa rete della macchina virtuale originale, esiste un conflitto di indirizzo IP, oltre a un conflitto di nomi computer.È possibile correggere manualmente questo conflitto modificando l'indirizzo IP di uno dei cloni.Nuovamente, l'impatto di modificare l'indirizzo IP dipende da come l'indirizzo IP statico viene utilizzato dalle applicazioni installate nelle macchine virtuali.
Quando si avvia una duplicazione di una macchina virtuale configurata con un indirizzo IP dinamico, esiste un conflitto di rete per un breve periodo di tempo.Subito dopo che la prima macchina virtuale è stata duplicata, la seconda macchina virtuale per la connessione alla rete rileva questo conflitto e corregge il problema rinnovando il proprio indirizzo IP.Un intervallo di conflitti altrettanto breve si verifica ogni volta che l'ambiente duplicato viene ripristinato ad uno snapshot che era stato preso nell'ambiente originale.Questi intervalli di conflitto non durano in genere abbastanza da compromettere l'applicazione.
Conflitti dell'indirizzo MAC
Un indirizzo (MAC) di Media Access Control è un indirizzo assegnato a ogni interfaccia di rete in un computer.Nel caso di computer fisici, viene assegnato a ogni interfaccia di rete dal produttore della scheda.Nel caso delle macchine virtuali, esistono due modi per assegnare gli indirizzi MAC: MAC statico o dinamico.È possibile specificare un certo indirizzo MAC da utilizzare per un'interfaccia di rete di una macchina virtuale.Questo è chiamato MAC statico.In alternativa, è possibile consentire all'hypervisor di assegnare in modo dinamico un indirizzo MAC.Questo è chiamato MAC dinamico.Gli indirizzi MAC dinamici vengono assegnati da hyper-v a partire da un insieme di indirizzi MAC ogni volta che una macchina virtuale viene avviata.Ogni host ha uno schema per generare gli indirizzi MAC in modo che non entrino in conflitto con le macchine virtuali in un altro host.
Se gli indirizzi MAC statici vengono utilizzati per le macchine virtuali nell'ambiente originale, le macchine virtuali nell'ambiente duplicato avranno gli stessi indirizzo MAC.Ciò comporta immediatamente conflitti MAC.Gli indirizzi MAC duplicati sono più difficili da rilevare in quanto non sempre vengono segnalati dai computer.Anche quando vengono segnalati, questi messaggi vengono registrati nel Visualizzatore eventi di Windows.Per un utente finale, esistono due possibili conseguenze della duplicazione dell'indirizzo MAC.Una conseguenza è la perdita di connettività di rete di uno o di entrambi i cloni.Un'altra conseguenza è che i pacchetti di rete indirizzati a un computer possono invece raggiungere l'altro computer.Quando un computer originale e il suo clone hanno gli stessi indirizzi MAC, anche gli indirizzi IP sono gli stessi.Anche quando il DHCP viene utilizzato per ottenere gli indirizzi IP dinamici, il server DHCP finisce per assegnare loro gli stessi indirizzi IP dal momento che gli indirizzi MAC sono identici.
In qualche misura, è possibile evitare conflitti MAC utilizzando gli indirizzi MAC dinamici.Tuttavia, quando l'ambiente duplicato viene ripristinato ad uno snapshot che è stato preso nell'ambiente originale, l'intero stato delle macchine virtuali viene ripristinato inclusi gli indirizzi MAC.Questo porta nuovamente a conflitti MAC e si verificano gli stessi problemi descritti in precedenza fino a quando non viene riavviata la macchina virtuale duplicata.Riavviare l'ambiente duplicato provoca l'hypervisor a rilasciare e rinnovare gli indirizzi MAC con i valori del proprio intervallo.
Rilevare e risolvere i tipi di conflitti appena descritti e quindi correggere manualmente il OS/application per continuare a lavorare dopo la risoluzione, è un'operazione significativa, che richiede molto tempo e soggetta a rischi per gli utenti di Lab Management virtuale.In molti casi, modificare uno di questi parametri modifica l'ambiente virtuale quanto basta per causare la perdita della riproduzione di bug o di un problema con l'ambiente di produzione.Il principio di installare l'applicazione una volta in un ambiente virtuale e di duplicare senza problemi quell'ambiente al fine di creare più copie identiche richiede un approccio talmente sofisticato che non è pensabile gli utenti comuni possano essere capaci di gestirlo.
Isolamento Rete
Due requisiti sono stati identificati finora.Il primo requisito è che le macchine virtuali in un ambiente duplicato devono avere lo stesso nome computer, gli indirizzi IP e indirizzi MAC presenti nell'ambiente originale.Mentre, contemporaneamente, i cloni devono essere indirizzabili indipendentemente dall'esterno dell'ambiente.Ciò è necessario, ad esempio, per chi voglia connettersi a ognuno dei cloni dal desktop, per un'applicazione che deve essere distribuita in uno specifico clone, o per un test che venga eseguito su un clone specifico.Questo consente al secondo requisito; le macchine virtuali in un ambiente duplicato devono avere nomi di computer univoci, gli indirizzi IP e indirizzi MAC diversi da quelli nell'ambiente originale.La logica per mantenere entrambi requisiti è che ciascuna delle macchine virtuali abbia due interfacce: un'interfaccia privata per il quale il nome computer, indirizzo IP e indirizzo MAC è la stessa in ogni clone; e un'interfaccia pubblica per cui questi valori sono univoci in ogni clone.
Per impedire conflitti di rete per le interfacce private, dovranno essere collegate a una rete privata in ogni clone.Una rete privata è una rete virtuale che è limitata solo alle macchine virtuali di un ambiente.Poiché questa rete non è esposta oltre i limiti di un ambiente, non è possibile che si verifichino conflitti anche se gli stessi nomi computer, gli indirizzi IP e indirizzo MAC sono utilizzati da un altro clone.Per l'accessibilità dall'esterno dell'ambiente, tutte le interfacce pubbliche devono essere connesse a una rete pubblica comune.La rete pubblica o la rete lab è la rete in cui le macchine virtuali dei diversi ambienti possono interagire con i client e altri computer del lab.
Nella figura 3 viene illustrato come le interfacce pubbliche e private risolvano conflitti di indirizzi rete.
Isolamento rete in Visual Studio Lab Management
Visual Studio Lab Management implementa l'isolamento rete per gli ambienti SCVMM introducendo due interfacce di rete in ciascuna macchina virtuale.Una di queste interfacce di rete è un'interfaccia privata connessa a una rete privata e l'altra è un'interfaccia pubblica connesso alla rete pubblica.
Il software di Lab Management, insieme a un agente installato su di ogni macchina virtuale, verifica che l'ambiente originale e l'ambiente duplicato possano coesistere senza conflitti.
Interfacce private nella rete privata
Nella descrizione seguente viene presentato un riepilogo di come i nomi computer, gli indirizzi IP e gli indirizzi MAC vengono assegnati alle interfacce private di un ambiente.
Nomi di computer: I nomi di computer nella rete privata vengono risolti con Netbios e non richiedono alcuna gestione aggiuntiva dal software di Lab Management.Le applicazioni che sono configurate per l'utilizzo dei nomi computer con Netbios funzionano come previsto in ogni clone.Nell'esempio, il computer del server web si riferisce al computer di dB- server utilizzandone il nome.Tali nomi sono gli stessi sia negli ambienti originali che in quelli duplicati.Di conseguenza, il file web.config non deve essere modificato nell'ambiente duplicato.
Poiché non esiste un server DNS nella rete privata, è necessario risolvere la situazione quando i nomi di dominio completo (FQDNs) vengono utilizzati da macchine virtuali come riferimento al posto dei nomi NetBIOS.Ad esempio, se il file web.config si riferisse al dB- server come db-server.lab.contoso.com, la risoluzione del nome a un indirizzo IP non sarebbe possibile senza un DNS nella rete privata.Per risolvere il problema, l'agente lab nella macchina virtuale aggiunge voci corrispondenti alle altre macchine virtuali dello stesso ambiente nei file host.I file host sono un'altra modalità per indicare al sistema operativo che un nome deve essere risolto con un particolare indirizzo IP.Nell'esempio, il file host nel web-server avrà la seguente voce:
192.168.23.2 db-server.lab.contoso.com
Gli indirizzi IP: Un indirizzo IP statico da 192.168.23.1 - con valori massimi da 255, viene assegnato all'interfaccia di rete privata di ogni macchina virtuale.Ad esempio, l'interfaccia privata del server web ottiene 192.168.23.1 e l'interfaccia privata del server database ottiene 192.168.23.2.Lab Management garantisce che il server web e il server database ottengano gli stessi indirizzi IP statici in ogni clone.Pertanto, anche se il file web.config nel server è configurato con l'indirizzo IP del server database, non deve essere riconfigurato nell'ambiente duplicato.In qualsiasi ambiente configurato con isolamento rete, le interfacce private ottengono gli indirizzi IP da questo stesso intervallo, a partire da 192.168.23.1.Il massimo numero di indirizzi necessari in questo intervallo è uguale al numero massimo delle macchine virtuali in un ambiente.Poiché questo set di indirizzi IP non è routable all'esterno della rete privata, è possibile utilizzare un intervallo predefinito fintanto che lo stesso intervallo non è utilizzato nella rete pubblica.
Indirizzo MAC: Un indirizzo MAC statico casuale viene assegnato all'interfaccia di rete privata di ogni macchina virtuale in un ambiente con rete isolata.Nell'esempio, l'interfaccia privata web nel server web originale viene assegnato un indirizzo MAC come 00-15-5D-07-57-01.Il Lab Management garantisce che il server web ottenga lo stesso indirizzo MAC anche nell'ambiente duplicato.Poiché questo set di indirizzo MAC non è routable dall'esterno della rete privata, è possibile utilizzare un indirizzo casuale fintanto che non finisce nell'intervallo utilizzato dall'hypervisor su tale host.
Interfacce pubbliche nella rete pubblica
Nella descrizione seguente viene presentato un riepilogo di come i nomi computer, gli indirizzi IP e gli indirizzi MAC vengono assegnati alle interfacce pubbliche di un ambiente.
Nomi di computer: Non si vuole che Netbios risolva i nomi computer nella rete pubblica, perché questa operazione comporterebbe un conflitto di nomi computer.Per evitare questo problema, Lab Management disabilita le trasmissione Netbios sull'interfaccia pubblica di ogni macchina virtuale.Similarmente a quanto visto per Netbios, non si vuole che le macchine virtuali possano registrare i nomi di computer Netbios nel DNS.Lab Management disabilita la registrazione DNS per ogni interfaccia pubblica.In assenza di Netbios e di una registrazione DNS predefinita, si vuole comunque che le macchine virtuali abbiano nomi univoci che possano essere utilizzati in una rete pubblica.Lab Management genera un nome unico di alias per conto di ogni macchina virtuale e lo registra come "A" nel DNS.Nell'esempio, il server web nell'ambiente originale può essere registrato utilizzando un nome alias univoco come VSLM-195ea870-34d87df83883add23-47ab86ff.lab.contoso.com.Lo stesso server web nell'ambiente duplicato viene registrato utilizzando un nome diverso che potrebbe somigliare a VSLM-87ead667a-8787adde877919aaa-2001874d0.lab.contoso.com.
Gli indirizzi IP: L'interfaccia di rete pubblica in ogni macchina virtuale è configurata per ottenere l'indirizzo IP dinamico da un server DHCP.In questo modo è assicurato che le macchine virtuali negli ambienti originali e negli ambienti duplicati abbiano di indirizzi IP univoci.Ad esempio, il server web nell'ambiente originale potrebbe ottenere un indirizzo IP di 172.52.20.140 e lo stesso server web nell'ambiente duplicato potrebbe ottenere un indirizzo IP di 172.52.20.205.
Indirizzo MAC: Per impedire conflitti MAC, l'interfaccia di rete pubblica in ogni macchina virtuale potrebbe essere configurata per ottenere gli indirizzi MAC dinamici dall'hypervisor.Ciò assicurerebbe che il computer del server web nell'esempio ottenga un indirizzo MAC diverso negli ambienti originali e negli ambienti duplicati.Tuttavia, come descritto in precedenza, quando un ambiente duplicato viene ripristinato ad uno snapshot preso nell'ambiente originale, gli indirizzi MAC e IP della macchina virtuale duplicata sono gli stessi valori dell'originale.Ad esempio, quando l'ambiente duplicato viene ripristinato all'ultimo snapshot di compilazione, l'indirizzo IP del server web diventa 10.86.51.61 (vedere la figura 3), che è lo stesso valore dell'ambiente originale.Lo stesso accade anche con l'indirizzo MAC.Mentre il conflitto di indirizzo IP è temporaneo fino a che non venga rinnovato dal DHCP, il conflitto MAC persiste fintanto che non vengano riavviate le macchine virtuali.A causa di questa limitazione, l'utilizzo di indirizzi MAC assegnati in modo dinamico dall'hypervisor per le interfacce pubbliche non è una soluzione valida.
Per risolvere questo problema, Lab Management utilizza un suo insieme di indirizzi MAC.Gli indirizzi MAC univoci di questo insieme vengono assegnati alle interfacce pubbliche di macchine virtuali.Ogni volta che l'ambiente duplicato viene ripristinato ad uno snapshot, Lab Management modifica gli indirizzi MAC automaticamente per impedire conflitti.Per comprendere il funzionamento, si consideri che l'indirizzo MAC del server web nell'ambiente originale sia 1D-D8-B7-1C-00-05 e che l'indirizzo MAC del server web nell'ambiente clonato sia 1D-D8-B7-1C-00-07.Quando l'ambiente duplicato viene ripristinato in un ambiente originale di uno snapshot, l'indirizzo MAC del server web diviene momentaneamente 1D-D8-B7-1C-00-05.Lab Management lo modifica nuovamente in 1D-D8-B7-1C-00-07 per evitare i conflitti di rete.
Interazioni tipiche di isolamento rete
A questo punto si vedrà cosa accade quando due macchine virtuali all'interno di un ambiente comunicano tra loro:
Il server Web utilizza i file host o Netbios per risolvere il nome computer "db-server" nell'indirizzo IP dell'interfaccia privata di db-server (192.168.23.2).
Il server Web comunica con db-server a questo indirizzo IP.
Quando un client esterno all'ambiente deve comunicare con il server web in un ambiente duplicato, si verifica il processo riportato di seguito:
Il client interroga il software di Lab Management per ottenere il nome di alias univoco del server web nell'ambiente duplicato.
Il software di Lab Management risponde al nome di alias univoco.
Il server DNS risolve il nome di alias univoco nell'indirizzo IP dell'interfaccia pubblica del server web (10.86.51.63).
Il client comunica con il server web a questo indirizzo IP.
Alternative per l'isolamento rete
L'utilizzo di due interfacce non è l'unico approccio per l'isolamento rete.Un approccio molto simile è utilizzare un NAT bidirezionale.Il NAT rappresenta un metodo comune per creare una rete privata di dispositivi che devono comunicare con i dispositivi in una rete pubblica.Anche se la comunicazione in un tipico NAT deve sempre avere origine dalla rete privata, il NAT bidirezionale (o NAT a due vie) porta la faccenda ad un passo successivo consentendo l'avvio della comunicazione anche dai computer nella rete privata o da quelli nella rete pubblica.
Per eseguire l'isolamento rete utilizzando questo approccio, un server bidirezionale di NAT deve essere introdotto nell'ambiente.In genere si ottiene mediante l'aggiunta di una macchina virtuale speciale all'ambiente che svolge esattamente il ruolo di un server NAT bidirezionale.Quando viene creato un ambiente di isolamento rete, gli indirizzi IP pubblici e privati di macchine virtuali vengono assegnati come nell'approccio a due interfacce.Tuttavia, anziché assegnare l'indirizzo IP pubblico a un'interfaccia di rete nella macchina virtuale, i mapping vengono memorizzati in una tabella di NAT sul server NAT bidirezionale.
I passaggi affinché due macchine virtuali nell'ambiente possano comunicare tra loro utilizzando un approccio NAT bidirezionale sono identici all'approccio a due interfacce:
Il server Web utilizza i file host o Netbios per risolvere il nome computer "db-server" nell'indirizzo IP dell'interfaccia privata di db-server (192.168.23.2).
Il server Web comunica con db-server a questo indirizzo IP.
I passaggi eseguiti quando un client esterno all'ambiente deve comunicare con il server web nell'ambiente duplicato sono leggermente diversi e sono i seguenti:
Implementando l'approccio NAT, il client interroga il software di Lab Management per ottenere il nome di alias univoco del server web nell'ambiente duplicato.(Visual Studio Lab Management non implementa l'approccio NAT).
Il software di Lab Management risponde al nome di alias univoco.
Il server DNS risolve il nome di alias univoco all'indirizzo IP pubblico del server web (10.86.51.63).
Questo indirizzo IP in realtà mappa ad un'interfaccia nel server NAT bidirezionale.Il client comunica con il server NAT bidirezionale mentre si presuppone che sia in comunicazione con il server web.
Il server NAT recupera i mapping archiviati nelle tabelle di configurazione e converte l'indirizzo IP pubblico (10.86.51.63) all'indirizzo IP privato (192.168.23.1).
Il server NAT inoltra il messaggio dal client sulla rete privata a 192.168.23.1, ovvero l'indirizzo IP del server web.
Il vantaggio di questo approccio rispetto all'approccio a due interfacce è che le macchine virtuali nell'ambiente non devono essere modificate in alcun modo.Non è necessario fornire un'interfaccia di rete aggiuntiva in ciascuna macchina virtuale.Introdurre un'interfaccia di rete aggiuntiva in una macchina virtuale può provocare l'interruzione di alcune applicazioni.
Un altro vantaggio di questo approccio è che l'intera logica per il raggiungimento di isolamento rete è incapsulato nella macchina virtuale aggiuntiva.Non è necessario disporre di un agente in ognuna delle altre macchine virtuali.Inviare tutti i pacchetti dalla macchina virtuale aggiuntiva fornisce un punto di controllo aggiuntivo per il supporto delle funzionalità più avanzate di isolamento rete come:
Sbarramento in uscita: non consente ai pacchetti di rete avviati dai client esterni all'ambiente di raggiungere le macchine virtuali nell'ambiente.
Controllo in uscita con eccezioni specifiche sulle porte: non consente ai pacchetti di rete avviati dai client esterni all'ambiente di raggiungere le macchine virtuali nell'ambiente a meno che non vengano indirizzate a una porta specifica.
Queste funzionalità possono essere facilmente implementate nell'approccio NAT bidirezionale introducendo un firewall nel server NAT. Lo svantaggio principale dell'approccio NAT bidirezionale è che alcune applicazioni non funzionano tramite il NAT.Ad esempio i protocolli remoting .NET e DCOM, che vengono comunemente utilizzati nelle applicazioni Windows, non vengono eseguiti quando il client e il server sono separati da un server NAT.È per questo motivo che Visual Studio Lab Management utilizza l'approccio delle interfacce duali.Un altro svantaggio dell'approccio bidirezionale di NAT è che richiede una macchina virtuale aggiuntiva in ogni ambiente, che comporta un sovraccarico aggiuntivo durante la creazione o le altre operazioni sugli ambienti virtuali.
Altri conflitti
Finora, è stato descritto come i conflitti di nomi computer, di indirizzi MAC e IP possano essere indirizzati attraverso l'isolamento rete.Quando gli ambienti sono duplicati, esistono anche altri tipi di conflitti che potrebbero verificarsi.Ogni volta che si verifica una dipendenza da un componente esterno all'ambiente virtuale, vi può essere un potenziale conflitto nel momento in cui si duplica l'ambiente.In questa sezione, verranno esaminati due casi comuni, in cui tali conflitti potrebbero verificarsi.
Conflitti di Active Directory
Solitamente i computer e applicazioni Windows fanno affidamento su Active Directory (AD) sia per i servizi directory o per l'autenticazione utente e le autorizzazioni.Gestire i computer Windows a livello centrale utilizzando i criteri di gruppo di Progettazione applicazioni è una pratica molto comune.Utilizzando l'esempio, si supponga che il server web e il server database nell'ambiente originale siano connessi a un dominio gestito da una Progettazione applicazioni.La Progettazione applicazioni è ospitata all'esterno dell'ambiente.Quando duplichiamo questo ambiente, otteniamo due cloni identici del server web, tuttavia, esiste una sola voce nella Progettazione applicazioni.Ciò è un risultato chiaramente indesiderato che può condurre a diversi problemi.Ad esempio, se a causa di un'azione dell'utente uno dei cloni di server web è separato dal dominio, verrà separato anche l'altro clone.Le modifiche apportate non intenzionalmente in un ambiente, hanno effetto anche sull'altro ambiente.
Per impedire conflitti di Active Directory, un server di Progettazione applicazioni deve essere inserito in una macchina virtuale nell'ambiente.Il server di Progettazione applicazioni non dovrebbe presentare alcune relazioni di fiducia con altre directory al di fuori dell'ambiente.
Esistono alcune considerazioni aggiuntive per l'installazione di Progettazione applicazioni in un ambiente di isolamento rete.Innanzitutto, la macchina virtuale di Progettazione applicazioni non deve essere connessa alla rete pubblica.Nell'approccio a due interfacce, questo significa che la macchina virtuale di Progettazione applicazioni non deve avere un'interfaccia pubblica.Nell'approccio NAT bidirezionale, questo significa che la tabella di NAT non deve avere un mapping per la macchina virtuale di Progettazione applicazioni.
In secondo luogo, dal momento che Progettazione applicazioni è in una foresta indipendente, deve esserci un server DNS nell'ambiente.Le altre macchine virtuali all'interno dell'ambiente devono utilizzare questo server DNS nella rete privata per una corretta con la Progettazione applicazioni.Ad esempio, per una macchina virtuale potrebbe non essere possibile creare il dominio in Progettazione applicazioni privata a meno che l'impostazione del server DNS non sia configurata correttamente sull'interfaccia privata.
Quando si configura un ambiente per importare una macchina virtuale di Progettazione applicazioni, Visual Studio Lab Management automatizza la disconnessione di una Progettazione applicazioni dalla rete pubblica e la configurazione delle interfacce private di macchine virtuali con le impostazioni DNS.
Possono verificarsi situazioni in cui non è possibile ospitare una Progettazione applicazioni interno dell'ambiente.Ad esempio, potrebbe verificarsi durante l'applicazione sotto sviluppo deve utilizzare una Progettazione applicazioni aziendale per l'integrazione con altre applicazioni esistenti.Non esiste una soluzione nota per abilitare la duplicazione sicura degli ambienti quando i computer sono connessi a un dominio esterno dell'ambiente.
Conflitti di database
Un altro utilizzo comune degli ambienti virtuali include ospitare il database dell'esterno dell'ambiente.In genere, questa operazione viene eseguita quando il database è abbastanza grande e quando non è pratico duplicare il database con ogni ambiente.Questo problema può verificarsi anche quando l'applicazione di sviluppo è un client web semplice che interagisce con un database ospitato altrove.In tali casi, quando due cloni identici interagiscono con il database, il server database non è in grado di distinguere l'identità dei due client.
Riepilogo
La possibilità di creare cloni identici ambienti virtuali è essenziale per diversi scenari in Lab Management virtuale.Tuttavia, quando i cloni identici vengono creati, si manifestano conflitti di nome computer, di indirizzo MAC e di indirizzo IP.Semplici tecniche, come modificare i nomi computer o indirizzi IP, per risolvere tali conflitti in genere richiedono la riconfigurazione o la reinstallazione dell'applicazione ed eliminano efficacemente l'intento di creare cloni identici.L'isolamento rete affronta questo problema consentendo di creare ed eseguire contemporaneamente due cloni.
Passaggi successivi
Pianifichivi ambiente SCVMM: impara su quando utilizzare le opzioni differenti per gli ambienti scvmm, ad esempio tramite le macchine virtuali in esecuzione, le macchine virtuali archiviate, modelli, gli ambienti archiviati e l'isolamento rete.Vedere Linee guida per la creazione e la gestione di ambienti SCVMM.
Utilizzo diCreare un ambiente di isolamento rete: questo argomento se è possibile creare un ambiente di isolamento rete.Vedere Creazione e utilizzo di un ambiente di isolamento rete.
Vedere anche
Concetti
Utilizzo di un ambiente lab per il ciclo di vita dell'applicazione