Flusso di pacchetti tramite il percorso dati del commutatore estendibile

Questo argomento descrive come i pacchetti vengono spostati da o verso porte commutatori estendibili tramite il percorso dei dati del commutatore estendibile Hyper-V.

Nota Nell'interfaccia del commutatore estendibile, i driver di filtro NDIS sono noti come estensioni del commutatore estendibile e lo stack di driver è noto come stack di driver switch estendibile. Per altre informazioni sulle estensioni, vedere Estensioni del commutatore estendibile Hyper-V.

Nota Questa pagina presuppone che si abbia familiarità con le informazioni in Panoramica del commutatore estendibile Hyper-V e dell'inoltro ibrido.

Tutto il traffico di pacchetti che arriva al commutatore estendibile dalle porte segue lo stesso percorso attraverso lo stack di driver del commutatore estendibile. Ad esempio, il traffico di pacchetti ricevuto dalla connessione della scheda di rete esterna o inviato da una connessione di scheda di rete della macchina virtuale viene spostato nello stesso percorso dati.

La figura seguente illustra il percorso dei dati del commutatore estendibile per NDIS 6.40 (Windows Server 2012 R2) e versioni successive.

Diagramma che mostra l'architettura del commutatore estendibile Hyper-V per NDIS 6.40 e versioni successive.

La figura seguente illustra il percorso dei dati del commutatore estendibile per NDIS 6.30 (Windows Server 2012).

Diagramma che mostra l'architettura del commutatore estendibile Hyper-V per NDIS 6.30.

Per altre informazioni sui componenti per l'interfaccia del commutatore estendibile, vedere Architettura del commutatore estendibile Hyper-V.

Il percorso dei dati del commutatore estendibile include le parti seguenti, elencate nell'ordine in cui i pacchetti vengono trasmessi attraverso di essi:

Overlying protocol edge

  1. I pacchetti arrivano al commutatore estendibile dalle schede di rete connesse alle porte del commutatore. Questi pacchetti vengono generati per la prima volta come richieste inviate dal bordo del protocollo del commutatore estendibile verso il basso il percorso dei dati di ingresso del commutatore estendibile.

    Il bordo del protocollo dell'interruttore estendibile prepara i pacchetti per il percorso dati in ingresso. Il bordo del protocollo alloca un'area di contesto per questi pacchetti che contiene il contesto di inoltro del commutatore estendibile fuori banda (OOB). Popola i dati OOB con informazioni sulla porta di origine e sulla connessione alla scheda di rete da cui il pacchetto è stato recapitato al commutatore estendibile.

    Per altre informazioni sul contesto di inoltro, vedere Contesto di inoltro del commutatore estendibile Hyper-V.

  2. In NDIS 6.40 (Windows Server 2012 R2) e versioni successive, se il pacchetto è un pacchetto NVGRE da una scheda di rete esterna, il commutatore estendibile imposta il flag NativeForwardingRequired nelle informazioni fuori banda (OOB) del pacchetto. Per altre informazioni, vedere Inoltro ibrido.

  3. Se il pacchetto è arrivato su una porta in cui il traffico ha una subnet virtuale, il commutatore estendibile imposta il membro VirtualSubnetId della struttura NDIS_NET_BUFFER_LIST_VIRTUAL_SUBNET_INFO per il pacchetto.

    Nota La subnet virtuale può essere una subnet HNV o una subnet virtuale di terze parti.

Percorso dati in ingresso

  1. Un'estensione ottiene un pacchetto dal percorso dati in ingresso quando viene chiamata la relativa funzione FilterSendNetBufferLists . L'estensione inoltra il pacchetto alle estensioni sottostanti nel percorso dati in ingresso chiamando NdisFSendNetBufferLists. I filtri e l'inoltro delle estensioni possono anche eliminare il pacchetto dal percorso dati in ingresso chiamando NdisFSendNetBufferListsComplete.

  2. Quando si acquisiscono le estensioni, si ottengono pacchetti nel percorso dati in ingresso, è possibile esaminare i dati dei pacchetti. Tuttavia, l'acquisizione delle estensioni non deve completare le richieste di invio per i pacchetti nel percorso dati in ingresso. Queste estensioni devono sempre inoltrare i pacchetti alle estensioni sottostanti nello stack di driver del commutatore estendibile.

    Un'estensione di acquisizione può anche avere origine pacchetti nel percorso dati in ingresso. Ad esempio, l'estensione può avere origine pacchetti per segnalare le condizioni del traffico a un'applicazione di monitoraggio remoto.

    Per altre informazioni sui pacchetti di origine da un'estensione, vedere Traffico di pacchetti di origine.

  3. Quando si filtrano le estensioni, si ottengono pacchetti nel percorso dati in ingresso, è possibile eseguire le operazioni seguenti:

    • Eliminare i pacchetti in base a criteri di porta o switch estendibili personalizzati.

      Per altre informazioni su questi criteri, vedere Criteri di commutatore estendibile Hyper-V.

      Nota I pacchetti ottenuti nel percorso dati in ingresso non hanno porte di destinazione definite nei dati OOB del pacchetto. Di conseguenza, le estensioni di filtro devono applicare criteri personalizzati solo in base ai dati del pacchetto o alla porta di origine o alla connessione alla scheda di rete del pacchetto.

  • Clonare o modificare i pacchetti ottenuti dal percorso dati in ingresso.

  • Inserire nuovi pacchetti nel percorso dati in ingresso.

  1. In NDIS 6.40 e versioni successive, dopo l'acquisizione e il filtro delle estensioni, ma prima dell'estensione di inoltro nel percorso dati in ingresso, l'opzione estendibile esegue le operazioni seguenti:

    • Se il pacchetto è un pacchetto NVGRE da una scheda di rete esterna, l'indirizzo nell'intestazione del pacchetto è un indirizzo dello spazio pa (Provider Address). L'opzione estendibile indica questo valore impostando il flag NativeForwardingRequired nelle informazioni OOB (Out-of-Band) del pacchetto. Per altre informazioni, vedere Inoltro ibrido.

    • L'opzione estendibile applica i criteri di ingresso predefiniti al pacchetto. Questi criteri possono includere elenchi di controllo di accesso in ingresso (ACL), DHCP Guard e Router Guard.

  2. Se un'estensione di inoltro non è abilitata nello stack di driver del commutatore estendibile, la matrice di porte di destinazione per un pacchetto viene determinata dall'opzione estendibile.

  3. Se un'estensione di inoltro è abilitata, deve eseguire le operazioni seguenti quando ottiene pacchetti nel percorso dati in ingresso:

    • In NDIS 6.40 e versioni successive, se il pacchetto è un pacchetto NVGRE (vedere Inoltro ibrido), l'estensione di inoltro non può modificare la matrice di porte di destinazione nei dati OOB del pacchetto nel percorso dati in ingresso. Tuttavia, può eliminare il pacchetto.

    • Se il pacchetto non è un pacchetto NVGRE, l'estensione di inoltro deve aggiungere porte di destinazione alla matrice di porte di destinazione nei dati OOB del pacchetto.

    • L'estensione di inoltro deve eliminare i pacchetti in base a un commutatore o a una porta estendibile standard o personalizzata. I criteri di commutatore o porta standard includono proprietà di sicurezza e LAN virtuale (VLAN). Se un'estensione di inoltro non è abilitata nello stack di driver del commutatore estendibile, questi criteri vengono applicati dall'opzione estendibile.

      Nota Quando l'estensione di inoltro filtra i pacchetti nel percorso dati in ingresso, applica regole di filtro in base alla porta di origine e alle porte di destinazione assegnate dall'estensione al pacchetto.

Inoltre, l'estensione di inoltro può eseguire le operazioni seguenti:

  • Clonare o modificare i pacchetti ottenuti dal percorso dati in ingresso.

  • Inserire nuovi pacchetti nel percorso dati in ingresso.

Bordo miniport sottostante

  1. Quando il pacchetto arriva al bordo miniport sottostante dell'interruttore estendibile, l'opzione estendibile applica i criteri predefiniti al pacchetto. Questi criteri includono elenchi di controllo di accesso (ACL) e proprietà QoS (Quality of Service). Se il pacchetto non viene eliminato a causa di questi criteri, l'opzione estendibile ha origine un'indicazione di ricezione per il pacchetto e inoltra il percorso dei dati in uscita.

    Nota Se il mirroring delle porte è abilitato su una porta a cui deve essere recapitato il pacchetto, il bordo miniport aggiunge una porta di destinazione ai dati OOB del pacchetto per la porta mirror. Il miniport edge esegue questa operazione indipendentemente dal fatto che un'estensione di inoltro sia installata e abilitata nello stack di driver del commutatore estendibile. Il bordo miniport aggiunge solo la porta mirror se non è già specificata nella matrice di porte di destinazione per il pacchetto.

  2. Se un'estensione di inoltro non è abilitata, l'opzione estendibile determina le porte di destinazione per il pacchetto e aggiunge queste porte di destinazione ai dati OOB del pacchetto prima di inoltrare il pacchetto verso l'alto il percorso dati in uscita.

  3. In NDIS 6.40 e versioni successive, il componente HNV esegue qualsiasi incapsulamento NVGRE o decapsulation dopo l'ingresso e prima dell'uscita, in modo che l'estensione di inoltro possa visualizzare il pacchetto in formato incapsulato e decapsulato. Ad esempio, se il pacchetto è arrivato da una scheda di rete esterna ed è destinato a una macchina virtuale interna, l'estensione di inoltro ottiene il pacchetto incapsulato in ingresso e il pacchetto decapsulato in uscita.

    Nota Nel pacchetto incapsulato, l'indirizzo nell'intestazione del pacchetto è un indirizzo dello spazio dell'indirizzo del provider (PA). Nel pacchetto decapsulato si tratta di un indirizzo di spazio dell'indirizzo del cliente (CA).

    1. Se il pacchetto è un pacchetto NVGRE arrivato da una scheda di rete esterna, il componente Hyper-V Network Virtualization (HNV) del commutatore estendibile esegue il decapsulation NVGRE nel pacchetto. Il componente HNV determina le destinazioni per il pacchetto in base ai criteri HNV e quindi il commutatore estendibile inoltra il percorso dei dati in uscita.

    2. Se il pacchetto è arrivato da una macchina virtuale interna, il componente HNV eseguirà l'incapsulamento NVGRE nel pacchetto se i criteri HNV sono impostati per il pacchetto. Il componente HNV determina le destinazioni per il pacchetto in base ai criteri HNV e quindi il commutatore estendibile inoltra il percorso dei dati in uscita.

    3. In caso contrario, l'estensione di inoltro inoltra il pacchetto verso l'alto il percorso dati in uscita.

  4. In NDIS 6.30, se è abilitata un'estensione di inoltro, il pacchetto deve inoltrare il percorso dei dati in uscita.

Percorso dati in uscita

  1. Un'estensione ottiene un pacchetto dal percorso dati in uscita quando viene chiamata la relativa funzione FilterReceiveNetBufferLists . L'estensione inoltra il pacchetto alle estensioni overlying nel percorso dati in uscita chiamando NdisFIndicateReceiveNetBufferLists. Il filtro e l'inoltro delle estensioni possono anche eliminare il pacchetto dal percorso dati in uscita chiamando NdisFReturnNetBufferLists.

  2. Quando l'estensione di inoltro ottiene un pacchetto nel percorso dati in uscita, può esaminare le informazioni sulla porta di destinazione del pacchetto nei dati OOB.

    Nota L'estensione ottiene queste informazioni dai dati OOB chiamando GetNetBufferListDestinations.

In base ai criteri standard o personalizzati per il commutatore o la porta, l'estensione può escludere il recapito del pacchetto a una o più porte di destinazione contenute nei dati OOB.

  1. In NDIS 6.40 (Windows Server 2012 R2) e versioni successive, dopo l'estensione di inoltro, ma prima dell'estensione di filtro e acquisizione nel percorso dati in uscita, l'opzione estendibile applica i criteri in uscita predefiniti al pacchetto. Questi criteri possono includere la modalità trunk, la modalità di monitoraggio, gli ACL in uscita e le proprietà QoS (Quality of Service).

  2. Quando si filtrano le estensioni, si ottiene un pacchetto nel percorso dati in uscita, è possibile esaminare le informazioni sulla porta di destinazione del pacchetto nei dati OOB. In base ai criteri di commutazione o porta personalizzati, l'estensione può escludere il recapito del pacchetto a una o più porte di destinazione contenute nei dati OOB.

    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 o traffico di pacchetti.

  3. Quando si acquisiscono estensioni, si ottengono pacchetti nel percorso dati in uscita, è possibile esaminare i dati dei pacchetti. Tuttavia, se l'estensione di acquisizione deve avere origine pacchetti per segnalare le condizioni del traffico a un'applicazione di monitoraggio remoto, deve avere origine questo traffico di pacchetti chiamando NdisFSendNetBufferLists per avviare un'operazione di invio sul percorso dati in ingresso.

  4. Quando il pacchetto arriva al bordo del protocollo overlying del commutatore estendibile, l'interfaccia del commutatore estendibile inoltra il pacchetto a tutte le porte di destinazione specificate.

  5. Una volta inoltrato il pacchetto, l'interfaccia completa il pacchetto nello stesso percorso inverso. Innanzitutto, l'interfaccia chiama la funzione FilterReturnNetBufferLists dell'estensione per completare i pacchetti inoltrati nel percorso dati in uscita. L'interfaccia chiama quindi la funzione FilterSendNetBufferListsComplete dell'estensione per completare i pacchetti inoltrati nel percorso dati in ingresso.

    Quando il pacchetto viene completato sia nel percorso dati in uscita che in ingresso, l'estensione esegue le operazioni di pulizia e post-elaborazione dei pacchetti necessarie.