Condividi tramite


Filtri delle estensioni

Un'estensione di filtro del commutatore estendibile Hyper-V può controllare, modificare e inserire pacchetti nel percorso dati del commutatore estendibile. In base alle impostazioni dei criteri di conversione estendibili, l'estensione può eliminare un pacchetto o escludere il recapito in una o più porte di destinazione.

Le estensioni di filtro vengono richiamate dopo l'acquisizione di estensioni nel percorso dati in ingresso e dopo l'inoltro delle estensioni nel percorso dati in uscita. Per altre informazioni su questi percorsi dati, vedere Percorso dati estendibile Hyper-V.

Un'estensione di filtro può eseguire le operazioni seguenti con i pacchetti ottenuti nel percorso dati in ingresso:

  • Filtrare il traffico dei pacchetti e applicare criteri di porta o commutatori personalizzati per il recapito dei pacchetti tramite il commutatore estendibile. Quando l'estensione di filtro filtra i pacchetti nel percorso dati in ingresso, può applicare regole di filtro solo in base alla porta di origine e alla connessione della scheda di rete da cui ha origine il pacchetto. Queste informazioni vengono archiviate nei dati fuori banda (OOB) della struttura NET_BUFFER_LIST di un pacchetto e possono essere ottenuti usando la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .

    Nota I pacchetti ottenuti nel percorso dati in ingresso non contengono porte di destinazione. È possibile filtrare i pacchetti in base alle porte di destinazione solo sui pacchetti ottenuti nel percorso dati in uscita.

    I criteri personalizzati sono definiti dal fornitore di software indipendente (ISV). Le impostazioni delle proprietà per questo tipo di criterio vengono gestite tramite il livello di gestione WMI Hyper-V. L'estensione di filtro è configurata con queste impostazioni di proprietà tramite una richiesta OID (Object Identifier) di OID_SWITCH_PORT_PROPERTY_UPDATE e OID_SWITCH_PROPERTY_UPDATE.

    Per altre informazioni sui criteri di porta o commutatore estendibili personalizzati, vedere Gestione dei criteri di commutatore estendibili Hyper-V.

    Nota Solo le estensioni di inoltro possono applicare criteri di porta standard per il recapito dei pacchetti tramite il commutatore estendibile.

  • Inserire pacchetti nuovi, modificati o clonati nel percorso dati in ingresso.

    Per altre informazioni, vedere Operazioni di invio e ricezione del commutatore estendibile Hyper-V.

Un'estensione di filtro può eseguire le operazioni seguenti con i pacchetti ottenuti nel percorso dei dati in uscita:

  • Filtrare il traffico dei pacchetti e applicare criteri di porta o commutatori personalizzati per il recapito dei pacchetti tramite il commutatore estendibile. Quando il filtro dei pacchetti di estensione filtra i pacchetti nel percorso dati in uscita, può applicare regole di filtro in base alle porte di origine o di destinazione per un pacchetto. I dati della porta di destinazione vengono archiviati nei dati OOB della struttura NET_BUFFER_LIST di un pacchetto. Le estensioni ottengono queste informazioni chiamando la funzione GetNetBufferListDestinations .

  • Escludere il recapito del pacchetto in una o più porte di destinazione del commutatore estendibili. Ciò consente all'estensione di filtro di escludere il recapito di un pacchetto per le porte di commutatore estendibili.

    Per altre informazioni su come escludere il recapito dei pacchetti alle porte di commutatore estendibili, vedere Esclusione del recapito dei pacchetti alle porte di destinazione estendibili.

  • Gestire il flusso di traffico verso una o più porte di destinazione rinviando l'inoltro dei pacchetti al percorso dei dati in uscita.

    Ad esempio, un'estensione di filtro che supporta la funzionalità QoS (Quality of Service) può voler chiamare immediatamente NdisFSendNetBufferLists per inoltrare pacchetti specificati con un valore di priorità superiore. A seconda del flusso di traffico, l'estensione potrebbe voler inoltrare pacchetti con un valore di priorità inferiore in un secondo momento.

  • Modificare i dati del pacchetto. Se l'estensione di filtro deve modificare i dati in un pacchetto, deve prima clonare il pacchetto senza conservare le destinazioni di porta. L'estensione deve quindi inserire il pacchetto modificato nel percorso dati in ingresso. Ciò consente alle estensioni sottostanti di applicare criteri al pacchetto modificato e l'estensione di inoltro può aggiungere destinazioni di porta.

    Per altre informazioni, vedere Clonazione del traffico dei pacchetti.

Oltre a controllare le richieste OID e le indicazioni sullo stato di NDIS, un'estensione di filtro può eseguire le operazioni seguenti:

  • Veto la creazione di una porta di commutatore estendibile o di una connessione scheda di rete restituendo STATUS_DATA_NOT_ACCEPTED per gli OID estendibili applicabili. Ad esempio, l'estensione di filtro può veto una richiesta di creazione della porta restituendo STATUS_DATA_NOT_ACCEPTED quando il driver riceve una richiesta di set OID di OID_SWITCH_PORT_CREATE.

    Nota Le estensioni di filtro non creano o eliminano porte o connessioni della scheda di rete. Il bordo del protocollo del commutatore estendibile genera problemi di OID per notificare ai driver di filtro sottostanti la creazione o l'eliminazione delle porte o delle connessioni della scheda di rete. Per altre informazioni, vedere Stati della porta estendibile hyper-V e della scheda di rete.

  • Veto l'aggiunta o l'aggiornamento di un'opzione estendibile o di un criterio di porta restituendo STATUS_DATA_NOT_ACCEPTED per gli OID di commutatori estendibili applicabili. Ad esempio, l'estensione di filtro può veto l'aggiunta di un criterio di porta restituendo STATUS_DATA_NOT_ACCEPTED quando l'estensione riceve una richiesta di set OID di OID_SWITCH_PORT_PROPERTY_ADD.

    Per altre informazioni sui criteri di commutatore estendibili, vedere Gestione dei criteri di commutatore estendibile Hyper-V.

Un'estensione di filtro presenta i requisiti seguenti:

  • Un'estensione di filtro deve essere sviluppata come driver di filtro NDIS che supporta l'interfaccia del commutatore estendibile.

    Per altre informazioni sui driver di filtro, vedere Driver di filtro NDIS.

    Per altre informazioni su come scrivere un'estensione di filtro, vedere Scrittura di estensioni di commutatori estendibili Hyper-V.

    Nota Windows Filtering Platform (WFP) offre un'estensione di filtro estendibile in box (Wfplwfs.sys ). Questa estensione consente ai filtri o ai driver di callout del WFP di intercettare i pacchetti lungo il percorso dati estendibile hyper-V. Ciò consente ai filtri o ai driver di callout di eseguire l'ispezione o la modifica dei pacchetti usando le funzioni di gestione e sistema del WFP. Per una panoramica del WFP, vedere Piattaforma di filtro di Windows.

  • Il file INF per un'estensione di filtro deve installare il driver come driver di filtro di modifica. I driver di filtro di monitoraggio NDIS non possono essere installati nello stack di driver di commutatore estendibile.

    Per altre informazioni sulla modifica dei driver di filtro, vedere Tipi di driver di filtro.

    Per altre informazioni sui requisiti INF per la modifica dei driver di filtro, vedere Configurazione di un file INF per un driver di filtro di modifica.

  • Il valore FilterClass nel file INF per il driver di filtro deve essere impostato su ms_switch_filter. Per altre informazioni, vedere Requisiti INF per le estensioni di commutatori estendibili Hyper-V.

  • Qualsiasi numero di estensioni di filtro può essere associata e abilitata nello stack di driver per ogni istanza di un commutatore estendibile. Per impostazione predefinita, più estensioni di filtro vengono ordinate in base al momento dell'installazione. Ad esempio, più estensioni di filtro vengono sovrapposte nello stack di driver commutatore estendibile con l'estensione installata più di recente sopra altre estensioni di filtro nello stack.

    Dopo aver associato e abilitato in un'istanza di commutatore estendibile, è possibile riordinare l'estensione di filtro delle estensioni nello stack di driver commutatore estendibile. Per altre informazioni, vedere Riordinare le estensioni di commutatori Estendibili Hyper-V.