Richtlinien für die Paketverwaltung für den Datenpfad des erweiterbaren Switches
In diesem Thema werden die Richtlinien beschrieben, die Erweiterungen für erweiterbare Hyper-V-Switches zum Verwalten von Paketen befolgen müssen, die im datenpfad des erweiterbaren Switches abgerufen 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 und Diagrammen in Übersicht über den erweiterbaren Hyper-V-Switch und die Hybridweiterleitung vertraut sind.
Erweiterungen müssen die folgenden Richtlinien für die Paketverwaltung im erweiterbaren Switchdatenpfad befolgen:
Erweiterungen, die Pakete erstellen, müssen NdisFSendNetBufferLists aufrufen, um eine Sendeanforderung für den Eingangsdatenpfad zu initiieren. Dies muss auf diese Weise erfolgen, um eine ordnungsgemäße Weiterleitung des Pakets über den erweiterbaren Switch zu ermöglichen.
Eine Erfassungserweiterung kann Pakete auf dem erweiterbaren Ein- und Ausgehenden Datenpfad des Switches überwachen. Dieser Erweiterungstyp muss jedoch immer Pakete weiterleiten und darf die Pakete nicht löschen. Außerdem darf die Erfassungserweiterung die Paketdaten nicht ändern, bevor sie das Paket weiterleitet.
Auf dem erweiterbaren Switch-Eingangsdatenpfad können Filter- und Weiterleitungserweiterungen die folgenden Aktionen ausführen:
Filtererweiterungen können den Paketdatenverkehr filtern und nur benutzerdefinierte Port- oder Switchrichtlinien für die Paketübermittlung über den erweiterbaren Switch erzwingen. Wenn die Erweiterung Pakete im Eingangsdatenpfad filtert, kann sie nur Filterregeln anwenden, die nur auf dem Quellport und der Netzwerkadapterverbindung basieren, von denen das Paket stammt. Diese Informationen werden in den OOB-Daten der NET_BUFFER_LIST Struktur eines Pakets gespeichert und können mithilfe des makros NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL abgerufen werden.
Hinweis Pakete, die im Eingangsdatenpfad abgerufen werden, enthalten keine Zielports. Das Filtern von Paketen anhand von Zielports kann nur für Pakete erfolgen, die im ausgehenden Datenpfad abgerufen wurden.
Weiterleitungserweiterungen können Paketdatenverkehr filtern und benutzerdefinierte und Standardport- oder Switchrichtlinien für die Paketübermittlung über den erweiterbaren Switch erzwingen. Wenn die Weiterleitungserweiterung Pakete im Eingangsdatenpfad filtert, wendet sie Filterregeln basierend auf dem Quellport und den Zielports an, die die Weiterleitungserweiterung dem Paket zuweist.
Auf dem erweiterbaren Switch-Ausgangsdatenpfad können Filter- und Weiterleitungserweiterungen die folgenden Aktionen ausführen:
Filtererweiterungen können den Paketdatenverkehr filtern und nur benutzerdefinierte Port- oder Switchrichtlinien für die Paketübermittlung über den erweiterbaren Switch erzwingen. Wenn die Filtererweiterung Pakete im ausgehenden Datenpfad filtert, kann sie Filterregeln nur basierend auf den Zielports für ein Paket anwenden.
Zielportdaten werden in den OOB-Daten der NET_BUFFER_LIST struktur eines Pakets gespeichert. Erweiterungen erhalten diese Informationen, indem sie die GetNetBufferListDestinations-Funktion aufrufen.
Weiterleitungserweiterungen können Paketdatenverkehr filtern und benutzerdefinierte und Standardport- oder Switchrichtlinien für die Paketübermittlung über den erweiterbaren Switch erzwingen. Wenn die Weiterleitungserweiterung Pakete im ausgehenden Datenpfad filtert, kann sie Filterregeln basierend auf den Quell- oder Zielports für ein Paket anwenden.
Basierend auf den Richtlinien, die für ein Paket erzwungen werden, kann die Filter- oder Weiterleitungserweiterung die Übermittlung des Pakets an ein oder mehrere Ziele ausschließen. Weitere Informationen zu diesem Verfahren finden Sie unter Ausschließen der Paketübermittlung an extensible Switch-Zielports.
Basierend auf den Richtlinien, die für ein Paket erzwungen werden, kann die Weiterleitungserweiterung die Übermittlung des Pakets an ein oder mehrere Ziele ausschließen. Weitere Informationen finden Sie unter HybridWeiterleitung.
Auf dem erweiterbaren Switch für ausgehende Daten dürfen Filter- und Weiterleitungserweiterungen nicht wie folgt ausgeführt werden:
Ändern Sie die Paketdaten, bevor Sie das Paket im ausgehenden Datenpfad weiterleiten.
Wenn eine 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.
Wenn die Weiterleitungserweiterung die Daten in einem Paket ändern muss, muss sie zuerst das Paket klonen, bevor Portziele zugewiesen werden. Nachdem das Paket geändert und Portziele zugewiesen wurden, muss die Erweiterung das geänderte Paket in den Eingangsdatenpfad einfügen.
Weitere Informationen finden Sie unter Klonen von Paketdatenverkehr.
Hinweis Wenn die Erweiterung ein Paket klont, das für den ausgehenden Datenpfad abgerufen wurde, kann sie das neue Paket nur dann in den ausgehenden Datenpfad einfügen, wenn die Paketdaten nicht geändert und die ursprünglichen Zielportdaten beibehalten wurden.
Fügen Sie dem Paket Zielports hinzu, bevor Sie das Paket weiterleiten.
Hinweis Weiterleitungserweiterungen können Zielports zu Paketen hinzufügen, die im Eingangsdatenpfad abgerufen wurden.
Neue oder geklonte Datenpakete in den ausgehenden Datenpfad einfügen.
Im NDIS-Standarddatenpfad haben nicht erweiterbare OOB-Daten oft unterschiedliche Formate, je nachdem, ob das Paket als Senden oder Empfangen angegeben wird. Die NDIS_IPSEC_OFFLOAD_V2_HEADER_NET_BUFFER_LIST_INFO OOB-Daten ist beispielsweise eine Vereinigung von Sende- und Empfangsstrukturen.
Im erweiterbaren Switchdatenpfad werden alle Pakete durch den Erweiterungstreiberstapel verschoben, während sowohl gesendet als auch empfangen werden. Daher befinden sich die OOB-Daten des nicht erweiterbaren Switches innerhalb der NET_BUFFER_LIST Struktur des Pakets während der Dauer des Flusses durch den Treiberstapel entweder im Sende- oder Empfangsformat.
Das Format dieser OOB-Daten hängt vom erweiterbaren Port des Quellswitches ab, von dem das Paket an den erweiterbaren Switch gelangt ist. Wenn der Quellport mit dem externen Netzwerkadapter verbunden ist, haben die OOB-Daten des nicht erweiterbaren Switches ein Empfangsformat. Für andere Ports haben diese OOB-Daten ein Sendeformat.
Hinweis Wenn die Erweiterung die NET_BUFFER_LIST-Struktur eines Pakets klont, muss sie die nicht erweiterbaren OOB-Daten des Switches berücksichtigen, wenn sie die OOB-Daten hinzufügt oder ändert. Die Erweiterung muss CopyNetBufferListInfo aufrufen, um die OOB-Daten, die dem erweiterbaren Switchdatenpfad zugeordnet sind, aus einem Quellpaket in ein geklontes Paket zu kopieren. Diese Funktion behält das OOB-Sende- oder Empfangsformat bei, wenn die Daten in das geklonte Paket kopiert werden.
Wenn eine Erweiterung ein Paket aus dem ausgehenden Datenpfad löscht, muss reportFilteredNetBufferLists aufgerufen werden. Wenn diese Funktion aufgerufen wird, erhöht die erweiterbare Switchschnittstelle Indikatoren und protokolliert Ereignisse für die gelöschten oder ausgeschlossenen Pakete.