Condividi tramite


Panoramica delle porte del commutatore estendibile Hyper-V

Ogni connessione di rete al commutatore estendibile Hyper-V è rappresentata da una porta. L'interfaccia del commutatore estendibile crea e configura una porta prima che venga stabilita una connessione di rete. Dopo l'eliminazione della connessione di rete, l'interfaccia può eliminare la porta o riutilizzarla per un'altra connessione di rete.

A ogni partizione figlio Hyper-V configurata con un'interfaccia di rete viene assegnata una porta sul commutatore estendibile. Quando viene avviata una partizione figlio Hyper-V, l'interfaccia del commutatore estendibile crea una porta prima che la scheda di rete della macchina virtuale (VM) venga esposta all'interno del sistema operativo guest. Dopo aver esposto e inizializzato la scheda di rete della macchina virtuale, l'interfaccia del commutatore estendibile crea una connessione di rete tra la scheda di rete della macchina virtuale e la porta del commutatore estendibile. Se la partizione figlio viene arrestata, l'interfaccia del commutatore estendibile elimina prima la connessione di rete e quindi elimina la porta del commutatore estendibile.

Quando viene creata una porta del commutatore estendibile, viene configurata con un identificatore e un nome univoci. Dopo la creazione, è possibile effettuare il provisioning della porta del commutatore estendibile con criteri che definiscono vari attributi per la gestione del traffico dei pacchetti sulla porta. Ad esempio, i criteri di porta standard possono essere definiti per gli attributi VLAN (Virtual LAN) e le restrizioni di accesso per il traffico delle porte. Inoltre, i fornitori di software indipendenti (ISV) possono definire criteri personalizzati con cui è possibile effettuare il provisioning di singole porte. Per altre informazioni, vedere Criteri di porta.

Le porte del commutatore estendibile sono costituite dai tipi seguenti:

Porte di convalida
Le porte di convalida vengono usate per convalidare e verificare le impostazioni delle porte. Queste porte sono temporanee e vengono create in determinate condizioni.

Ad esempio, quando viene creata o riconfigurata una partizione figlio Hyper-V per l'accesso alla rete, l'interfaccia del commutatore estendibile crea una porta di convalida. L'interfaccia usa questa porta per verificare le impostazioni per la connessione di rete alla scheda di rete della macchina virtuale (VM) della partizione. Al termine della verifica, la porta di convalida viene eliminata e viene creata una porta operativa.

Per altre informazioni, vedere Porte di convalida.

Porte operative
Le porte operative vengono create per ospitare una connessione alla scheda di rete del commutatore estendibile. Quando viene creata una porta operativa, viene assegnato un tipo di porta. Questo tipo di porta è attivo dopo la creazione della porta e prima che venga eliminato. Per le porte assegnate alle partizioni figlio Hyper-V, il tipo di porta operativa rimane attivo mentre la partizione è in esecuzione e operativa.

Per altre informazioni, vedere Porte operative.

Le estensioni del commutatore estendibile ricevono una notifica relativa alla creazione, all'aggiornamento e all'eliminazione delle porte tramite le richieste OID (Extensible Switch Object Identifier) seguenti:

OID_SWITCH_PORT_CREATE
Il bordo del protocollo del commutatore estendibile genera una richiesta di set OID di OID_SWITCH_PORT_CREATE per notificare alle estensioni del commutatore estendibile la creazione di una porta commutatore estendibile.

L'estensione può modificare la notifica di creazione restituendo STATUS_DATA_NOT_ACCEPTED per la richiesta OID. Ad esempio, se un'estensione non può allocare risorse per applicare i criteri configurati sulla porta, l'estensione veta la notifica di creazione.

Se l'estensione accetta la notifica di creazione, deve inoltrare la richiesta OID nello stack del driver dell'opzione estendibile. L'estensione monitora lo stato di completamento di questa richiesta OID per determinare se le estensioni sottostanti hanno veto la notifica di creazione della porta.

Le estensioni non possono inoltrare pacchetti alla porta appena creata fino a quando non viene creata una connessione di rete. Per altre informazioni su questo processo, vedere Schede di rete del commutatore estendibile Hyper-V.

OID_SWITCH_PORT_UPDATED
Il bordo del protocollo del commutatore estendibile invia una richiesta di set OID di OID_SWITCH_PORT_UPDATED per notificare alle estensioni del commutatore estendibile che i parametri di una porta del commutatore estendibile vengono aggiornati. L'OID verrà emesso solo per le porte già create e non è ancora stato avviato il processo di eliminazione/eliminazione. Attualmente solo il campo PortFriendlyName è soggetto all'aggiornamento dopo la creazione.

Il bordo del protocollo del commutatore estendibile invia questa richiesta OID quando la connessione di rete precedente alla porta è stata eliminata e tutte le richieste OID alla porta sono state completate.

Nota Questa richiesta OID può essere eseguita se una connessione alla scheda di rete non è stata effettuata in precedenza alla porta.

L'estensione deve sempre inoltrare questa richiesta impostata dall'OID nello stack di driver del commutatore estendibile. L'estensione non deve avere esito negativo nella richiesta.

OID_SWITCH_PORT_TEARDOWN
Il bordo del protocollo del commutatore estendibile genera una richiesta di set OID di OID_SWITCH_PORT_TEARDOWN per notificare alle estensioni del commutatore estendibile che viene eliminata una porta commutatore estendibile. Il bordo del protocollo del commutatore estendibile invia questa richiesta OID quando la connessione di rete precedente alla porta è stata eliminata e tutte le richieste OID alla porta sono state completate.

Nota Questa richiesta OID può essere eseguita se una connessione alla scheda di rete non è stata effettuata in precedenza alla porta.

L'estensione deve sempre inoltrare questa richiesta impostata dall'OID nello stack di driver del commutatore estendibile. L'estensione non deve avere esito negativo nella richiesta.

Dopo che l'estensione inoltra questa richiesta OID, non può più inviare richieste OID per la porta da eliminare.

OID_SWITCH_PORT_DELETE
Il bordo del protocollo del commutatore estendibile genera una richiesta di set OID di OID_SWITCH_PORT_DELETE per notificare alle estensioni del commutatore estendibile che è stata eliminata una porta del commutatore estendibile. Il bordo del protocollo dell'commutatore estendibile invia questa richiesta OID dopo che emette la richiesta di OID_SWITCH_PORT_TEARDOWN e le richieste OID destinate alla porta sono state completate.

L'estensione deve sempre inoltrare questa richiesta impostata dall'OID nello stack di driver del commutatore estendibile. L'estensione non deve avere esito negativo nella richiesta.

A tutte le porte del commutatore estendibili create per le connessioni di rete viene assegnato un identificatore maggiore di NDIS_SWITCH_DEFAULT_PORT_ID. L'identificatore NDIS_SWITCH_DEFAULT_PORT_ID è riservato e usato nei modi seguenti:

  • L'identificatore della porta di origine per un pacchetto viene archiviato nel contesto di inoltro fuori banda (OOB) del pacchetto associato alla relativa struttura di NET_BUFFER_LIST . Un identificatore di porta di origine di NDIS_SWITCH_DEFAULT_PORT_ID specifica che il pacchetto ha avuto origine dall'estensione del commutatore estendibile e non da una porta del commutatore estendibile. Un pacchetto con un identificatore di porta di origine di NDIS_SWITCH_DEFAULT_PORT_ID è attendibile e ignora i criteri di porta del commutatore estendibile, ad esempio elenchi di controllo di accesso (ACL) e qualità del servizio (QoS).

    L'estensione potrebbe volere che il pacchetto venga considerato come se provenisse da una determinata porta. In questo modo i criteri per tale porta devono essere applicati al pacchetto. L'estensione chiama SetNetBufferListSource per modificare la porta di origine per il pacchetto.

    Tuttavia, possono verificarsi situazioni in cui l'estensione potrebbe voler assegnare l'identificatore della porta di origine del pacchetto a NDIS_SWITCH_DEFAULT_PORT_ID. Ad esempio, l'estensione può voler impostare l'identificatore della porta di origine su NDIS_SWITCH_DEFAULT_PORT_ID per i pacchetti di controllo proprietari inviati a un dispositivo nella rete esterna.

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

  • Le richieste OID (Object Identifier) di OID_SWITCH_NIC_REQUEST vengono inviate dall'interfaccia del commutatore estendibile per incapsulare le richieste OID inviate alla scheda di rete esterna del commutatore estendibile. Ad esempio, le richieste OID di offload hardware vengono incapsulate dall'interfaccia prima che vengano rilasciate nello stack di driver del commutatore estendibile.

    Un'estensione può anche inviare richieste OID incapsulate per inoltrare le richieste verso il basso il percorso di controllo del commutatore estendibile. In questo modo le estensioni possono eseguire query o configurare le funzionalità di una scheda di rete fisica sottostante.

    Il membro InformationBuffer della struttura NDIS_OID_REQUEST per questa richiesta OID contiene un puntatore a una struttura NDIS_SWITCH_NIC_OID_REQUEST . Se il membro SourcePortId è impostato su NDIS_SWITCH_DEFAULT_PORT_ID, specifica che la richiesta OID è stata originata dall'interfaccia del commutatore estendibile. Se DestinationPortId è impostato su NDIS_SWITCH_DEFAULT_PORT_ID, specifica che la richiesta OID è destinata all'elaborazione da parte di un'estensione nello stack di driver del commutatore estendibile.

    Per altre informazioni sul percorso di controllo per le richieste OID, vedere Percorso di controllo del commutatore estendibile Hyper-V per le richieste OID.

  • Le indicazioni di stato NDIS di NDIS_STATUS_SWITCH_NIC_STATUS vengono rilasciate dal bordo miniport del commutatore estendibile per incapsulare un'indicazione di stato dalla scheda di rete esterna del commutatore estendibile.

    Un'estensione può anche emettere indicazioni di stato NDIS incapsulate per inoltrare indicazioni sul percorso di controllo del commutatore estendibile. Ciò consente alle estensioni di modificare le funzionalità segnalate di una scheda di rete fisica sottostante.

    Il membro StatusBuffer della struttura NDIS_STATUS_INDICATION per questa indicazione contiene un puntatore a una struttura NDIS_SWITCH_NIC_STATUS_INDICATION . Se il membro SourcePortId è impostato su NDIS_SWITCH_DEFAULT_PORT_ID, specifica che l'indicazione dello stato è stata originata dall'interfaccia del commutatore estendibile. Se DestinationPortId è impostato su NDIS_SWITCH_DEFAULT_PORT_ID, specifica che la richiesta OID è destinata all'elaborazione da parte di un'estensione nello stack di driver del commutatore estendibile.

    Per altre informazioni sul percorso di controllo per le indicazioni di stato NDIS, vedere Percorso di controllo del commutatore estendibile Hyper-V per indicazioni di stato NDIS.

L'interfaccia del commutatore estendibile gestisce un contatore di riferimento per ogni porta creata. Una porta non verrà eliminata se il contatore dei riferimenti ha un valore diverso da zero. L'interfaccia fornisce le funzioni del gestore seguenti per incrementare o decrementare i contatori di riferimento di una porta del commutatore estendibile:

ReferenceSwitchPort
L'estensione del commutatore estendibile chiama questa funzione per incrementare il contatore di riferimento di una porta. Anche se il contatore di riferimento ha un valore diverso da zero, il bordo del protocollo dell'opzione estendibile non emetterà una richiesta di set di identificatori di oggetto (OID) di OID_SWITCH_PORT_DELETE per eliminare la porta del commutatore estendibile.

L'estensione deve chiamare ReferenceSwitchPort prima di eseguire qualsiasi operazione che richiede che la porta sia in uno stato attivo. Ad esempio, l'estensione deve chiamare ReferenceSwitchPort prima di eseguire una richiesta di metodo OID di OID_SWITCH_PORT_PROPERTY_ENUM.

Nota L'estensione non deve chiamare ReferenceSwitchPort per una porta dopo che riceve una richiesta di set OID di OID_SWITCH_PORT_TEARDOWN per tale porta.

DereferenceSwitchPort
L'estensione del commutatore estendibile chiama questa funzione per decrementare il contatore di riferimento di una porta.

L'estensione deve chiamare DereferenceSwitchPort dopo il completamento dell'operazione sulla porta. Ad esempio, se l'estensione denominata ReferenceSwitchPort prima di eseguire una richiesta di OID_SWITCH_PORT_PROPERTY_ENUM , l'estensione deve chiamare DereferenceSwitchPort dopo il completamento della richiesta OID.

Nota Le porte NDIS e le porte switch estendibili sono oggetti diversi. I pacchetti che si spostano attraverso il percorso dati del commutatore estendibile vengono sempre assegnati al numero di porta NDIS di NDIS_DEFAULT_PORT_NUMBER. Tuttavia, il numero di porta del commutatore estendibile di origine e di destinazione del pacchetto può essere un valore di NDIS_SWITCH_DEFAULT_PORT_ID o superiore. Per altre informazioni, vedere Percorso dati estendibile Hyper-V.