Bereitstellen einer Software-Defined Networking-Infrastruktur mithilfe von Skripts

Gilt für Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI (Version 21H2 und 20H2)

In diesem Thema wird beschrieben, wie Sie eine Microsoft Software Defined Network (SDN)-Infrastruktur mithilfe von Skripten bereitstellen. Die Infrastruktur umfasst einen hochverfügbaren (High Available, HA) Netzwerkcontroller, einen HA Software-Lastenausgleich (Software Load Balancer, SLB)/MUX, virtuelle Netzwerke und zugehörige Zugriffssteuerungslisten (Access Control Lists, ACLs). Zusätzlich stellt ein weiteres Skript einen Mandanten-Workload für Sie bereit, um Ihre SDN-Infrastruktur zu validieren.

Wenn Ihre Mandanten-Workloads außerhalb ihrer virtuellen Netzwerke kommunizieren sollen, können Sie SLB-NAT-Regeln, Site-to-Site-Gateway-Tunnel oder Layer-3-Weiterleitung einrichten, um zwischen virtuellen und physischen Workloads weiterzuleiten.

Darüber hinaus können Sie mit dem Manager für virtuelle Computer (Virtual Machine Manager, VMM) auch eine SDN-Infrastruktur bereitstellen. Weitere Informationen finden Sie unter Einrichten einer SDN-Infrastruktur (Software Defined Network) in der VMM-Struktur.

Vor der Bereitstellung

Wichtig

Vor der Bereitstellung müssen Sie Ihre Hosts und Ihre physische Netzwerkinfrastruktur planen und konfigurieren. Weitere Informationen finden Sie unter Planen einer softwaredefinierten Netzwerkinfrastruktur.

Auf allen Hyper-V-Hosts muss Windows Server 2019 oder 2016 installiert sein.

Bereitstellungsschritte

Konfigurieren Sie zunächst den virtuellen Hyper-V-Switch und die IP-Adresszuweisung des Hyper-V-Hosts (physische Server). Es kann jeder Speichertyp, ob geteilt oder lokal, verwendet werden, der mit Hyper-V kompatibel ist.

Installieren des Host-Netzwerks

  1. Installieren Sie die neuesten Netzwerktreiber, die für Ihre NIC-Hardware verfügbar sind.

  2. Installieren Sie die Hyper-V-Rolle auf allen Hosts (Weitere Informationen finden Sie unter Erste Schritte mit Hyper-V auf Windows Server 2016.

    Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools -Restart
    
  3. Erstellen Sie den virtuellen Hyper-V-Switch.

    Verwenden Sie denselben Switch-Namen für alle Hosts, z. B. sdnSwitch. Konfigurieren Sie mindestens einen Netzwerkadapter, oder konfigurieren Sie bei Verwendung von SET mindestens zwei Netzwerkadapter. Die maximale Verteilung der eingehenden Daten erfolgt bei Verwendung von zwei NICs.

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

    Tipp

    Sie können die Schritte 4 und 5 überspringen, wenn Sie über separate Verwaltungs-NICs verfügen.

  4. Lesen Sie das Thema Planung (Planen einer softwaredefinierten Netzwerkinfrastruktur) und arbeiten Sie mit Ihrem Netzwerkadministrator zusammen, um die VLAN-ID des Verwaltungs-VLANs zu erhalten. Fügen Sie die Verwaltungs-vNIC des neu erstellten virtuellen Switches an das Verwaltungs-VLAN an. Dieser Schritt kann weggelassen werden, wenn Ihre Umgebung keine VLAN-Tags verwendet.

    Set-VMNetworkAdapterIsolation -ManagementOS -IsolationMode Vlan -DefaultIsolationID <Management VLAN> -AllowUntaggedTraffic $True
    
  5. Lesen Sie das Planungsthema (Planen einer softwaredefinierte Netzwerkinfrastruktur), und arbeiten Sie mit Ihrem Netzwerkadministrator zusammen, um entweder DHCP- oder statische IP-Zuweisungen zu verwenden, damit der Verwaltungs-vNIC des neu erstellten vSwitch eine IP-Adresse zugewiesen werden kann. Das folgende Beispiel zeigt, wie Sie eine statische IP-Adresse erstellen und sie der Verwaltungs-vNIC des vSwitch zuweisen:

    New-NetIPAddress -InterfaceAlias "vEthernet (<switch name>)" -IPAddress <IP> -DefaultGateway <Gateway IP> -AddressFamily IPv4 -PrefixLength <Length of Subnet Mask - for example: 24>
    
  6. [Optional] Stellen Sie einen virtuellen Computer bereit, um Active Directory Domain Services (Installieren von Active Directory Domain Services (Ebene 100) und einen DNS-Server zu hosten.

    a. Verbinden Sie den virtuellen Active Directory-/DNS-Server-Computer mit dem Verwaltungs-VLAN:

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

    b. Installieren von Active Directory Domain Services und DNS.

    Hinweis

    Der Netzwerkcontroller unterstützt Authentifizierungszertifikate sowohl für Kerberos als auch für X.509. In diesem Leitfaden werden beide Authentifizierungsmechanismen für unterschiedliche Zwecke verwendet (obwohl nur einer erforderlich ist).

  7. Verknüpfen Sie alle Hyper-V-Hosts mit der Domäne. Stellen Sie sicher, dass der DNS-Servereintrag für den Netzwerkadapter, dessen IP-Adresse dem Verwaltungsnetzwerk zugewiesen ist, auf einen DNS-Server verweist, der den Domänennamen auflösen kann.

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

    a. Klicken Sie mit der rechten Maustaste auf Start, dann auf System und dann auf Einstellungen ändern. b. Klicken Sie auf Ändern. c. Klicken Sie auf Domäne und geben Sie den Domänennamen an. """" d. Klicken Sie auf OK. Geben Sie den Benutzernamen und das Kennwort ein, wenn Sie dazu aufgefordert werden. f. Starten Sie den Server neu.

Überprüfen

Führen Sie die folgenden Schritte aus, um zu überprüfen, ob das Host-Netzwerk ordnungsgemäß eingerichtet ist.

  1. Stellen Sie sicher, dass der VM-Switch erfolgreich erstellt wurde:

    Get-VMSwitch "<switch name>"
    
  2. Überprüfen Sie, ob die Verwaltungs-vNIC auf dem VM-Switch mit dem Verwaltungs-VLAN verbunden ist:

    Hinweis

    Nur relevant, wenn Datenverkehr der Verwaltung und des Mandanten dieselbe NIC nutzen.

    Get-VMNetworkAdapterIsolation -ManagementOS
    
  3. Überprüfen Sie alle Hyper-V-Hosts und externen Verwaltungsressourcen, z. B. DNS-Server.

    Stellen Sie sicher, dass sie über ihre Management-IP-Adresse und/oder ihren vollqualifizierten Domänennamen (FQDN) per Ping erreichbar sind.

    ping <Hyper-V Host IP>
    ping <Hyper-V Host FQDN>
    
  4. Führen Sie den folgenden Befehl auf dem Bereitstellungshost aus und geben Sie den FQDN jedes Hyper-V-Hosts an, um sicherzustellen, dass die verwendeten Kerberos-Anmeldeinformationen den Zugriff auf alle Server ermöglichen.

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

Ausführen der SDN Express-Skripts

  1. Wechseln Sie zum Microsoft SDN GitHub-Repository für die Installationsdateien.

  2. Laden Sie die Dateien aus dem Repository auf Ihren Bereitstellungscomputer herunter. Klicken Sie auf Klonen oder Herunterladen und dann auf ZIP-Datei herunterladen.

    Hinweis

    Auf dem Bereitstellungscomputer muss Windows Server 2016 oder höher ausgeführt werden.

  3. Entpacken Sie die ZIP-Datei und kopieren Sie den Ordner SDNExpress in den Ordner des Bereitstellungscomputers C:\.

  4. Geben Sie den Ordner C:\SDNExpress als „SDNExpress“ mit der Berechtigung Jeder zum Lesen/Schreiben frei.

  5. Navigieren Sie zum Ordner C:\SDNExpress.

    Folgende Ordner werden dann angezeigt:

    Ordnername Beschreibung
    AgentConf Enthält neue Kopien von OVSDB-Schemas, die vom SDN-Host-Agent auf jedem Windows Server 2016 Hyper-V-Host zum Programmieren der Netzwerkrichtlinie verwendet werden.
    Zertifikate Temporärer freigegebener Speicherort für die NC-Zertifikatdatei.
    Bilder Leer, platzieren Sie ihr Windows Server 2016 vhdx-Bild hier
    Tools Hilfsprogramme für die Problembehandlung und das Debuggen. Kopiert auf die Hosts und virtuellen Computer. Es wird empfohlen, Network Monitor oder Wireshark hier zu platzieren, damit sie bei Bedarf verfügbar sind.
    Skripts Bereitstellungsskripts.

    - SDNExpress.ps1
    Implementiert und konfiguriert die Fabric, einschließlich der Netzwerkcontroller der virtuellen Computer, der SLB-Mux der virtuellen Computer, der Gateway-Pools und den HNV-Gateway der virtuellen Computer, die den Pools entsprechen.
    - FabricConfig.psd1
    Eine Vorlage für eine Konfigurationsdatei für das SDNExpress-Skript. Diese passen Sie für Ihre Umgebung an.
    - SDNExpressTenant.ps1
    Setzt einen Beispiel-Mandanten-Workload in einem virtuellen Netzwerk mit einem lastverteilten VIP ein.
    Stellt außerdem eine oder mehrere Netzwerkverbindungen (IPSec S2S VPN, GRE, L3) auf den Edge-Gateways des Service Providers bereit, die mit dem zuvor erstellten Mandanten-Workload verbunden sind. Die IPSec- und GRE-Gateways sind für die Verbindung über die entsprechende VIP-IP-Adresse verfügbar und das L3-Weiterleitungs-Gateway über den entsprechenden Adresspool.
    Dieses Skript kann auch zum Löschen der entsprechenden Konfiguration mit einer Rückgängig-Option verwendet werden.
    - TenantConfig.psd1
    Eine Vorlagenkonfigurationsdatei für die Arbeitslast des Mandanten und die Konfiguration des S2S-Gateways.
    - SDNExpressUndo.ps1
    Bereinigt die Fabric-Umgebung und setzt sie auf einen Startzustand zurück.
    - SDNExpressEnterpriseExample.ps1
    Stellt eine oder mehrere Unternehmensumgebungen mit einem Remote Access Gateway und (optional) einem entsprechenden virtuellen Computer des Unternehmens pro Standort bereit. Die IPSec- oder GRE-Gateways des Unternehmens verbinden sich mit der entsprechenden VIP-IP-Adresse des Service Provider-Gateways, um die S2S-Tunnel aufzubauen. Das L3-Weiterleitungs-Gateway stellt die Verbindung über die entsprechende Peer-IP-Adresse her.
    Dieses Skript kann auch zum Löschen der entsprechenden Konfiguration mit einer Rückgängig-Option verwendet werden.
    - EnterpriseConfig.psd1
    Eine Vorlagenkonfigurationsdatei für das Enterprise Site-to-Site-Gateway und die Client-VM-Konfiguration.

    TenantApps Dateien, die für die Bereitstellung von Beispiel-Mandanten-Workloads verwendet werden.
  6. Vergewissern Sie sich, dass sich die Windows Server 2016 VHDX-Datei im Ordner Images befindet.

  7. Passen Sie die Datei SDNExpress\scripts\FabricConfig.psd1 an, indem Sie die << Replace-Tags >> durch spezifische Werte ersetzen, die zu Ihrer Lab-Infrastruktur passen, einschließlich Hostnamen, Domänennamen, Benutzernamen und Kennwörtern sowie Netzwerkinformationen für die unter dem Thema Netzwerkplanung aufgeführten Netzwerke.

  8. Erstellen Sie einen Host A-Eintrag im DNS für den NetworkControllerRestName (FQDN) und NetworkControllerRestIP.

  9. Führen Sie das Skript als Benutzer mit Domänenadministrator-Zugangsdaten aus:

    SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose
    
  10. Führen Sie den folgenden Befehl aus, um alle Vorgänge rückgängig zu machen:

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

Überprüfen

Vorausgesetzt, dass das SDN Express-Skript fehlerfrei ausgeführt wurde, können Sie den folgenden Schritt ausführen, um sicherzustellen, dass die Fabric-Ressourcen korrekt bereitgestellt wurden und für die Bereitstellung von Mandanten verfügbar sind.

Verwenden Sie Diagnosetools, um sicherzustellen, dass keine Fehler für Fabric-Ressourcen im Netzwerkcontroller vorliegen.

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

Implementieren Sie einen Beispiel-Mandanten-Workload mit dem Software Load Balancer

Nachdem Fabric-Ressourcen bereitgestellt wurden, können Sie die End-to-End-Bereitstellung ihrer SDN-Bereitstellung überprüfen, indem Sie eine Beispiel-Mandanten-Workload bereitstellen. Dieser Mandanten-Workload besteht aus zwei virtuellen Subnetzen (Webebene und Datenbankebene), die über Access Control List-Regeln (ACL) mithilfe der verteilten SDN-Firewall geschützt sind. Auf das virtuelle Subnetz der Webebene kann über die SLB/MUX-Adresse über eine virtuelle IP-Adresse (VIP) zugegriffen werden. Das Skript richtet automatisch zwei virtuelle Computer der Webebene und einen virtuellen Computer der Datenbankebene ein und verbindet diese mit den virtuellen Subnetzen.

  1. Passen Sie die Datei SDNExpress\scripts\TenantConfig.psd1 an, indem Sie die << Replace-Tags >> durch bestimmte Werte ersetzen (zum Beispiel: VHD-Image-Name, Netzwerkcontroller-REST-Name, vSwitch-Name usw. wie zuvor in der Datei FabricConfig.psd1 definiert)

  2. Führen Sie das Skript aus. Zum Beispiel:

    SDNExpress\scripts\SDNExpressTenant.ps1 -ConfigurationDataFile TenantConfig.psd1 -Verbose
    
  3. Möchten Sie die Konfiguration rückgängig machen, führen Sie dasselbe Skript mit dem Parameter Undo (Rückgängig machen) aus. Zum Beispiel:

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

Überprüfen

Gehen Sie wie folgt vor, um zu überprüfen, ob die Bereitstellung des Mandanten erfolgreich war:

  1. Melden Sie sich beim virtuellen Computer der Datenbankebene an und versuchen Sie, die IP-Adresse einer der virtuellen Computer der Webebene anzupingen (stellen Sie sicher, dass die Windows Firewall auf virtuellen Computern der Webebene deaktiviert ist).

  2. Überprüfen Sie die Netzwerkcontroller-Mandantenressourcen auf eventuelle Fehler. Führen Sie den folgenden Befehl von einem beliebigen Hyper-V-Host mit Layer-3-Verbindung zum Netzwerkcontroller aus:

    Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller REST Name>
    
  3. Führen Sie den folgenden Befehl von einem beliebigen Hyper-V-Host aus, um zu überprüfen, ob der Load Balancer korrekt funktioniert:

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

    wobei <VIP IP address> die VIP-IP-Adresse der Webebene ist, die Sie in der Datei TenantConfig.psd1 konfiguriert haben.

    Tipp

    Suchen Sie die Variable VIPIP in TenantConfig.psd1.

    Führen Sie diesen Vorgang mehrmals aus, um zu sehen, wie der Load Balancer zwischen den verfügbaren DIPs wechselt. Sie können dieses Verhalten auch mithilfe eines Webbrowsers beobachten. Navigieren Sie zu <VIP IP address>/unique.htm. Schließen Sie den Browser, öffnen Sie eine neue Seite und suchen Sie erneut. Sie sehen abwechselnd die blaue und die grüne Seite, es sei denn, der Browser speichert die Seite im Cache, bevor der Cache abläuft.