Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ü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:
- FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0
- FWPS_VSWITCH_INTERFACE_EVENT_CALLBACK0
- FWPS_VSWITCH_LIFETIME_EVENT_CALLBACK0
- FWPS_VSWITCH_POLICY_EVENT_CALLBACK0
- FWPS_VSWITCH_PORT_EVENT_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0
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:
- FWPS_FIELDS_EGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V6
- FWPS_FIELDS_INGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V6
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.