Verwalten von Port-ACLs in VMM

Wichtig

Diese Version von Virtual Machine Manager (VMM) hat das Supportende erreicht. Sie sollten ein Upgrade auf VMM 2019 durchführen.

In System Center – Virtual Machine Manager (VMM) können Sie die Port-Zugriffssteuerungslisten (ACLs) für Hyper-V zentral verwalten. Port-ACLs können jeweils für ein vom Netzwerkcontroller verwaltetes Fabric und für Netzwerke konfiguriert werden, die nicht vom Netzwerkcontroller verwaltet werden.

  • Eine Port-ACL ist ein Satz von Regeln, die Datenverkehr auf der Portebene 2 filtern. Eine Port-ACL in VMM filtert den Zugriff auf ein bestimmtes VMM-Objekt. Eine Netzwerkobjekt kann nicht mehr als einen Port haben, den die ACL angefügt hat.
  • Eine ACL enthält Regeln und kann an eine beliebige Anzahl von Netzwerkobjekten angefügt werden. Sie können eine ACL ohne Regeln erstellen und dann die Regeln zu einem späteren Zeitpunkt hinzufügen. Jede ACL-Regel entspricht genau einer Port-ACL.
  • Wenn eine ACL über mehrere Regeln verfügt, werden sie basierend auf die Priorität angewendet. Wenn eine Regel einem Kriterium entspricht und angewendet wird, werden keinen anderen Regeln verarbeitet.
  • Eine globale Einstellungsport-ACL wird für alle virtuellen VM-Netzwerkadapter in einer Infrastruktur angewendet. Für die globalen Einstellungen ist kein eigener Objekttyp festgelegt. Somit ist die Port-ACL der globalen Einstellungen dem VMM-Verwaltungsserver zugeordnet.
  • Die Einstellungen für Port-ACLs können in VMM über PowerShell-Cmdlets festgelegt werden und können nicht in der VMM-Konsole konfiguriert werden.
  • Port-ACLs können Folgendem zugewiesen werden:
    • Virtuelle Subnetze und Adapter in einer Netzwerkcontroller-Bereitstellung.
    • Virtuelle Subnetze, Netzwerkadapter, VM-Netzwerken und dem VMM-Verwaltungsserver in Netzwerken, die nicht vom Netzwerkcontroller verwaltet werden.

Vorbereitung

  • Wenn eine ACL für Objekte angewendet wird, die vom Netzwerkcontroller verwaltet werden, müssen Sie das Flag ManagedByNC verwenden und es auf TRUE festlegen. Wenn eine ACL nicht auf TRUE festgelegt wird, gilt Sie nur für Netzwerkobjekte, die nicht vom Netzwerkcontroller verwaltet werden.
  • ACL-Typen sind nicht austauschbar. Sie können keine ACL auf vom Netzwerkcontroller verwaltete Objekte anwenden, bei der ManagedByNC auf FALSE festgelegt wurde.
  • Der Hauptunterschied zwischen diesen beiden Arten von ACLs ist, dass Sie jeden Netzwerkadapter korrigieren müssen, nachdem Sie ACLs auf Objekte angewendet haben, die nicht vom Netzwerkcontroller verwaltet werden.
  • Es gibt auch ein Unterschied in den Prioritätsbereichen:
    • Hyper-V-Port-ACLs (nicht vom Netzwerkcontroller verwaltet) : 1–65535.
    • SDN-Port-ACLs (vom Netzwerkcontroller verwaltet) : 1–64500
  • Sie benötigen vollständige VMM Administratorberechtigungen, um eine Port-ACL zu globalen Einstellungen hinzuzufügen. Um die ACL zu VMM-Objekten (VM-Netzwerke, Subnetze, virtuelle Netzwerkadapter) hinzuzufügen, müssen Sie ein VMM-Administrator oder ein Self-Service-Benutzer sein.

Nicht unterstützte Szenarien

Hier ist eine Liste der nicht unterstützten Szenarios:

  • Verwalten einzelner Regeln einzelner Instanzen, wenn die ACL von mehreren Instanzen verwendet wird. Alle Regeln werden zentral in der ihnen übergeordneten ACL verwaltet und gelten für alle Objekte, denen die ACL zugeordnet ist.
  • Hinzufügen mehrerer ACLs zu einer Entität.
  • Anwenden von Port-ACLs auf die virtuellen Netzwerkadapter der übergeordneten Hyper-V-Partition (Verwaltungsbetriebssystem).
  • Erstellen von Port-ACL-Regeln in VMM mit Protokollen auf IP-Ebene (mit Ausnahme von TCP und UDP). Jedoch werden andere Protokolle nach wie vor nativ durch Hyper-V unterstützt.
  • Anwenden von Port-ACLs auf logische Netzwerke, Netzwerkstandorte (logische Netzwerkdefinitionen), Subnetz-vLANs und andere grundlegende VMM-Netzwerkelemente, die als nicht besonders unterstützt genannt werden.

Bereitstellungsschritte

Verwenden Sie die VMM-PowerShell-Schnittstelle, um Folgendes zu tun:

  1. Definieren von Port-ACLs und -Regeln
    • Die Regeln werden auf die Ports virtueller Switches auf Hyper-V-Servern als „erweiterte Port-ACLs“ (VMNetworkAdapterExtendedAcl) angewendet. Das bedeutet, dass sie nur für Hosts gelten können, die Windows Server 2012 R2 oder höher ausführen, da VMM keine Lecacy-Hyper-V-Port-ACLs (VMNetworkAdapterAcl) für frühere Versionen erstellt.
    • Für das TCP-Protokoll sind alle in VMM definierten Port-ACL-Regeln statusbehaftet. Sie können keine statusfreie TCP-ACL-Regeln erstellen.
  2. Zuordnen einer Port-ACL zu den globalen Einstellungen. Dies gilt für die ACL für alle virtuellen VM-Netzwerkadapter.
  3. Zuordnen der Port-ACLs zu VM-Netzwerken, VM-Subnetzen oder virtuellen VM-Netzwerkadaptern.
  4. Verwalten von Port-ACL-Regeln.

Erstellen von Port-ACLs

  1. Öffnen Sie PowerShell in VMM.

  2. Erstellen Sie eine Port-ACL mit dem Cmdlet New-SCPortACL.

    New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
    

Parameter

Parameter Details
Name, Beschreibung Name und Beschreibung der Port-ACL
JobVariable Speichert den Fortschritt des Auftrags
ManagedByNC Gibt an, ob Objekte vom Netzwerkcontroller verwaltet werden
OnBehalfOfUser/OnBehalfOfRole Ausführen des Auftrags mit Benutzername oder Rolle
Besitzer Gibt den Besitzer eines VMM-Objekts in Form eines gültigen Domänenbenutzerkontos an Beispiel: Contoso\PattiFuller oder PattiFuller@Contoso
ProTipID ID von ProTip, die die Aktion ausgelöst hat
RunAsychronously Gibt an, ob der Auftrag asynchron ausgeführt wird
UserRole Gibt die Benutzerrolle an
VMMServer Gibt den VMM-Server an
CommonParameters Erfahren Sie mehr

Beispiele

Erstellen Sie eine Port-ACL für Objekte, die vom „DemoACLManagedByNC“-Netzwerkcontroller verwaltet werden:

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Erstellen Sie eine Port-ACL für Objekte, die nicht vom Netzwerkcontroller „DemPortACL“ verwaltet werden:

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

Definieren von Port-ACL-Regeln für eine Port-ACL

  1. Öffnen Sie PowerShell in VMM.

  2. Erstellen Sie eine oder mehrere Regeln mit dem Cmdlet New-SCPortACLRule.

    New-SCPortACLrule -PortACL <PortACL> -Name <string> [-Description <string>] -Type <Inbound | Outbound> -Action <Allow | Deny> -Priority <uint16> -Protocol <Tcp | Udp | Any> [-LocalAddressPrefix <string: IPAddress | IPSubnet>] [-LocalPortRange <string:X|X-Y|Any>] [-RemoteAddressPrefix <string: IPAddress | IPSubnet>] [-RemotePortRange <string:X|X-Y|Any>]
    

Parameter

Parameter Details
Name, Beschreibung Regelname und Beschreibung
Typ Gibt die Richtung des Datenverkehrs an, für die die ACL angewendet wird (eingehend oder ausgehend)
Aktion Gibt an, ob die ACL Datenverkehr zulässt oder blockiert (Zulassen oder Verweigern)
LocalAddressPrefix Gibt die Quell-IP-Adresse oder das Subnetz an, die bzw. das zur Identifizierung von Datenverkehr verwendet wird, der gefiltert werden muss.
LocalPortRange Gibt den Quellportbereich an, der verwendet wird, um Datenverkehr zu identifizieren
RemoteAddressPrefix Hiermit wird die Ziel-IP-Adresse oder das Subnetz angegeben, die bzw. das zum Identifizieren von Datenverkehr für das Filtern verwendet wird.
RemotePortRange Gibt den Zielportbereich an, der zum Identifizieren von Datenverkehr verwendet wird
Protokoll Gibt das Protokoll an, für das die Regel angewendet wird
Priorität Geben Sie die Priorität der Regel in der Port-ACL an. Regeln werden nach Reihenfolge angewendet. Legen Sie eine Priorität zwischen 1 und 65535 fest, wobei die niedrigste Nummer höchsten Priorität hat. Regeln von Port-ACLs für Objekte, die von Netzwerkcontrollern verwaltet werden, müssen gleich oder größer 100 festgelegt werden. Der Netzwerkcontroller unterstützt keine Priorität unter 100.

Beispiele

Erstellen Sie eine Port-ACL, und speichern Sie das Objekt in „$portACL“:

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

Erstellen Sie eine Port-ACL-Regel, um den RDP-Zugriff von einem Remotesubnetz aus zuzulassen:

PS: C:\> New-SCPortACLRule -Name "AllowRDPAccess" -PortACL $portACL -Description "Allow RDP Rule from a subnet" -Action Allow -Type Inbound -Priority 110 -Protocol Tcp -LocalPortRange 3389 -RemoteAddressPrefix 10.184.20.0/24

Ändern Sie die Priorität einer ACL-Regel:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

Der erste Befehl ruft die Port-ACL-Regel „AllowRDPAccess“ auf. Der zweite Befehl ändert die Priorität der Regel in 220.

Ändern Sie die Port-ACL-Regel für den Zieladressbereich und ein Protokoll für eine Regel:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

Der erste Befehl ruft die Regel „AllowRDPAccess“ ab. Der zweite ändert das Protokoll zu UDP und legt das Ziel auf das Subnetz 172.185.21.0/24 fest

Anfügen und Trennen von Port-ACLs

Eine Port-ACL kann an globale Einstellungen, VM-Netzwerke, VM-Subnetze und virtuelle Netzwerkadapter hinzugefügt werden. Eine Port-ACL, die an globale Einstellungen hinzugefügt ist, gilt standardmäßig für alle virtuellen VM-Netzwerkadapter.

  1. Öffnen Sie PowerShell in VMM.

  2. Fügen Sie eine Port-ACL mithilfe des Set-SCVMMServer-Cmdlet an.

    Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
    

Parameter

Parameter Details
VMM-Server Der Name des VMM-Servers, auf dem die Port-ACL angewendet wird
PortACL Fügt optional die angegebene Port-ACL an globale Einstellungen an

Beispiele

Ordnen Sie eine ACL den globalen Einstellungen hinzu:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl

Trennen Sie eine ACL von den globalen Einstellungen:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

Fügen Sie eine ACL einem VM-Netzwerk während der Erstellung hinzu:

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Fügen Sie eine ACL einem vorhandenen VM-Netzwerk hinzu:

Set-SCVMNetwork -PortACL $acl`

Fügen Sie eine ACL einem VM-Subnetz während der Erstellung hinzu:

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Fügen Sie eine ACL einem vorhandenen VM-Subnetz hinzu:

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

Abrufen und Anzeigen von Port-ACLs und Regeln

  1. Öffnen Sie PowerShell in VMM.

  2. Führen Sie das Get-SCPortACL-Cmdlet zum Abrufen und Anzeigen einer Ports-ACL aus:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Führen Sie Get-SCPortACLRule aus, um eine Regel abzurufen und anzuzeigen:

    Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    

Parameter

Parameter Details
Keine Parameter Ruft alle ACLs auf
Name/ID Nach Name oder GUID abrufen
OnBehalfOfUser/OnBehalfOfUserRole Ohne Benutzername oder Rolle ausführen
VMMServer ACLs auf bestimmten VMM-Servern abrufen
CommonParameters Erfahren Sie mehr

Beispiele

Rufen Sie eine bestimmte ACL ab:

    PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"

Rufen Sie Regeln für eine bestimmte ACL auf:

    PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"

Rufen Sie alle Regeln für die ACL ab:

    PS: C:> Get-SCPortACLRule -PortACL $portACL

Ändern von Port-ACLs und Regeln

  1. Öffnen Sie PowerShell in VMM.

  2. Führen Sie das Cmdlet Set-SCPortACL aus, um die Port-ACL zu ändern:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Führen Sie Remove-SCPortACL aus, um eine ACL zu entfernen:

    Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    Parameter

Parameter Details
Name/Beschreibung Name und Beschreibung der Port-ACL
JobVariable Speichert den Fortschritt des Auftrags
OnBehalfOfUser/OnBehalfOfUserRole Mit Benutzernamen oder Rolle ausführen
ProTipID ID von ProTip, die die Aktion ausgelöst hat
RunAsynchronously Gibt an, ob der Auftrag asynchron ausgeführt wird
Bestätigen Dazu werden Sie vor der Ausführung des Auftrags aufgefordert
WhatIf Zeigt, was geschieht, wenn der Befehl nicht ausgeführt wird

Beispiele

Legen Sie eine ACL-Beschreibung fest:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

Das erste Cmdlet ruft die ACL ab, das zweite legt die Beschreibung auf der ACL fest.

Entfernen Sie eine ACL:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL

Das erste Cmdlet ruft die ACL ab, das zweite entfernt sie.