Condividi tramite


Distribuire un'infrastruttura Software Defined Network usando gli script

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, versioni 21H2 e 20H2

In questo argomento si distribuisce un'infrastruttura SDN (Software Defined Network) Microsoft usando script. L'infrastruttura include un controller di rete a disponibilità elevata, un servizio di bilanciamento del carico software a disponibilità elevata (SLB)/MUX, reti virtuali ed elenchi di controllo di accesso (ACL) associati. Inoltre, un altro script distribuisce un carico di lavoro tenant per convalidare l'infrastruttura SDN.

Se si vuole che i carichi di lavoro del tenant comunichino all'esterno delle reti virtuali, è possibile configurare regole NAT SLB, tunnel gateway da sito a sito o inoltro di livello 3 per instradare tra carichi di lavoro virtuali e fisici.

È anche possibile distribuire un'infrastruttura SDN usando Virtual Machine Manager (VMM). Per altre informazioni, vedere Configurare un'infrastruttura SDN (Software Defined Network) nell'infrastruttura VMM.

Pre-distribuzione

Importante

Prima di iniziare la distribuzione, è necessario pianificare e configurare gli host e l'infrastruttura di rete fisica. Per altre informazioni, vedi Pianificare un'infrastruttura Software Defined Network.

Tutti gli host Hyper-V devono avere Installato Windows Server 2019 o 2016.

Passaggi per la distribuzione

Per iniziare, configurare il commutatore virtuale Hyper-V (server fisici) dell'host Hyper-V e l'assegnazione di indirizzi IP. È possibile usare qualsiasi tipo di archiviazione compatibile con Hyper-V, condiviso o locale.

Installare la rete host

  1. Installare i driver di rete più recenti disponibili per l'hardware della scheda di interfaccia di rete.

  2. Installare il ruolo Hyper-V in tutti gli host. Per altre informazioni, vedere Installare il ruolo Hyper-V in Windows Server.

    Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools -Restart
    
  3. Creare il commutatore virtuale Hyper-V.

    Usare lo stesso nome dell'opzione per tutti gli host, ad esempio sdnSwitch. Configurare almeno una scheda di rete o, se si usa SET, configurare almeno due schede di rete. La distribuzione in ingresso massima si verifica quando si usano due schede di interfaccia di rete.

    New-VMSwitch "<switch name>" -NetAdapterName "<NetAdapter1>" [, "<NetAdapter2>" -EnableEmbeddedTeaming $True] -AllowManagementOS $True
    

    Suggerimento

    È possibile ignorare i passaggi 4 e 5 se sono presenti schede di interfaccia di rete di gestione separate.

  4. Vedere l'argomento Pianificazione di un'infrastruttura di rete software-defined e collaborare con l'amministratore di rete per ottenere l'ID VLAN della VLAN di gestione. Collegare la scheda di interfaccia di rete virtuale di gestione del commutatore virtuale appena creato alla VLAN di gestione. Questo passaggio può essere omesso se l'ambiente non usa tag VLAN.

    Set-VMNetworkAdapterIsolation -ManagementOS -IsolationMode Vlan -DefaultIsolationID <Management VLAN> -AllowUntaggedTraffic $True
    
  5. Fare riferimento all'argomento pianificazione Pianificare un'infrastruttura di rete definita dal software e collaborare con l'amministratore di rete per usare le assegnazioni IP DHCP o statiche per assegnare un indirizzo IP alla scheda di interfaccia di rete virtuale di gestione del vSwitch appena creato. L'esempio seguente illustra come creare un indirizzo IP statico e assegnarlo alla scheda di interfaccia di rete virtuale di gestione del vSwitch:

    New-NetIPAddress -InterfaceAlias "vEthernet (<switch name>)" -IPAddress <IP> -DefaultGateway <Gateway IP> -AddressFamily IPv4 -PrefixLength <Length of Subnet Mask - for example: 24>
    
  6. [Facoltativo] Distribuire una macchina virtuale per ospitare Dominio di Active Directory Services Install Dominio di Active Directory Services (Livello 100) e un server DNS.

    a. Connettere la macchina virtuale server Active Directory/DNS alla VLAN di gestione:

    Set-VMNetworkAdapterIsolation -VMName "<VM Name>" -Access -VlanId <Management VLAN> -AllowUntaggedTraffic $True
    

    b. Installare Servizi di dominio Active Directory e DNS.

    Nota

    Il controller di rete supporta sia i certificati Kerberos che X.509 per l'autenticazione. Questa guida usa entrambi i meccanismi di autenticazione per scopi diversi (anche se è necessario solo uno).

  7. Aggiungere tutti gli host Hyper-V al dominio. Assicurarsi che la voce del server DNS per la scheda di rete con un indirizzo IP assegnato alla rete di gestione punti a un server DNS in grado di risolvere il nome di dominio.

    Set-DnsClientServerAddress -InterfaceAlias "vEthernet (<switch name>)" -ServerAddresses <DNS Server IP>
    

    a. Fare clic con il pulsante destro del mouse su Start, selezionare Sistema e quindi modifica impostazioni. Modificare le impostazioni. b. Seleziona Modifica. c. Selezionare Dominio e specificare il nome di dominio. d. Selezionare OK. e. Digitare il nome utente e le credenziali della password quando richiesto. f. Riavviare il server.

Convalida

Usare la procedura seguente per verificare che la rete host sia configurata correttamente.

  1. Verificare che il commutatore di macchina virtuale sia stato creato correttamente:

    Get-VMSwitch "<switch name>"
    
  2. Verificare che la scheda di interfaccia di rete virtuale di gestione nel commutatore di macchina virtuale sia connessa alla VLAN di gestione:

    Nota

    Rilevante solo se il traffico di gestione e tenant condivide la stessa scheda di interfaccia di rete.

    Get-VMNetworkAdapterIsolation -ManagementOS
    
  3. Convalidare tutti gli host Hyper-V e le risorse di gestione esterna, ad esempio i server DNS. Assicurarsi che siano accessibili tramite ping usando l'indirizzo IP di gestione e/o il nome di dominio completo (FQDN).

    ping <Hyper-V Host IP>
    ping <Hyper-V Host FQDN>
    
  4. Eseguire il comando seguente nell'host di distribuzione e specificare il nome di dominio completo di ogni host Hyper-V per assicurarsi che le credenziali Kerberos usate forniscano l'accesso a tutti i server.

    winrm id -r:<Hyper-V Host FQDN>
    

Eseguire script SDN Express

  1. Passare al repository GitHub SDN di Microsoft per i file di installazione.

  2. Scaricare i file di installazione dal repository nel computer di distribuzione designato. Fare clic su Clona o scarica e quindi fare clic su Scarica ZIP.

    Nota

    Il computer di distribuzione designato deve eseguire Windows Server 2016 o versione successiva.

  3. Espandere il file ZIP e copiare la cartella SDNExpress nella cartella C:\ del computer di distribuzione.

  4. Condividere la cartella C:\SDNExpress come "SDNExpress" con l'autorizzazione per Everyone a Lettura/scrittura.

  5. Passa alla cartella C:\SDNExpress.

    Sono visualizzate le cartelle seguenti:

    Nome cartella Descrizione
    AgentConf Contiene copie aggiornate degli schemi OVSDB usati dall'agente host SDN in ogni host Hyper-V di Windows Server 2016 per programmare i criteri di rete.
    Certificati Percorso condiviso temporaneo per il file del certificato NC.
    Immagini Vuoto, posizionare l'immagine vhdx di Windows Server 2016 qui
    Strumenti Utilità per la risoluzione dei problemi e il debug. Copiato negli host e nelle macchine virtuali. Si consiglia di posizionare Monitoraggio di rete o Wireshark qui in modo che sia disponibile, se necessario.
    Scripts Script di distribuzione.

    - SDNExpress.ps1
    Distribuisce e configura l'infrastruttura, incluse le macchine virtuali del controller di rete, le macchine virtuali Mux SLB, i pool di gateway e le macchine virtuali del gateway HNV corrispondenti ai pool.
    - FabricConfig.psd1
    Modello di file di configurazione per lo script SDNExpress. Questa opzione verrà personalizzata per l'ambiente in uso.
    - SDNExpressTenant.ps1
    Distribuisce un carico di lavoro tenant di esempio in una rete virtuale con un indirizzo VIP con carico bilanciato.
    Effettua inoltre il provisioning di una o più connessioni di rete (VPN S2S IPSec, GRE, L3) nei gateway perimetrali del provider di servizi connessi al carico di lavoro del tenant creato in precedenza. I gateway IPSec e GRE sono disponibili per la connettività tramite l'indirizzo IP VIP corrispondente e il gateway di inoltro L3 sul pool di indirizzi corrispondente.
    Questo script può essere usato per eliminare anche la configurazione corrispondente con un'opzione Annulla.
    - TenantConfig.psd1
    Un file di configurazione modello per il carico di lavoro del tenant e la configurazione del gateway S2S.
    - SDNExpressUndo.ps1
    Pulisce l'ambiente dell'infrastruttura e lo reimposta in uno stato di avvio.
    - SDNExpressEnterpriseExample.ps1
    Effettua il provisioning di uno o più ambienti del sito aziendale con un gateway di accesso remoto e(facoltativamente) una macchina virtuale aziendale corrispondente per sito. I gateway aziendali IPSec o GRE si connettono all'indirizzo IP VIP corrispondente del gateway del provider di servizi per stabilire i tunnel da sito a sito. Il gateway di inoltro L3 si connette tramite l'indirizzo IP peer corrispondente.
    Questo script può essere usato per eliminare anche la configurazione corrispondente con un'opzione Annulla.
    - EnterpriseConfig.psd1
    File di configurazione del modello per la configurazione del gateway da sito a sito aziendale e della macchina virtuale client.

    TenantApps File usati per distribuire carichi di lavoro tenant di esempio.
  6. Verificare che il file VHDX di Windows Server 2016 si trova nella cartella Images.

  7. Personalizzare il file SDNExpress\scripts\FabricConfig.psd1 modificando i tag << Sostituisci >> con valori specifici per adattarsi all'infrastruttura lab, inclusi nomi host, nomi di dominio, nomi utente e password e informazioni di rete per le reti elencate nell'argomento Pianificazione rete.

  8. Creare un record Host A in DNS per NetworkControllerRestName (FQDN) e NetworkControllerRestIP.

  9. Eseguire lo script come utente con credenziali di amministratore di dominio:

    SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose
    
  10. Per annullare tutte le operazioni, eseguire il comando seguente:

 SDNExpress\scripts\SDNExpressUndo.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose

Convalida

Supponendo che lo script SDN Express sia stato eseguito fino al completamento senza segnalare errori, è possibile eseguire il passaggio seguente per assicurarsi che le risorse dell'infrastruttura siano state distribuite correttamente e siano disponibili per la distribuzione del tenant.

Usare Strumenti di diagnostica per assicurarsi che non siano presenti errori nelle risorse dell'infrastruttura nel controller di rete.

Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller Rest Name>

Distribuire un carico di lavoro tenant di esempio con il servizio di bilanciamento del carico software

Ora che le risorse dell'infrastruttura sono state distribuite, è possibile convalidare la distribuzione SDN end-to-end distribuendo un carico di lavoro tenant di esempio. Questo carico di lavoro tenant è costituito da due subnet virtuali (livello Web e livello di database) protette tramite regole ACL (Access Control List) usando il firewall distribuito SDN. La subnet virtuale del livello Web è accessibile tramite SLB/MUX usando un indirizzo IP virtuale (VIP). Lo script distribuisce automaticamente due macchine virtuali di livello Web e una macchina virtuale a livello di database e le connette alle subnet virtuali.

  1. Personalizzare il file SDNExpress\scripts\TenantConfig.psd1 modificando i tag << Sostituisci >> con valori specifici (ad esempio: nome dell'immagine del disco rigido virtuale, nome REST del controller di rete, nome vSwitch e così via, come definito in precedenza nel file FabricConfig.psd1)

  2. Eseguire lo script. Ad esempio:

    SDNExpress\scripts\SDNExpressTenant.ps1 -ConfigurationDataFile TenantConfig.psd1 -Verbose
    
  3. Per annullare la configurazione, eseguire lo stesso script con il parametro Annulla. Ad esempio:

    SDNExpress\scripts\SDNExpressTenant.ps1 -Undo -ConfigurationDataFile TenantConfig.psd1 -Verbose
    

Convalida

Per verificare che la distribuzione del tenant sia riuscita, eseguire le operazioni seguenti:

  1. Accedere alla macchina virtuale a livello di database e provare a eseguire il ping dell'indirizzo IP di una delle macchine virtuali del livello Web . Verificare che Windows Firewall sia disattivato nelle macchine virtuali del livello Web.

  2. Controllare la presenza di eventuali errori nelle risorse del tenant del controller di rete. Eseguire quanto segue da qualsiasi host Hyper-V con connettività di livello 3 al controller di rete:

    Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller REST Name>
    
  3. Per verificare che il servizio di bilanciamento del carico sia in esecuzione correttamente, eseguire quanto segue da qualsiasi host Hyper-V:

    wget <VIP IP address>/unique.htm -disablekeepalive -usebasicparsing
    

    dove <VIP IP address> è l'indirizzo IP VIP del livello Web configurato nel file TenantConfig.psd1.

    Suggerimento

    Cercare la variabile VIPIP in TenantConfig.psd1.

    Eseguire questa operazione più volte per visualizzare il commutatore di bilanciamento del carico tra i DIP disponibili. È anche possibile osservare questo comportamento usando un Web browser. Passa a <VIP IP address>/unique.htm. Chiudere il browser, aprire una nuova istanza e cercare di nuovo. Verrà visualizzata la pagina blu e la pagina verde alternativa, tranne quando il browser memorizza nella cache la pagina prima del timeout della cache.