Filtrado de extensiones
Una extensión de filtrado extensible de conmutadores de Hyper-V puede inspeccionar, modificar e insertar paquetes en la ruta de acceso de datos de conmutador extensible. En función de la configuración extensible del puerto de conmutador y de la directiva de conmutador, la extensión puede quitar un paquete o excluir su entrega a uno o varios puertos de destino.
Las extensiones de filtrado se invocan después de capturar extensiones en la ruta de acceso de datos de entrada y después de las extensiones de reenvío en la ruta de acceso de datos de salida. Para obtener más información sobre estas rutas de acceso de datos, consulte Ruta de acceso de datos de conmutador extensible de Hyper-V.
Una extensión de filtrado puede hacer lo siguiente con los paquetes que se obtuvieron en la ruta de acceso de datos de entrada:
Filtre el tráfico de paquetes y aplique directivas personalizadas de puerto o conmutador para la entrega de paquetes a través del conmutador extensible. Cuando la extensión de filtrado filtra los paquetes en la ruta de acceso de datos de entrada, puede aplicar reglas de filtrado basadas solo en el puerto de origen y la conexión de adaptador de red desde la que se originó el paquete. Esta información se almacena en los datos fuera de banda (OOB) de la estructura NET_BUFFER_LIST de un paquete y se puede obtener mediante la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .
Nota Los paquetes obtenidos en la ruta de acceso de datos de entrada no contienen puertos de destino. El filtrado de paquetes en función de los puertos de destino solo se puede realizar en los paquetes obtenidos en la ruta de acceso de datos de salida.
Las directivas personalizadas se definen mediante el proveedor de software independiente (ISV). La configuración de propiedad de este tipo de directiva se administra a través del nivel de administración de WMI de Hyper-V. La extensión de filtrado se configura con estos valores de propiedad a través de una solicitud de identificador de objeto (OID) de OID_SWITCH_PORT_PROPERTY_UPDATE y OID_SWITCH_PROPERTY_UPDATE.
Para obtener más información sobre las directivas de conmutador o puerto extensible personalizadas, consulte Administración de directivas de conmutador extensible de Hyper-V.
Nota Solo las extensiones de reenvío pueden aplicar directivas de puerto estándar para la entrega de paquetes a través del conmutador extensible.
Inserte paquetes nuevos, modificados o clonados en la ruta de acceso de datos de entrada.
Para obtener más información, vea Operaciones de envío y recepción de conmutador extensible de Hyper-V.
Una extensión de filtrado puede hacer lo siguiente con los paquetes que se obtuvieron en la ruta de acceso de datos de salida:
Filtre el tráfico de paquetes y aplique directivas personalizadas de puerto o conmutador para la entrega de paquetes a través del conmutador extensible. Cuando la extensión de filtrado filtra los paquetes en la ruta de acceso de datos de salida, puede aplicar reglas de filtrado basadas en los puertos de origen o destino de un paquete. Los datos del puerto de destino se almacenan en los datos OOB de la estructura NET_BUFFER_LIST de un paquete. Las extensiones obtienen esta información llamando a la función GetNetBufferListDestinations .
Excluya la entrega del paquete a uno o varios puertos de destino de conmutador extensible. Esto permite que la extensión de filtrado excluya la entrega de un paquete a puertos de conmutador extensibles.
Para obtener más información sobre cómo excluir la entrega de paquetes a puertos de conmutador extensibles, consulte Exclusión de la entrega de paquetes a puertos de destino de conmutador extensible.
Administre el flujo de tráfico a uno o varios puertos de destino al posponer el reenvío de paquetes a la ruta de acceso de datos de salida.
Por ejemplo, una extensión de filtrado que admita la funcionalidad de calidad de servicio (QoS) puede querer llamar inmediatamente a NdisFSendNetBufferLists para reenviar paquetes especificados con un valor de prioridad más alto. Según el flujo de tráfico, es posible que la extensión quiera reenviar paquetes con un valor de prioridad inferior en un momento posterior.
Modifique los datos del paquete. Si la extensión de filtrado necesita modificar los datos de un paquete, primero debe clonar el paquete sin conservar los destinos de puerto. A continuación, la extensión debe insertar el paquete modificado en la ruta de acceso de datos de entrada. Esto permite que las extensiones subyacentes apliquen directivas en el paquete modificado y la extensión de reenvío puede agregar destinos de puerto.
Para obtener más información, consulte Clonación del tráfico de paquetes.
Además de inspeccionar las solicitudes de OID y las indicaciones de estado de NDIS, una extensión de filtrado puede hacer lo siguiente:
Vetar la creación de un puerto de conmutador extensible o una conexión de adaptador de red devolviendo STATUS_DATA_NOT_ACCEPTED para los OID de conmutador extensible aplicables. Por ejemplo, la extensión de filtrado puede vetar una solicitud de creación de puertos devolviendo STATUS_DATA_NOT_ACCEPTED cuando el controlador recibe una solicitud de conjunto de OID de OID_SWITCH_PORT_CREATE.
Nota Las extensiones de filtrado no crean ni eliminan puertos ni conexiones de adaptador de red. El borde del protocolo del conmutador extensible emite identificadores de interfaz de red para notificar a los controladores de filtro subyacentes la creación o eliminación de puertos o conexiones de adaptador de red. Para obtener más información, consulte Puerto de conmutador extensible de Hyper-V y Estados del adaptador de red.
Vetar la adición o actualización de una directiva de conmutador o puerto extensible devolviendo STATUS_DATA_NOT_ACCEPTED para los OID de conmutador extensible aplicables. Por ejemplo, la extensión de filtrado puede vetar la adición de una directiva de puerto devolviendo STATUS_DATA_NOT_ACCEPTED cuando la extensión recibe una solicitud de conjunto de OID de OID_SWITCH_PORT_PROPERTY_ADD.
Para obtener más información sobre las directivas de conmutador extensible, consulte Administración de directivas de conmutador extensible de Hyper-V.
Una extensión de filtrado tiene los siguientes requisitos:
Una extensión de filtrado debe desarrollarse como un controlador de filtro NDIS que admita la interfaz de conmutador extensible.
Para obtener más información sobre los controladores de filtro, consulte Controladores de filtro NDIS.
Para obtener más información sobre cómo escribir una extensión de filtrado, consulte Escritura de extensiones de conmutador extensible de Hyper-V.
Nota La Plataforma de filtrado de Windows (PMA) proporciona una extensión de filtrado extensible de conmutador (Wfplwfs.sys ). Esta extensión permite que los filtros o controladores de llamada de PMA intercepten paquetes a lo largo de la ruta de acceso de datos de conmutador extensible de Hyper-V. Esto permite que los filtros o controladores de llamada realicen la inspección o modificación de paquetes mediante las funciones de sistema y administración del PMA. Para obtener información general sobre EL PMA, consulta Plataforma de filtrado de Windows.
El archivo INF de una extensión de filtrado debe instalar el controlador como controlador de filtro modificador. Los controladores de filtro de supervisión NDIS no se pueden instalar en la pila de controladores de conmutador extensible.
Para obtener más información sobre cómo modificar controladores de filtro, vea Tipos de controladores de filtro.
Para obtener más información sobre los requisitos inf para modificar los controladores de filtro, consulte Configuración de un archivo INF para un controlador de filtro de modificación.
El valor FilterClass del archivo INF del controlador de filtro debe establecerse en ms_switch_filter. Para obtener más información, vea Inf Requirements for Hyper-V Extensible Switch Extensions.
Cualquier número de extensiones de filtrado se puede enlazar y habilitar en la pila de controladores para cada instancia de un conmutador extensible. De forma predeterminada, se ordenan varias extensiones de filtrado en función de cuándo se instalaron. Por ejemplo, varias extensiones de filtrado están superpuestas en la pila de controladores de conmutador extensible con la extensión instalada más recientemente por encima de otras extensiones de filtrado de la pila.
Una vez enlazados y habilitados en una instancia de conmutador extensible, la capa de extensiones de filtrado en la pila de controladores de conmutador extensible se puede reordenar. Para obtener más información, vea Reordenar extensiones de conmutador extensible de Hyper-V.