Übersicht über hyper-V Extensible Switch Ports

Jede Netzwerkverbindung mit dem erweiterbaren Hyper-V-Switch wird durch einen Port dargestellt. Die erweiterbare Switchschnittstelle erstellt und konfiguriert einen Port, bevor eine Netzwerkverbindung hergestellt wird. Nachdem die Netzwerkverbindung abgerissen wurde, kann die Schnittstelle den Port löschen oder für eine andere Netzwerkverbindung wiederverwenden.

Jeder untergeordneten Hyper-V-Partition, die mit einer Netzwerkschnittstelle konfiguriert ist, wird ein Port auf dem erweiterbaren Switch zugewiesen. Wenn eine untergeordnete Hyper-V-Partition gestartet wird, erstellt die erweiterbare Switchschnittstelle einen Port, bevor der VM-Netzwerkadapter im Gastbetriebssystem verfügbar gemacht wird. Nachdem der VM-Netzwerkadapter verfügbar gemacht und initialisiert wurde, erstellt die erweiterbare Switchschnittstelle eine Netzwerkverbindung zwischen dem VM-Netzwerkadapter und dem erweiterbaren Switchport. Wenn die untergeordnete Partition beendet wird, löscht die erweiterbare Switchschnittstelle zunächst die Netzwerkverbindung und dann den erweiterbaren Switchport.

Wenn ein erweiterbarer Switchport erstellt wird, wird er mit einem eindeutigen Bezeichner und Namen konfiguriert. Nach der Erstellung kann der erweiterbare Switchport mit Richtlinien bereitgestellt werden, die verschiedene Attribute für die Verwaltung des Paketdatenverkehrs über den Port definieren. Beispielsweise können Standardportrichtlinien für VLAN-Attribute (Virtual LAN) und Zugriffsbeschränkungen für Portdatenverkehr definiert werden. Darüber hinaus können unabhängige Softwarehersteller (INDEPENDENT Software Vendors, ISVs) benutzerdefinierte Richtlinien definieren, mit denen einzelne Ports bereitgestellt werden können. Weitere Informationen finden Sie unter Portrichtlinien.

Erweiterbare Switchports bestehen aus den folgenden Typen:

Validierungsports
Überprüfungsports werden verwendet, um Porteinstellungen zu überprüfen und zu überprüfen. Diese Ports sind vorübergehend und werden unter bestimmten Bedingungen erstellt.

Wenn beispielsweise eine untergeordnete Hyper-V-Partition für den Netzwerkzugriff erstellt oder neu konfiguriert wird, erstellt die erweiterbare Switchschnittstelle einen Validierungsport. Die Schnittstelle verwendet diesen Port, um die Einstellungen für die Netzwerkverbindung mit dem Netzwerkadapter des virtuellen Computers (VM) der Partition zu überprüfen. Nach Abschluss der Überprüfung wird der Validierungsport gelöscht, und ein Betriebsport wird erstellt.

Weitere Informationen finden Sie unter Validierungsports.

Operative Ports
Betriebsports werden erstellt, um eine erweiterbare Switch-Netzwerkadapterverbindung zu hosten. Wenn ein betriebsbereiter Port erstellt wird, wird ihm ein Porttyp zugewiesen. Dieser Porttyp wird wirksam, nachdem der Port erstellt wurde und bevor er abgerissen wird. Für Ports, die untergeordneten Hyper-V-Partitionen zugewiesen sind, bleibt der Betriebsporttyp aktiv, während die Partition ausgeführt und betriebsbereit ist.

Weitere Informationen finden Sie unter Betriebsports.

Erweiterbare Switcherweiterungen werden über die folgenden OID-Anforderungen (Extensible Switch Object Identifier) über die Erstellung, Aktualisierung und Löschung von Ports benachrichtigt:

OID_SWITCH_PORT_CREATE
Der Protokollrand des erweiterbaren Switches gibt eine OID-Set-Anforderung von OID_SWITCH_PORT_CREATE aus, um erweiterbare Switcherweiterungen über die Erstellung eines erweiterbaren Switchports zu benachrichtigen.

Die Erweiterung kann ein Veto gegen die Erstellungsbenachrichtigung einwenden, indem STATUS_DATA_NOT_ACCEPTED für die OID-Anforderung zurückgegeben wird. Wenn eine Erweiterung beispielsweise keine Ressourcen zuordnen kann, um die konfigurierten Richtlinien für den Port zu erzwingen, legt die Erweiterung ein Veto gegen die Erstellungsbenachrichtigung ein.

Wenn die Erweiterung die Erstellungsbenachrichtigung akzeptiert, muss sie die OID-Anforderung über den erweiterbaren Switchtreiberstapel weiterleiten. Die Erweiterung überwacht den Abschluss status dieser OID-Anforderung, um zu bestimmen, ob die zugrundeliegenden Erweiterungen ein Veto für die Porterstellungsbenachrichtigung haben.

Erweiterungen können keine Pakete an den neu erstellten Port weiterleiten, bis eine Netzwerkverbindung hergestellt wird. Weitere Informationen zu diesem Vorgang finden Sie unter Hyper-V Extensible Switch-Netzwerkadapter.

OID_SWITCH_PORT_UPDATED
Der Protokollrand des erweiterbaren Switches gibt eine OID-Set-Anforderung von OID_SWITCH_PORT_UPDATED aus, um erweiterbare Switcherweiterungen zu benachrichtigen, dass die Parameter eines erweiterbaren Switchports aktualisiert werden. Die OID wird nur für Ports ausgestellt, die bereits erstellt wurden und noch nicht mit dem Teardown-/Löschvorgang begonnen haben. Derzeit kann nur das Feld PortFriendlyName nach der Erstellung aktualisiert werden.

Der Protokollrand des erweiterbaren Switches gibt diese OID-Anforderung aus, wenn die vorherige Netzwerkverbindung mit dem Port unterbrochen und alle OID-Anforderungen an den Port abgeschlossen wurden.

Hinweis Diese OID-Anforderung kann ausgegeben werden, wenn zuvor keine Netzwerkadapterverbindung an den Port hergestellt wurde.

Die Erweiterung muss diese OID-Set-Anforderung immer über den erweiterbaren Switchtreiberstapel weiterleiten. Bei der Erweiterung darf die Anforderung nicht fehlschlagen.

OID_SWITCH_PORT_TEARDOWN
Der Protokollrand des erweiterbaren Switches gibt eine OID-Set-Anforderung von OID_SWITCH_PORT_TEARDOWN aus, um erweiterbare Switcherweiterungen zu benachrichtigen, dass ein erweiterbarer Switchport gelöscht wird. Der Protokollrand des erweiterbaren Switches gibt diese OID-Anforderung aus, wenn die vorherige Netzwerkverbindung mit dem Port unterbrochen und alle OID-Anforderungen an den Port abgeschlossen wurden.

Hinweis Diese OID-Anforderung kann ausgegeben werden, wenn zuvor keine Netzwerkadapterverbindung an den Port hergestellt wurde.

Die Erweiterung muss diese OID-Set-Anforderung immer über den erweiterbaren Switchtreiberstapel weiterleiten. Bei der Erweiterung darf die Anforderung nicht fehlschlagen.

Nachdem die Erweiterung diese OID-Anforderung weitergeleitet hat, kann sie keine OID-Anforderungen mehr für den zu löschenden Port ausgeben.

OID_SWITCH_PORT_DELETE
Der Protokollrand des erweiterbaren Switches gibt eine OID-Set-Anforderung von OID_SWITCH_PORT_DELETE aus, um erweiterbare Switcherweiterungen zu benachrichtigen, dass ein erweiterbarer Switchport gelöscht wurde. Der Protokollrand des erweiterbaren Switches gibt diese OID-Anforderung aus, nachdem die OID_SWITCH_PORT_TEARDOWN - und OID-Anforderungen für den Port abgeschlossen wurden.

Die Erweiterung muss diese OID-Set-Anforderung immer über den erweiterbaren Switchtreiberstapel weiterleiten. Bei der Erweiterung darf die Anforderung nicht fehlschlagen.

Allen erweiterbaren Switchports, die für Netzwerkverbindungen erstellt werden, wird ein Bezeichner zugewiesen, der größer als NDIS_SWITCH_DEFAULT_PORT_ID ist. Der NDIS_SWITCH_DEFAULT_PORT_ID-Bezeichner wird reserviert und auf folgende Weise verwendet:

  • Der Quellportbezeichner für ein Paket wird im Out-of-Band-Weiterleitungskontext (OOB) des Pakets gespeichert, der der NET_BUFFER_LIST-Struktur zugeordnet ist. Ein Quellportbezeichner von NDIS_SWITCH_DEFAULT_PORT_ID gibt an, dass das Paket von der erweiterbaren Switcherweiterung und nicht von einem erweiterbaren Switchport stammt. Ein Paket mit dem Quellportbezeichner NDIS_SWITCH_DEFAULT_PORT_ID ist vertrauenswürdig und umgeht die erweiterbaren Switchportrichtlinien, z. B. Zugriffssteuerungslisten (Access Control Lists, ACLs) und Quality of Service (QoS).

    Die Erweiterung möchte möglicherweise, dass das Paket so behandelt wird, als ob es von einem bestimmten Port stammt. Dadurch können die Richtlinien für diesen Port auf das Paket angewendet werden. Die Erweiterung ruft SetNetBufferListSource auf, um den Quellport für das Paket zu ändern.

    Es kann jedoch vorkommen, dass die Erweiterung den Quellportbezeichner des Pakets NDIS_SWITCH_DEFAULT_PORT_ID zuweisen möchte. Beispielsweise kann die Erweiterung den Quellportbezeichner für proprietäre Steuerungspakete , die an ein Gerät im externen Netzwerk gesendet werden, auf NDIS_SWITCH_DEFAULT_PORT_ID festlegen.

    Weitere Informationen zum Weiterleitungskontext finden Sie unter Hyper-V Extensible Switch Forwarding Context.

  • Objektbezeichneranforderungen (OID) von OID_SWITCH_NIC_REQUEST werden von der erweiterbaren Switchschnittstelle ausgegeben, um OID-Anforderungen zu kapseln, die an den externen Netzwerkadapter des erweiterbaren Switches ausgegeben werden. Beispielsweise werden Hardwareauslagerungs-OID-Anforderungen von der -Schnittstelle gekapselt, bevor sie über den erweiterbaren Switchtreiberstapel ausgegeben werden.

    Eine Erweiterung kann auch gekapselte OID-Anforderungen ausgeben, um Anforderungen über den erweiterbaren Switchsteuerungspfad weiterzuleiten. Dadurch können Erweiterungen die Funktionen eines zugrunde liegenden physischen Netzwerkadapters abfragen oder konfigurieren.

    Der InformationBuffer-Member der NDIS_OID_REQUEST-Struktur für diese OID-Anforderung enthält einen Zeiger auf eine NDIS_SWITCH_NIC_OID_REQUEST-Struktur . Wenn der SourcePortId-Member auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt ist, gibt dies an, dass die OID-Anforderung von der erweiterbaren Switchschnittstelle stammt. Wenn DestinationPortId auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt ist, gibt dies an, dass die OID-Anforderung für die Verarbeitung durch eine Erweiterung im erweiterbaren Switchtreiberstapel vorgesehen ist.

    Weitere Informationen zum Steuerungspfad für OID-Anforderungen finden Sie unter Hyper-V Extensible Switch Control Path for OID Requests( Hyper-V Extensible Switch Control Path for OID Requests).

  • NDIS status Hinweise auf NDIS_STATUS_SWITCH_NIC_STATUS werden vom Miniportrand des erweiterbaren Switches ausgegeben, um eine status-Anzeige aus dem erweiterbaren externen Switch-Netzwerkadapter zu kapseln.

    Eine Erweiterung kann auch gekapselte NDIS-status-Hinweise ausgeben, um Hinweise auf den erweiterbaren Switchsteuerungspfad weiterzuleiten. Dadurch können Erweiterungen die gemeldeten Funktionen eines zugrunde liegenden physischen Netzwerkadapters ändern.

    Der StatusBuffer-Member der NDIS_STATUS_INDICATION-Struktur für diese Angabe enthält einen Zeiger auf eine NDIS_SWITCH_NIC_STATUS_INDICATION-Struktur . Wenn der SourcePortId-Member auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt ist, gibt dies an, dass die status-Angabe von der erweiterbaren Switchschnittstelle stammt. Wenn DestinationPortId auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt ist, gibt dies an, dass die OID-Anforderung für die Verarbeitung durch eine Erweiterung im erweiterbaren Switchtreiberstapel vorgesehen ist.

    Weitere Informationen zum Steuerungspfad für NDIS-status-Hinweise finden Sie unter Hyper-V Extensible Switch Control Path for NDIS Status Indications.For more information about the control path for NDIS status indications.

Die erweiterbare Switchschnittstelle verwaltet einen Verweiszähler für jeden port, der erstellt wurde. Ein Port wird nicht gelöscht, wenn der Verweiszähler einen Wert ungleich 0 (null) aufweist. Die -Schnittstelle stellt die folgenden Handlerfunktionen zum Inkrementieren oder Dekrementieren der Verweisindikatoren eines erweiterbaren Switchports bereit:

ReferenceSwitchPort
Die erweiterbare Switcherweiterung ruft diese Funktion auf, um den Verweiszähler eines Ports zu erhöhen. Während der Verweisindikator einen Wert ungleich 0 (Null) aufweist, gibt der Protokollrand des erweiterbaren Switches keine OID-Set-Anforderung (Object Identifier) aus , die OID_SWITCH_PORT_DELETE zum Löschen des erweiterbaren Switchports.

Die Erweiterung muss ReferenceSwitchPort aufrufen, bevor ein Vorgang ausgeführt wird, der erfordert, dass sich der Port in einem aktiven Zustand befindet. Beispielsweise muss die Erweiterung ReferenceSwitchPort aufrufen, bevor sie eine OID-Methodenanforderung von OID_SWITCH_PORT_PROPERTY_ENUM ausgibt.

Hinweis Die Erweiterung darf ReferenceSwitchPort nicht für einen Port aufrufen, nachdem sie eine OID-Set-Anforderung von OID_SWITCH_PORT_TEARDOWN für diesen Port empfangen hat.

DereferenceSwitchPort
Die erweiterbare Switcherweiterung ruft diese Funktion auf, um den Verweiszähler eines Ports zu verringern.

Die Erweiterung muss DereferenceSwitchPort aufrufen, nachdem der für den Port ausgeführte Vorgang abgeschlossen wurde. Wenn beispielsweise die Erweiterung ReferenceSwitchPort vor einer OID_SWITCH_PORT_PROPERTY_ENUM-Anforderung ausgegeben hat, muss die Erweiterung DereferenceSwitchPort aufrufen, nachdem die OID-Anforderung abgeschlossen wurde.

Hinweis NDIS-Ports und erweiterbare Switchports sind unterschiedliche Objekte. Pakete, die den erweiterbaren Switchdatenpfad durchlaufen, werden immer der NDIS-Portnummer NDIS_DEFAULT_PORT_NUMBER zugewiesen. Die portierbare Portnummer des Quell- und Zielswitches kann jedoch ein Wert von NDIS_SWITCH_DEFAULT_PORT_ID oder höher sein. Weitere Informationen finden Sie unter Datenpfad des erweiterbaren Hyper-V-Switches.