Freigeben über


Paketfluss über den Erweiterbaren Switch-Datenpfad

In diesem Thema wird beschrieben, wie Pakete über den Datenpfad des erweiterbaren Hyper-V-Switches zu oder von erweiterbaren Switchports verschoben werden.

Hinweis In der erweiterbaren Switch-Schnittstelle werden NDIS-Filtertreiber als erweiterbare Switcherweiterungen bezeichnet, und der Treiberstapel wird als erweiterbarer Switchtreiberstapel bezeichnet. Weitere Informationen zu den Erweiterungen finden Sie unter Hyper-V Extensible Switch Extensions.

Hinweis Auf dieser Seite wird davon ausgegangen, dass Sie mit den Informationen unter Übersicht über den erweiterbaren Hyper-V-Switch und hybride Weiterleitung vertraut sind.

Der gesamte Paketdatenverkehr, der von seinen Ports an den erweiterbaren Switch eingeht, folgt demselben Pfad durch den erweiterbaren Switchtreiberstapel. Beispiel: Paketdatenverkehr, der von der externen Netzwerkadapterverbindung empfangen oder von einer Vm-Netzwerkadapterverbindung gesendet wird, bewegt sich über denselben Datenpfad.

Die folgende Abbildung zeigt den erweiterbaren Switchdatenpfad für NDIS 6.40 (Windows Server 2012 R2) und höher.

Diagramm: Erweiterbare Hyper-V-Switcharchitektur für NDIS 6.40 und höhere Versionen

Die folgende Abbildung zeigt den erweiterbaren Switchdatenpfad für NDIS 6.30 (Windows Server 2012).

Diagramm: Erweiterbare Hyper-V-Switcharchitektur für NDIS 6.30

Weitere Informationen zu den Komponenten für die erweiterbare Switch-Schnittstelle finden Sie unter Hyper-V Extensible Switch Architecture.

Der erweiterbare Switchdatenpfad enthält die folgenden Teile, die in der Reihenfolge aufgeführt sind, in der pakete durch sie fließen:

Überlastung des Protokollrands

  1. Pakete gelangen am erweiterbaren Switch von Netzwerkadaptern, die mit den Switchports verbunden sind. Diese Pakete werden zuerst als Sendeanforderungen vom Protokollrand des erweiterbaren Schalters nach unten im erweiterbaren Switch-Eingangsdatenpfad ausgegeben.

    Der Protokollrand des erweiterbaren Switches bereitet die Pakete für den Eingangsdatenpfad vor. Der Protokollrand weist diesen Paketen einen Kontextbereich zu, der den erweiterbaren OOB-Kontext (Out-of-Band) für die Switchweiterleitung enthält. Er füllt die OOB-Daten mit Informationen über den Quellport und die Netzwerkadapterverbindung auf, von der das Paket an den erweiterbaren Switch übermittelt wurde.

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

  2. Wenn es sich bei dem Paket um ein NVGRE-Paket von einem externen Netzwerkadapter handelt, legt der erweiterbare Switch in NDIS 6.40 (Windows Server 2012 R2) das NativeForwardingRequired-Flag in den Out-of-Band-Informationen (OOB) des Pakets fest. Weitere Informationen finden Sie unter Hybridweiterleitung.

  3. Wenn das Paket an einem Port angekommen ist, an dem der Datenverkehr über ein virtuelles Subnetz verfügt, legt der erweiterbare Switch das VirtualSubnetId-Element der NDIS_NET_BUFFER_LIST_VIRTUAL_SUBNET_INFO-Struktur für das Paket fest.

    Hinweis Das virtuelle Subnetz kann ein HNV-Subnetz oder ein virtuelles Subnetz eines Drittanbieters sein.

Eingangsdatenpfad

  1. Eine Erweiterung ruft ein Paket aus dem Eingangsdatenpfad ab, wenn ihre FilterSendNetBufferLists-Funktion aufgerufen wird. Die Erweiterung leitet das Paket an zugrunde liegende Erweiterungen im Eingangsdatenpfad weiter, indem NdisFSendNetBufferLists aufgerufen wird. Das Filtern und Weiterleiten von Erweiterungen kann das Paket auch aus dem Eingangsdatenpfad löschen, indem NdisFSendNetBufferListsComplete aufgerufen wird.

  2. Wenn die Erfassung von Erweiterungen Pakete im Eingangsdatenpfad abruft, können sie die Paketdaten überprüfen. Die Erfassungserweiterungen dürfen jedoch die Sendeanforderungen für Pakete im Eingangsdatenpfad nicht abschließen. Diese Erweiterungen müssen die Pakete immer an zugrunde liegende Erweiterungen im erweiterbaren Switchtreiberstapel weiterleiten.

    Eine Erfassungserweiterung kann auch Pakete im Eingangsdatenpfad erstellen. Beispielsweise kann die Erweiterung Pakete erstellen, um Datenverkehrszustände an eine Remoteüberwachungsanwendung zu melden.

    Weitere Informationen zum Ursprungspaket durch eine Erweiterung finden Sie unter Ursprungspaketdatenverkehr.

  3. Wenn Filtererweiterungen Pakete für den Eingangsdatenpfad abrufen, können sie die folgenden Aktionen ausführen:

    • Löschen sie Pakete basierend auf benutzerdefinierten erweiterbaren Switch- oder Portrichtlinien.

      Weitere Informationen zu diesen Richtlinien finden Sie unter Hyper-V Extensible Switch Policies.

      Hinweis Für Pakete, die über den Eingangsdatenpfad abgerufen werden, sind keine Zielports in den OOB-Daten des Pakets definiert. Daher müssen Filtererweiterungen nur benutzerdefinierte Richtlinien erzwingen, die auf den Paketdaten oder der Quellport- oder Netzwerkadapterverbindung des Pakets basieren.

  • Klonen oder Ändern von Paketen, die aus dem Eingangsdatenpfad abgerufen wurden.

  • Injizieren Sie neue Pakete in den Eingangsdatenpfad.

  1. In NDIS 6.40 und höher führt der erweiterbare Switch nach den Erfassungs- und Filtererweiterungen, aber vor der Weiterleitungserweiterung für den Eingangsdatenpfad folgendes aus:

    • Wenn es sich bei dem Paket um ein NVGRE-Paket von einem externen Netzwerkadapter handelt, ist die Adresse im Paketheader eine Anbieteradresse (PA). Der erweiterbare Switch gibt dies an, indem das NativeForwardingRequired-Flag in den Out-of-Band-Informationen (OOB) des Pakets festgelegt wird. Weitere Informationen finden Sie unter Hybridweiterleitung.

    • Der erweiterbare Switch wendet die integrierten Eingangsrichtlinien auf das Paket an. Diese Richtlinien können Eingangszugriffssteuerungslisten (AcLs), DHCP Guard und Router Guard enthalten.

  2. Wenn eine Weiterleitungserweiterung im erweiterbaren Switchtreiberstapel nicht aktiviert ist, wird das Zielportarray für ein Paket durch den erweiterbaren Switch bestimmt.

  3. Wenn eine Weiterleitungserweiterung aktiviert ist, muss sie die folgenden Schritte ausführen, wenn sie Pakete für den Eingangsdatenpfad abruft:

    • Wenn es sich in NDIS 6.40 und höher um ein NVGRE-Paket handelt (siehe Hybridweiterleitung), kann die Weiterleitungserweiterung das Zielportarray in den OOB-Daten des Pakets im Eingangsdatenpfad nicht ändern. Es kann jedoch das Paket löschen.

    • Wenn es sich bei dem Paket nicht um ein NVGRE-Paket handelt, muss die Weiterleitungserweiterung dem Zielportarray in den OOB-Daten des Pakets Zielportports hinzufügen.

    • Die Weiterleitungserweiterung muss Pakete basierend auf standard- oder benutzerdefinierten erweiterbaren Switch- oder Portrichtlinien löschen. Standard-Switch- oder Portrichtlinien umfassen Sicherheits- und VLAN-Eigenschaften (Virtual LAN). Wenn eine Weiterleitungserweiterung im erweiterbaren Switchtreiberstapel nicht aktiviert ist, werden diese Richtlinien durch den erweiterbaren Switch erzwungen.

      Hinweis Wenn die Weiterleitungserweiterung Pakete im Eingangsdatenpfad filtert, wendet sie Filterregeln basierend auf dem Quellport und den Zielports an, die die Erweiterung dem Paket zuweist.

Darüber hinaus kann die Weiterleitungserweiterung Folgendes tun:

  • Klonen oder Ändern von Paketen, die aus dem Eingangsdatenpfad abgerufen wurden.

  • Injizieren Sie neue Pakete in den Eingangsdatenpfad.

Zugrunde liegender Miniport-Edge

  1. Wenn das Paket am zugrunde liegenden Miniportrand des erweiterbaren Switches ankommt, wendet der erweiterbare Switch seine integrierten Richtlinien auf das Paket an. Diese Richtlinien umfassen Zugriffssteuerungslisten (ACLs) und QoS-Eigenschaften (Quality of Service). Wenn das Paket aufgrund dieser Richtlinien nicht gelöscht wird, erstellt der erweiterbare Switch eine Empfangsanzeige für das Paket und leitet das Paket über den ausgehenden Datenpfad weiter.

    Hinweis Wenn die Portspiegelung für einen Port aktiviert ist, an den das Paket übermittelt werden soll, fügt der Miniport-Edge den OOB-Daten des Pakets einen Zielport für den Spiegel Port hinzu. Der Miniport-Edge tut dies unabhängig davon, ob eine Weiterleitungserweiterung im erweiterbaren Switchtreiberstapel installiert und aktiviert ist. Der Miniport-Edge fügt den Spiegel Port nur hinzu, wenn er nicht bereits im Array der Zielports für das Paket angegeben ist.

  2. Wenn eine Weiterleitungserweiterung nicht aktiviert ist, bestimmt der erweiterbare Switch die Zielports für das Paket und fügt diese Zielports den OOB-Daten des Pakets hinzu, bevor er das Paket an den ausgehenden Datenpfad weiterleitet.

  3. In NDIS 6.40 und höher führt die HNV-Komponente alle erforderlichen NVGRE-Kapselungen oder -Kapselungen nach dem Eingang und vor dem Ausgehenden durch, sodass die Weiterleitungserweiterung das Paket in gekapselten und entkapselten Form sehen kann. Wenn das Paket beispielsweise von einem externen Netzwerkadapter eingetroffen ist und für einen internen virtuellen Computer bestimmt ist, ruft die Weiterleitungserweiterung das gekapselte Paket beim Eingehenden und das entkapselte Paket beim Ausgehenden ab.

    Hinweis Im gekapselten Paket ist die Adresse im Paketheader eine PA-Leerzeichenadresse (Provider Address). Im gekapselten Paket handelt es sich um eine Kundenadresse (CA)-Leerzeichenadresse.

    1. Wenn es sich bei dem Paket um ein NVGRE-Paket handelt, das von einem externen Netzwerkadapter eingegangen ist, führt die Hyper-V-Netzwerkvirtualisierungskomponente (HNV) des erweiterbaren Switches eine NVGRE-Kapselung des Pakets durch. Die HNV-Komponente bestimmt die Ziele für das Paket gemäß den HNV-Richtlinien, und dann leitet der erweiterbare Switch das Paket in den ausgehenden Datenpfad weiter.

    2. Wenn das Paket von einer internen VM eingetroffen ist, führt die HNV-Komponente eine NVGRE-Kapselung für das Paket durch, wenn für das Paket HNV-Richtlinien festgelegt sind. Die HNV-Komponente bestimmt die Ziele für das Paket gemäß den HNV-Richtlinien, und dann leitet der erweiterbare Switch das Paket in den ausgehenden Datenpfad weiter.

    3. Andernfalls leitet die Weiterleitungserweiterung das Paket in den ausgehenden Datenpfad weiter.

  4. Wenn in NDIS 6.30 eine Weiterleitungserweiterung aktiviert ist, muss sie das Paket über den ausgehenden Datenpfad weiterleiten.

Ausgehender Datenpfad

  1. Eine Erweiterung ruft ein Paket aus dem ausgehenden Datenpfad ab, wenn ihre FilterReceiveNetBufferLists-Funktion aufgerufen wird. Die Erweiterung leitet das Paket an überlastende Erweiterungen im ausgehenden Datenpfad weiter, indem NdisFIndicateReceiveNetBufferLists aufgerufen wird. Das Filtern und Weiterleiten von Erweiterungen kann das Paket auch aus dem ausgehenden Datenpfad löschen, indem NdisFReturnNetBufferLists aufgerufen wird.

  2. Wenn die Weiterleitungserweiterung ein Paket für den ausgehenden Datenpfad abruft, kann sie die Zielportinformationen des Pakets in den OOB-Daten überprüfen.

    Hinweis Die Erweiterung ruft diese Informationen aus den OOB-Daten ab, indem GetNetBufferListDestinations aufgerufen wird.

Basierend auf Standard- oder benutzerdefinierten Switch- oder Portrichtlinien kann die Erweiterung die Übermittlung des Pakets an einen oder mehrere Zielports ausschließen, die in den OOB-Daten enthalten sind.

  1. In NDIS 6.40 (Windows Server 2012 R2) und höher wendet der erweiterbare Switch nach der Weiterleitungserweiterung, aber vor dem Filtern und Erfassen von Erweiterungen für den ausgehenden Datenpfad die integrierten Ausgangsrichtlinien auf das Paket an. Diese Richtlinien können Trunkmodus, Überwachungsmodus, ausgehende ACLs und QoS-Eigenschaften (Quality of Service) umfassen.

  2. Wenn Filtererweiterungen ein Paket für den ausgehenden Datenpfad erhalten, können sie die Zielportinformationen des Pakets in den OOB-Daten überprüfen. Basierend auf benutzerdefinierten Switch- oder Portrichtlinien kann die Erweiterung die Übermittlung des Pakets an einen oder mehrere Zielports ausschließen, die in den OOB-Daten enthalten sind.

    Wenn die Filtererweiterung die Daten in einem Paket ändern muss, muss sie zuerst das Paket klonen, ohne Portziele beizubehalten. Anschließend muss die Erweiterung das geänderte Paket in den Eingangsdatenpfad einfügen. Dadurch können die zugrunde liegenden Erweiterungen Richtlinien für das geänderte Paket erzwingen, und die Weiterleitungserweiterung kann Portziele hinzufügen.

    Weitere Informationen finden Sie unter Klonen oder Paketdatenverkehr.

  3. Wenn die Erfassung von Erweiterungen Pakete im ausgehenden Datenpfad abruft, können sie die Paketdaten überprüfen. Wenn die Erfassungserweiterung jedoch Pakete erstellen muss, um Datenverkehrsbedingungen an eine Remoteüberwachungsanwendung zu melden, muss sie diesen Paketdatenverkehr durch Aufrufen von NdisFSendNetBufferLists auslösen, um einen Sendevorgang für den Eingangsdatenpfad zu initiieren.

  4. Wenn das Paket am überlässigen Protokollrand des erweiterbaren Switches eintrifft, leitet die erweiterbare Switch-Schnittstelle das Paket an alle angegebenen Zielports weiter.

  5. Nachdem das Paket weitergeleitet wurde, schließt die Schnittstelle das Paket über denselben Pfad in umgekehrter Richtung ab. Zunächst ruft die Schnittstelle die FilterReturnNetBufferLists-Funktion der Erweiterung auf, um Pakete abzuschließen, die im ausgehenden Datenpfad weitergeleitet werden. Anschließend ruft die Schnittstelle die FilterSendNetBufferListsComplete-Funktion der Erweiterung auf, um Pakete abzuschließen, die über den Eingangsdatenpfad weitergeleitet werden.

    Wenn das Paket sowohl für den ausgehenden als auch für den eingehenden Datenpfad abgeschlossen ist, führt die Erweiterung alle erforderlichen Paketbereinigungen und Nachverarbeitungen durch, die möglicherweise erforderlich sind.