Introducción a los adaptadores de red de conmutador extensible de Hyper-V

El conmutador extensible de Hyper-V admite conexiones de varios tipos de adaptadores de red virtuales o físicos. La conexión a estos tipos de adaptadores de red se realiza a través de un puerto de conmutador extensible. Los puertos se crean antes de que se realice una conexión de adaptador de red virtual y se eliminen después de que se descomponga la conexión del adaptador de red.

Por ejemplo, cuando se inicia una partición secundaria de Hyper-V, la interfaz de conmutador extensible crea un puerto antes de que el adaptador de red de la máquina virtual (VM) se exponga en el sistema operativo invitado. Una vez expuesto y enumerado el adaptador de red de la máquina virtual, la interfaz de conmutador extensible crea una conexión de red entre el adaptador de red de la máquina virtual y el puerto de conmutador extensible. Si se detiene la partición secundaria, la interfaz de conmutador extensible elimina primero la conexión de red y, a continuación, elimina el puerto de conmutador extensible.

El conmutador extensible de Hyper-V admite conexiones de los siguientes tipos de adaptadores de red virtual:

Adaptadores de red externos
Se trata de un adaptador de red de conmutador extensible que se expone en el sistema operativo de administración que se ejecuta en la partición primaria de Hyper-V. Cada conmutador extensible solo admite una conexión de adaptador de red externa.

El adaptador de red externo proporciona una conexión a la interfaz de red física que está disponible en el host. Se puede acceder al adaptador de red externo mediante la partición primaria de Hyper-V y todas las particiones secundarias.

Para obtener más información sobre este tipo de adaptador de red, consulte Adaptadores de red externos.

Adaptadores de red internos
Se trata de un adaptador de red de conmutador extensible que se expone en el sistema operativo de administración que se ejecuta en la partición primaria de Hyper-V. Cada conmutador extensible solo admite una conexión de adaptador de red interna.

El adaptador de red interno proporciona acceso a un conmutador extensible para los procesos que se ejecutan en el sistema operativo de administración. Esto permite que estos procesos envíen o reciban paquetes a través del conmutador extensible.

Para obtener más información sobre este tipo de adaptador de red, consulte Adaptadores de red internos.

Adaptadores de red de máquina virtual (VM)
Se trata de un adaptador de red de conmutador extensible que se expone en el sistema operativo invitado que se ejecuta en la partición secundaria de Hyper-V.

Nota En Hyper-V, una partición secundaria también se conoce como máquina virtual.

El adaptador de red de máquina virtual admite los siguientes tipos de virtualización:

  • El adaptador de red de máquina virtual podría ser una virtualización sintética de un adaptador de red (adaptador de red sintético). En este caso, el cliente de servicio virtual de red (NetVSC) que se ejecuta en la máquina virtual expone este adaptador de red virtual. NetVSC reenvía paquetes hacia y desde el puerto de conmutador extensible a través del bus de máquina virtual (VMBus).

  • El adaptador de red de máquina virtual podría ser una virtualización emulada de un adaptador de red físico (adaptador de red emulado). En este caso, el adaptador de red de la máquina virtual imita un adaptador de red Intel y usa la emulación de hardware para reenviar paquetes hacia y desde el puerto de conmutador extensible.

Para obtener más información sobre este tipo de adaptador de red, consulte Adaptadores de red de máquina virtual.

Las conexiones del adaptador de red de conmutador extensible se crean, actualizan y eliminan a través de las siguientes solicitudes de OID de conmutador extensible:

OID_SWITCH_NIC_CREATE
El borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_CREATE para notificar a las extensiones de conmutador extensible sobre la creación de una conexión de adaptador de red a un puerto de conmutador extensible. El puerto debe haberse creado previamente a través de una solicitud de conjunto de OID de OID_SWITCH_PORT_CREATE.

La solicitud de OID_SWITCH_NIC_CREATE solo notifica a la extensión que se está produciendo una nueva conexión de adaptador de red de conmutador extensible y que el tráfico de paquetes puede empezar a producirse pronto a través del puerto especificado.

La extensión puede vetar la notificación de creación devolviendo STATUS_DATA_NOT_ACCEPTED para la solicitud OID. Por ejemplo, si una extensión no puede satisfacer sus directivas configuradas en el puerto que se usa para la conexión del adaptador de red, la extensión debe vetar la notificación de creación.

Si la extensión acepta la notificación de creación, debe reenviar la solicitud OID a la pila de controladores de conmutador extensible. La extensión supervisa el estado de finalización de esta solicitud de OID para determinar si las extensiones subyacentes han vetado la notificación de creación.

Cuando se crea la conexión del adaptador de red, se le asigna un valor de NDIS_SWITCH_NIC_INDEX. Este valor de índice identifica la conexión del adaptador de red en un puerto de conmutador extensible. A los adaptadores de red externos, internos y de máquina virtual se les asigna un valor de NDIS_SWITCH_NIC_INDEX de NDIS_SWITCH_DEFAULT_NIC_INDEX. A cada adaptador de red físico o virtual enlazado al adaptador de red externo se le asigna un valor de NDIS_SWITCH_NIC_INDEX de la siguiente manera:

  • Si el adaptador de red físico o virtual está enlazado directamente al adaptador de red externo, se le asigna un valor de NDIS_SWITCH_NIC_INDEX de uno.

  • Si el adaptador de red físico forma parte de un equipo de conmutadores extensibles, se le asigna un valor de NDIS_SWITCH_NIC_INDEX mayor o igual que uno. Un equipo de conmutador extensible es una configuración en la que un equipo de uno o varios adaptadores de red físicos están enlazados al adaptador de red externo de conmutador extensible.

Para obtener más información sobre las distintas configuraciones en las que los adaptadores de red físicos se pueden enlazar al adaptador de red externo, consulte Tipos de configuraciones de adaptadores de red físicos.

Para obtener más información sobre los valores de NDIS_SWITCH_NIC_INDEX, vea Valores de índice del adaptador de red.

Nota La extensión no puede generar ni reenviar paquetes a través de la conexión del adaptador de red hasta que el borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_CONNECT.

OID_SWITCH_NIC_CONNECT
El borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_CONNECT para notificar a las extensiones de conmutador extensible que una conexión de adaptador de red de conmutador extensible está totalmente operativa.

La extensión siempre debe reenviar esta solicitud de conjunto de OID a la pila extensible del controlador del conmutador. La extensión no debe producir un error en la solicitud.

Una vez completada la solicitud OID con NDIS_STATUS_SUCCESS, la conexión del adaptador de red y el puerto de conmutador extensible están totalmente operativos. Cuando la conexión del adaptador de red está en este estado, la extensión puede hacer lo siguiente:

  • Genere o reenvíe el tráfico de paquetes a la conexión del adaptador de red del puerto.

  • Emita identificadores OID de conmutador extensible o indicaciones de estado que usen el puerto como puerto de origen.

  • Llame a ReferenceSwitchNic para incrementar un contador de referencia para la conexión del adaptador de red. La interfaz de conmutador extensible no anulará una conexión de adaptador de red mientras que el contador de referencia tiene un valor distinto de cero.

OID_SWITCH_NIC_UPDATED
El borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_UPDATED para notificar a las extensiones de conmutador extensible que se han actualizado los parámetros de un adaptador de red de conmutador extensible. El OID solo se emitirá para las NIC que ya se han conectado y que aún no han iniciado el proceso de desconexión. Estos cambios de configuración en tiempo de ejecución pueden incluir NicFriendlyName, MTU, NetCfgInstanceId, PermanentMacAddress, VMMacAddress, CurrentMacAddress y VFAssigned.

La extensión siempre debe reenviar esta solicitud de conjunto de OID a la pila extensible del controlador del conmutador. La extensión no debe producir un error en la solicitud.

OID_SWITCH_NIC_DISCONNECT
El borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_DISCONNECT para notificar a las extensiones de conmutador extensible que se está eliminando una conexión de adaptador de red de conmutador extensible. Una vez que la conexión se ha roto por completo, el borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_DELETE.

La extensión siempre debe reenviar esta solicitud de conjunto de OID a la pila extensible del controlador del conmutador. La extensión no debe producir un error en la solicitud.

Una vez que la extensión reenvía esta solicitud de OID, ya no puede generar ni reenviar paquetes al puerto en el que se va a destruir la conexión del adaptador de red. Además, la extensión ya no puede llamar a ReferenceSwitchNic para la conexión del adaptador de red.

OID_SWITCH_NIC_DELETE
El borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_NIC_DELETE para notificar a las extensiones de conmutador extensible que se ha destruido y eliminado una conexión de adaptador de red de conmutador extensible. Esta solicitud de OID solo se emite para las conexiones de red para las que se emitió anteriormente una solicitud de conjunto de OID de OID_SWITCH_NIC_DISCONNECT .

Nota La extensión siempre debe reenviar esta solicitud de conjunto de OID a la pila extensible del controlador del conmutador. La extensión no debe producir un error en la solicitud.

Una vez completada esta solicitud de OID, el borde del protocolo del conmutador extensible emite una solicitud de conjunto de OID de OID_SWITCH_PORT_TEARDOWN para iniciar el proceso de eliminación del puerto que se usó para la conexión del adaptador de red.

La extensión siempre debe reenviar esta solicitud de conjunto de OID a la pila extensible del controlador del conmutador. La extensión no debe producir un error en la solicitud.

La interfaz de conmutador extensible mantiene un contador de referencia para cada conexión de adaptador de red que se ha creado. No se eliminará una conexión de adaptador de red si su contador de referencia tiene un valor distinto de cero. La interfaz proporciona las siguientes funciones de controlador para incrementar o disminuir el contador de referencia de una conexión de adaptador de red de conmutador extensible:

ReferenceSwitchNic
La extensión de conmutador extensible llama a esta función para incrementar el contador de referencia de una conexión de adaptador de red. Aunque el contador de referencia tiene un valor distinto de cero, la interfaz de conmutador extensible no elimina la conexión del adaptador de red.

La extensión debe llamar a ReferenceSwitchNic antes de realizar las siguientes operaciones:

Nota La extensión no debe llamar a ReferenceSwitchNic para una conexión de adaptador de red después de recibir una solicitud de conjunto de OID de OID_SWITCH_NIC_DISCONNECT para esa conexión.

DereferenceSwitchNic
La extensión de conmutador extensible llama a esta función para disminuir el contador de referencia de un puerto.

Si la extensión llama a ReferenceSwitchNic, debe llamar a DereferenceSwitchNic después de que se haya completado el OID_SWITCH_NIC_REQUEST o NDIS_STATUS_SWITCH_NIC_STATUS indicación.