Uso del filtro del commutatore virtuale

Panoramica del filtro del commutatore virtuale

Il filtro del commutatore virtuale è supportato in Windows 8 e versioni successive di Windows.

Questa funzionalità WFP consente di filtrare sui campi dell'intestazione MAC, dell'intestazione IP e delle porte del protocollo superiore, nonché campi specifici del commutatore virtuale, ad esempio la porta virtuale (VPort) e l'identificatore di macchina virtuale (ID macchina virtuale). Questi livelli vengono richiamati in base a pacchetti per ogni pacchetto per tutti i pacchetti che attraversano il commutatore virtuale. Questi livelli vengono accessibili da un filtro di estensione del commutatore virtuale, ovvero un tipo di driver di filtro leggero (LWF).

Un driver di callout chiama la funzione FwpsvSwitchEventsSubscribe0 per registrare i punti di ingresso del callback per gli eventi del livello switch virtuale.

I punti di ingresso per le funzioni di notifica di callback vengono specificati in una struttura FWPS_VSWITCH_EVENT_DISPATCH_TABLE0 . Le funzioni di callback disponibili includono:

L'enumerazione FWPS_VSWITCH_EVENT_TYPE definisce i valori per il parametro eventType delle funzioni di notifica del commutatore virtuale.

Il driver di callout deve infine chiamare FwpsvSwitchEventsUnsubscribe0 per liberare le risorse di sistema.

Se un chiamante restituisce STATUS_PENDING da una funzione di notifica WFP, IL WFP restituirà STATUS_PENDING al gestore delle richieste OID. Il driver di callout deve chiamare la funzione FwpsvSwitchNotifyComplete0 per completare l'operazione in sospeso. Dopo la chiamata FwpsvSwitchNotifyComplete0 , WFP chiama la funzione NdisFOidRequestComplete per completare l'OID per il commutatore virtuale.

I callback non devono aggiungere o eliminare filtri WFP in modo sincrono nel contesto delle funzioni di notifica. Inoltre, se la funzione di notifica consente al callback di restituire STATUS_PENDING e il callout restituisce STATUS_PENDING, il callout non deve aggiungere o eliminare filtri WFP prima di completare la notifica.

Livelli di filtro e campi del commutatore virtuale WFP

Gli identificatori di livello di filtro in fase di esecuzione per il filtro dei commutatori virtuali includono:

  • 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

Gli identificatori di campo dati per il filtro dei commutatori virtuali includono:

Linee guida per i callout del callout virtuale WFP

Traffico porta 0

Per i callout del commutatore virtuale WFP, il traffico dalla porta 0 (l'ID porta predefinito) è attendibile e non deve essere filtrato. Questo perché, in genere, il traffico sulla porta 0 ha origine da altre estensioni nello stack di driver e viene quindi considerato dal percorso dei dati come privilegiato e attendibile. Le estensioni del commutatore virtuale useranno 0 per situazioni come l'origine di un pacchetto di controllo, che non devono essere filtrate e rifiutate da eventuali estensioni sottostanti. Per altre informazioni sulla mofificazione della porta di origine del commutatore estendibile Hyper-V, vedere Modifica dei dati della porta di origine estendibile del commutatore estendibile di un pacchetto.

Regole di corrispondenza del callout

Quando si definisce una regola di corrispondenza per il filtro, i callout del commutatore virtuale non devono usare l'indirizzo MAC come base per il confronto. Gli indirizzi MAC possono cambiare in fase di esecuzione e alcune porte possono generare traffico da più indirizzi MAC. I callout devono invece usare una regola di corrispondenza più durevole, ad esempio l'ID scheda di interfaccia di rete, che non cambierà.

I/O Virtualization (IOV) e coesistenza WFP

Il WFP non può essere abilitato su un commutatore IOV e viene bloccato dal sistema operativo se viene effettuato un tentativo di abilitarlo.

Abilitazione o disabilitazione del WFP

I programma di installazione per i callout virtuali DEL WFP non devono modificare lo stato abilitato per l'estensione WFP; cioè, non dovrebbero abilitare o disabilitare il WFP stesso.