Freigeben über


Verwenden der virtuellen Switch-Filterung

Übersicht über die virtuelle Switch-Filterung

Die virtuelle Switch-Filterung wird in Windows 8 und höheren Versionen von Windows unterstützt.

Diese WFP-Funktion ermöglicht das Filtern nach Feldern des MAC-Headers, des IP-Headers und der oberen Protokollports sowie nach virtuellen Switch-spezifischen Feldern wie dem virtuellen Port (VPort) und der Kennung der virtuellen Maschine (VM-ID). Diese Ebenen werden pro Paket für alle Pakete aufgerufen, die den virtuellen Switch durchlaufen. Auf diese Ebenen wird über einen Virtuellen Switch-Erweiterungsfilter zugegriffen – ein Typ des LWF-Treibers (NDIS Lightweight Filter).

Ein Callout-Treiber ruft die Funktion FwpsvSwitchEventsSubscribe0 auf, um Rückruf-Einstiegspunkte für virtuelle Switch-Layer-Ereignisse zu registrieren.

Die Einstiegspunkte für die Rückrufbenachrichtigungsfunktionen werden in einer FWPS_VSWITCH_EVENT_DISPATCH_TABLE0-Struktur angegeben. Die verfügbaren Rückruffunktionen umfassen:

Die FWPS_VSWITCH_EVENT_TYPE-Aufzählung definiert die Werte für den eventType-Parameter der Benachrichtigungsfunktionen für virtuelle Switche.

Der Callout-Treiber muss schließlich FwpsvSwitchEventsUnsubscribe0 aufrufen, um die Systemressourcen freizugeben.

Wenn ein Callout-Treiber STATUS_PENDING von einer WFP-Benachrichtigungsfunktion zurückgibt, gibt WFP STATUS_PENDING an den OID-Anforderungshandler zurück. Der Popuptreiber muss die FwpsvSwitchNotifyComplete0-Funktion aufrufen, um den ausstehenden Vorgang abzuschließen. Nach dem FwpsvSwitchNotifyComplete0-Aufruf ruft WFP die NdisFOidRequestComplete-Funktion auf, um das OID für den virtuellen Switch abzuschließen.

Rückrufe sollten WFP-Filter nicht synchron im Kontext der Benachrichtigungsfunktionen hinzufügen oder löschen. Wenn die Benachrichtigungsfunktion außerdem zulässt, dass der Rückruf STATUS_PENDING zurückgibt, und der Callout STATUS_PENDING zurückgibt, sollte der Callout keine WFP-Filter hinzufügen oder löschen, bevor die Benachrichtigung abgeschlossen ist.

WFP Virtual Switch Filter Layer und Felder

Zu den Laufzeitfilterungsebenenbezeichnern für die Filterung virtueller Switches gehören:

  • FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
  • FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
  • FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V4
  • FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V6
  • FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V4
  • FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V6

Zu den Datenfeldbezeichnern für die Filterung virtueller Switches gehören:

Leitfaden für WFP Virtual Switch Callout Writers

Port 0 Datenverkehr

Bei Beschriftungen für virtuelle WFP-Switches ist der Datenverkehr von Port 0 (die Standardport-ID) vertrauenswürdig und sollte nicht gefiltert werden. Dies liegt daran, dass der Datenverkehr über Port 0 aus anderen Erweiterungen im Treiberstapel stammt und somit vom Datenpfad als privilegierte und vertrauenswürdig behandelt wird. Virtuelle Switch-Erweiterungen verwenden Port 0 sparsam, beispielsweise beim Senden eines Steuerpakets, das von keiner der zugrunde liegenden Erweiterungen gefiltert und abgelehnt werden sollte. Weitere Informationen zur Änderung des erweiterbaren Switch-Quellports in Hyper-V finden Sie unter Ändern der Extensible Switch Source Port Data eines Pakets.

Callout-Übereinstimmungsregeln

Beim Definieren einer Übereinstimmungsregel zum Filtern sollten virtuelle Switch-Callouts die MAC-Adresse nicht als Vergleichsgrundlage verwenden. MAC-Adressen können zur Laufzeit geändert werden, und einige Ports generieren möglicherweise Datenverkehr von mehreren MAC-Adressen. Stattdessen sollten Callouts eine dauerhaftere Übereinstimmungsregel wie die NIC-ID verwenden, die sich nicht ändert.

I/O-Virtualisierung (IOV) und WFP-Koexistenz

WFP kann nicht auf einem IOV-Switch aktiviert werden und wird vom Betriebssystem blockiert, wenn versucht wird, es zu aktivieren.

Aktivieren oder Deaktivieren von WFP

Installationsprogramme für WFP-Callouts für virtuelle Switches sollten den aktivierten Status der WFP-Erweiterung nicht ändern. Das heißt, sie sollten WFP selbst weder aktivieren noch deaktivieren.