Een SDN-infrastructuur implementeren met SDN Express
Van toepassing op: Azure Stack HCI, versies 22H2 en 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Belangrijk
Azure Stack HCI maakt nu deel uit van Azure Local. Oudere versies van Azure Stack HCI, bijvoorbeeld 22H2, blijven verwijzen naar Azure Stack HCI en geven de naamwijziging niet weer. Meer informatie.
In dit artikel wordt beschreven hoe u een end-to-end SDN-infrastructuur (Software Defined Network) implementeert met behulp van SDN Express PowerShell-scripts. De infrastructuur bevat een hoogbeschikbare netwerkcontroller (NC), en optioneel een hoogbeschikbare Software Load Balancer (SLB), en een hoogbeschikbare gateway (GW). De scripts ondersteunen een gefaseerde implementatie, waarin u alleen het onderdeel Netwerkcontroller kunt implementeren om een kernset functionaliteit te bereiken met minimale netwerkvereisten.
U kunt ook een SDN-infrastructuur implementeren met behulp van Windows Admin Center of System Center Virtual Machine Manager (VMM). Zie Een cluster maken - Stap 5: SDN en SDN-resources beheren in de VMM-infrastructuur voor meer informatie.
Belangrijk
U kunt Microsoft System Center Virtual Machine Manager 2019 niet gebruiken om clusters met Azure Stack HCI, versie 21H2 of Windows Server 2022 te beheren.
Voordat u begint
Voordat u begint met een SDN-implementatie, moet u uw fysieke en hostnetwerkinfrastructuur plannen en configureren. Zie de volgende artikelen:
- Vereisten voor fysiek netwerk
- Vereisten voor hostnetwerk
- Een cluster maken met windows-beheercentrum
- Een cluster maken met Windows PowerShell
- Een software-gedefinieerde netwerkinfrastructuur plannen
U hoeft niet alle SDN-onderdelen te implementeren. Zie de sectie Gefaseerde implementatie van een softwaregedefinieerde netwerkinfrastructuur plannen om te bepalen welke infrastructuuronderdelen u nodig hebt en voer vervolgens de scripts dienovereenkomstig uit.
Zorg ervoor dat op alle hostservers het Azure Stack HCI-besturingssysteem is geïnstalleerd. Zie Het Azure Stack HCI-besturingssysteem implementeren om dit te doen.
Vereisten
Aan de volgende vereisten moet worden voldaan voor een geslaagde SDN-implementatie:
- Op alle hostservers moet Hyper-V zijn ingeschakeld.
- Alle hostservers moeten lid zijn van Active Directory.
- Er moet een virtuele switch worden gemaakt.
- Het fysieke netwerk moet worden geconfigureerd voor de subnetten en VLAN's die zijn gedefinieerd in het configuratiebestand.
- Het SDN Express-script moet worden uitgevoerd vanaf een Computer met Windows Server 2016 of hoger.
- Het VHDX-bestand dat is opgegeven in het configuratiebestand, moet bereikbaar zijn vanaf de computer waarop het SDN Express-script wordt uitgevoerd.
Het VHDX-bestand downloaden
SDN maakt gebruik van een VHDX-bestand met het Azure Stack HCI- of Windows Server-besturingssysteem (OS) als bron voor het maken van de virtuele SDN-machines (VM's).
Notitie
De versie van het besturingssysteem in uw VHDX moet overeenkomen met de versie die wordt gebruikt door de lokale Hyper-V-machines van Azure. Dit VHDX-bestand wordt gebruikt door alle ONDERDELEN van de SDN-infrastructuur.
Als u een Engelstalige versie van het VHDX-bestand wilt downloaden, raadpleegt u het besturingssysteem downloaden vanuit de Azure-portal. Zorg ervoor dat u Engelse VHDX selecteert in de vervolgkeuzelijst Taal kiezen.
Op dit moment is een niet-Engels VHDX-bestand niet beschikbaar om te downloaden. Als u een niet-Engelse versie nodig hebt, downloadt u het bijbehorende ISO-bestand en converteert u het naar VHDX met behulp van de Convert-WindowsImage
cmdlet. U moet dit script uitvoeren vanaf een Windows-clientcomputer. U moet dit script waarschijnlijk uitvoeren als beheerder en het uitvoeringsbeleid voor scripts wijzigen met behulp van de Set-ExecutionPolicy
opdracht.
De volgende syntaxis toont een voorbeeld van het gebruik Convert-WindowsImage
:
Install-Module -Name Convert-WindowsImage
Import-Module Convert-WindowsImage
$wimpath = "E:\sources\install.wim"
$vhdpath = "D:\temp\AzureStackHCI.vhdx"
$edition=1
Convert-WindowsImage -SourcePath $wimpath -Edition $edition -VHDPath $vhdpath -SizeBytes 500GB -DiskLayout UEFI
Notitie
De SDN Express-scriptbestanden zijn niet meer beschikbaar op GitHub.
De SDN Express PowerShell-module installeren
Voer de volgende opdracht uit om de nieuwste versie van de SDN Express PowerShell-module te installeren op de computer waarop u de SDN-installatie wilt uitvoeren:
Install-Module -Name SDNExpress
De bestanden worden automatisch geïnstalleerd in de standaardmap van de PowerShell-module: C:\Program Files\WindowsPowerShell\Modules\SdnExpress\
.
Het configuratiebestand bewerken
In het PowerShell-configuratiegegevensbestand (psd1-bestand) worden de invoerparameters en configuratie-instellingen opgeslagen die het SDN Express-script moet uitvoeren. Dit bestand bevat specifieke informatie over wat moet worden geconfigureerd, op basis van of u alleen het onderdeel Netwerkcontroller implementeert of ook de software load balancer- en gatewayonderdelen.
Zie Een software-gedefinieerde netwerkinfrastructuur plannen voor meer informatie. Zie Configuratievoorbeeldbestandenvoor meer informatie over het relevante configuratiebestand dat moet worden gebruikt.
Navigeer naar de map C:\Program Files\WindowsPowerShell\Modules\SdnExpress\
en open het relevante configuratiebestand in uw favoriete teksteditor. Wijzig specifieke parameterwaarden zodat deze passen bij uw infrastructuur en implementatie.
Algemene instellingen en parameters
Deze instellingen en parameters worden in het algemeen door SDN gebruikt voor alle implementaties. Zie vereisten voor SDN-infrastructuur-VM-rollen voor specifieke aanbevelingen.
- VHDPath - VHD-bestandspad dat wordt gebruikt door alle VM's van de SDN-infrastructuur (NC, SLB, GW)
- VHDFile - VHDX-bestandsnaam die wordt gebruikt door alle VM's van de SDN-infrastructuur
-
VMLocation : bestandspad naar VM's van de SDN-infrastructuur. Houd er rekening mee dat UNC-paden (Universal Naming Convention) niet worden ondersteund. Voor paden op basis van clusteropslag gebruikt u een indeling zoals
C:\ClusterStorage\...
- JoinDomain - domein waaraan VM's van de SDN-infrastructuur zijn gekoppeld
- SDNMacPoolStart - het begin van het MAC-poeladres voor virtuele machines met clientworkloads
- SDNMacPoolEnd - eindadres van de MAC-pool voor VM's voor clientworkloads
- ManagementSubnet - beheernetwerksubnet dat door NC wordt gebruikt voor het beheren van Hyper-V-hosts, SLB en GW-onderdelen
- ManagementGateway - Gatewayadres voor het beheernetwerk
- ManagementDNS - DNS-server voor het beheernetwerk
- ManagementVLANID - VLAN-id voor het beheernetwerk
-
DomainJoinUsername - gebruikersnaam van beheerder. Houd er rekening mee dat de gebruikersnaam de volgende indeling moet hebben:
domainname\username
. Als het domein bijvoorbeeld iscontoso.com
, voert u de gebruikersnaam in alscontoso\<username>
. Gebruik geen indelingen zoalscontoso.com\<username>
ofusername@contoso.com
-
LocalAdminDomainUser - gebruikersnaam van lokale beheerder. Houd er rekening mee dat de gebruikersnaam de volgende indeling moet hebben:
domainname\username
. Als het domein bijvoorbeeld iscontoso.com
, voert u de gebruikersnaam in alscontoso\<username>
. Gebruik geen indelingen zoalscontoso.com\<username>
ofusername@contoso.com
- RestName : DNS-naam die wordt gebruikt door beheerclients (zoals Windows Admin Center) om te communiceren met NC
- RestIpAddress - Statisch IP-adres voor uw REST API, die wordt toegewezen vanuit uw beheernetwerk. Het kan worden gebruikt voor DNS-omzetting of OP REST IP gebaseerde implementaties
- HyperVHosts - hostservers die moeten worden beheerd door netwerkcontroller
- NCUsername - Gebruikersnaam van netwerkcontrolleraccount
- ProductKey - productcode voor VM's met SDN-infrastructuur
- SwitchName : alleen vereist als er meer dan één virtuele switch bestaat op de Hyper-V-hosts
- VMMemory : geheugen (in GB) toegewezen aan infrastructuur-VM's. De standaardwaarde is 4 GB
- VMProcessorCount : het aantal processors dat is toegewezen aan infrastructuur-VM's. De standaardwaarde is 8
- Landinstelling : indien niet opgegeven, wordt de landinstelling van de implementatiecomputer gebruikt
- Tijdzone: indien niet opgegeven, wordt de lokale tijdzone van de implementatiecomputer gebruikt
Wachtwoorden kunnen optioneel worden opgenomen als versleutelde beveiligde tekenreeksen met tekstcodering. Wachtwoorden worden alleen gebruikt als SDN Express-scripts worden uitgevoerd op dezelfde computer waarop wachtwoorden zijn versleuteld, anders wordt om deze wachtwoorden gevraagd:
- DomainJoinSecurePassword - voor domeinaccount
- LocalAdminSecurePassword - voor lokaal beheerdersaccount
- NCSecurePassword - voor netwerkcontrolleraccount
Sectie Netwerkcontroller-VM
Er worden minimaal drie netwerkcontroller-VM's aanbevolen voor SDN.
De NCs = @()
sectie wordt gebruikt voor de vm's van de netwerkcontroller. Zorg ervoor dat het MAC-adres van elke NC-VM zich buiten het SDNMACPool
bereik bevindt dat wordt vermeld in de algemene instellingen.
- Computernaam - naam van NC-VM
- HostName : hostnaam van de server waarop de NC-VM zich bevindt
- ManagementIP - IP-adres van beheernetwerk voor de NC-VM
- MACAddress - MAC-adres voor de NC-VM
Sectie Software Load Balancer Virtuele Machine
Minimaal twee software load balancer-VM's worden aanbevolen voor SDN.
De Muxes = @()
sectie wordt gebruikt voor de SLB-VM's. Zorg ervoor dat de MACAddress
en PAMACAddress
parameters van elke SLB-VM buiten het SDNMACPool
bereik vallen dat wordt vermeld in de algemene instellingen. Zorg ervoor dat u de PAIPAddress
parameter van buiten de PA-pool krijgt die is opgegeven in het configuratiebestand, maar een deel van het PASubnet dat is opgegeven in het configuratiebestand.
Laat deze sectie leeg (Muxes = @()
) als u het SLB-onderdeel niet implementeert:
- Computernaam - naam van SLB VM
- HostName : hostnaam van de server waar de SLB-VM zich bevindt
- ManagementIP - IP-adres van het beheernetwerk voor de SLB-VM
- MACAddress - MAC-adres voor de SLB-VM
- PAIPAddress - IP-adres van providernetwerk (PA) voor de SLB-VM
- PAMACAddress - IP-adres van het providernetwerk (PA) voor de SLB-VM
Sectie Gateway-VM
Minimaal twee gateway-VM's (één actief en één redundant) worden aanbevolen voor SDN.
De Gateways = @()
sectie wordt gebruikt voor de gateway-VM's. Zorg ervoor dat de MACAddress
parameter van elke gateway-VM zich buiten het SDNMACPool
bereik bevindt dat wordt vermeld in de algemene instellingen. De FrontEndMac
en BackendMac
moeten binnen het SDNMACPool
bereik liggen. Zorg ervoor dat u de FrontEndMac
en de BackendMac
parameters aan het einde van het SDNMACPool
bereik verkrijgt.
Laat deze sectie leeg (Gateways = @()
) als u het gatewayonderdeel niet implementeert:
- Computernaam - naam van gateway-VM
- HostName : hostnaam van de server waar de gateway-VM zich bevindt
- ManagementIP - IP-adres van het beheernetwerk voor de gateway-VM
- MACAddress - MAC-adres voor de gateway-VM
- FrontEndMac - Front-end MAC-adres van het providernetwerk voor de Gateway-VM
- BackEndMac - Mac-adres van providernetwerkback-end voor de gateway-VM
Aanvullende instellingen voor SLB en Gateway
De volgende aanvullende parameters worden gebruikt door SLB- en gateway-VM's. Laat deze waarden leeg als u geen SLB- of gateway-VM's implementeert:
- SDNASN - Autonome systeemnummer (ASN) die door SDN wordt gebruikt om te peeren met netwerkswitches
- RouterASN - Gateway router ASN
- RouterIPAddress - IP-adres van gatewayrouter
- PrivateVIPSubnet - VIRTUEEL IP-adres (VIP) voor het privésubnet
- PublicVIPSubnet - virtueel IP-adres voor het openbare subnet
De volgende aanvullende parameters worden alleen gebruikt door gateway-VM's. Laat deze waarden leeg als u geen gateway-VM's implementeert:
PoolName - poolnaam die wordt gebruikt door alle gateway-VM's
GRESubnet - VIP-subnet voor GRE (als u GRE-verbindingen gebruikt)
Capaciteit - capaciteit in Kbps voor elke gateway-VM in de pool
RedundantCount : het aantal gateways in de redundante modus. De standaardwaarde is 1. Redundante gateways hebben geen actieve verbindingen. Zodra een actieve gateway uitvalt, worden de verbindingen van die gateway verplaatst naar de redundante gateway en wordt de redundante gateway actief.
Notitie
Als u een waarde voor RedundantCount invult, moet u ervoor zorgen dat het totale aantal gateway-VM's ten minste één meer is dan redundantcount. RedundantCount is standaard 1, dus u moet ten minste twee gateway-VM's hebben om ervoor te zorgen dat er ten minste 1 actieve gateway is om gatewayverbindingen te hosten.
Instellingen voor tenant-overlaynetwerken
De volgende parameters worden gebruikt als u gevirtualiseerde overlaynetwerken voor tenants implementeert en beheert. Als u netwerkcontroller gebruikt om in plaats daarvan traditionele VLAN-netwerken te beheren, kunnen deze waarden leeg blijven.
- PASubnet - subnet voor het netwerk voor aanbiederadressen (PA)
- PAVLANID - VLAN-id voor het PA-netwerk
- PAGateway - IP-adres voor de PA-netwerkgateway
- PAPoolStart - begin-IP-adres voor de PA-netwerkgroep
- PAPoolEnd - eind-IP-adres voor de PA-netwerkgroep
Hier ziet u hoe het logische netwerk van hyper-V-netwerkvirtualisatie (HNV) Provider IP-adressen toewijst. Gebruik deze optie om uw adresruimte voor het HNV Provider-netwerk te plannen.
- Wijst twee IP-adressen toe aan elke fysieke server
- Wijst één IP-adres toe aan elke SLB MUX-VM
- Wijst één IP-adres toe aan elke gateway-VM
Het implementatiescript uitvoeren
Met het SDN Express-script wordt uw opgegeven SDN-infrastructuur geïmplementeerd. Wanneer het script is voltooid, is uw SDN-infrastructuur gereed om te worden gebruikt voor VM-workloadimplementaties.
Controleer het
README.md
bestand voor recente informatie over hoe u het implementatiescript kunt uitvoeren.Voer de volgende opdracht uit vanuit een gebruikersaccount met beheerdersreferenties voor de clusterhostservers:
.\SDNExpress.ps1 -ConfigurationDataFile “Traditional VLAN networks.psd1” -DomainJoinCredential $cred -NCCredential $cred -LocalAdminCredential $cred -Verbose
Nadat de NC-VM's zijn gemaakt, configureert u dynamische DNS-updates voor de naam van het netwerkcontrollercluster op de DNS-server. Zie Dynamische DNS-updates voor meer informatie.
Voorbeeldbestanden voor configuratie
De volgende configuratievoorbeeldbestanden voor het implementeren van SDN zijn beschikbaar in de GitHub-opslagplaats van Microsoft SDN:
Traditionele VLAN networks.psd1 - Netwerkcontroller implementeren voor het beheren van netwerkbeleid zoals microsegmentatie en Quality of Service op traditionele VLAN-netwerken.
Gevirtualiseerde netwerken.psd1 - De netwerkcontroller implementeren voor het beheren van virtuele netwerken en netwerkbeleid op virtuele netwerken.
Software Load Balancer.psd1 - Netwerkcontroller en Software Load Balancer implementeren voor taakverdeling op virtuele netwerken.
SDN Gateways.psd1 - Netwerkcontroller, Software Load Balancer en Gateway implementeren voor connectiviteit met externe netwerken.
SDN-netwerkcontroller opnieuw implementeren
Als de implementatie van de netwerkcontroller mislukt of als u deze opnieuw wilt implementeren, gaat u als volgt te werk:
Verwijder alle netwerkcontroller-VM's en de bijbehorende VHD's van alle computers.
Verwijder de volgende registersleutels van alle computers door deze opdracht uit te voeren:
Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name Connections Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name NetworkControllerNodeNames
Nadat u de registersleutel hebt verwijderd, verwijdert u het cluster uit het beheer van het Windows-beheercentrum en voegt u het vervolgens weer toe.
Notitie
Als u deze stap niet uitvoert, ziet u mogelijk niet de wizard SDN-implementatie in het Windows-beheercentrum.
(Aanvullende stap alleen als u van plan bent om de netwerkcontroller te verwijderen en deze niet opnieuw te implementeren) Voer de volgende cmdlet uit op alle machines in uw lokale Azure-exemplaar en sla de laatste stap over.
Disable-VMSwitchExtension -VMSwitchName "<Compute vmswitch name>" -Name "Microsoft Azure VFP Switch Extension"
Voer de implementatiewizard opnieuw uit.