Usando a Filtragem de Comutador Virtual

Visão geral da Filtragem de Comutador Virtual

Há suporte para a Filtragem de Comutador Virtual em Windows 8 e versões posteriores do Windows.

Esse recurso WFP permite a filtragem em campos do cabeçalho MAC, cabeçalho IP e portas de protocolo superior, bem como campos específicos do comutador virtual, como porta virtual (VPort) e identificador de máquina virtual (ID da VM). Essas camadas são invocadas por pacote para todos os pacotes que atravessam o comutador virtual. Essas camadas são acessadas a partir de um filtro de extensão de comutador virtual— um tipo de driver LWF (filtro leve NDIS).

Um driver de texto explicativo chama a função FwpsvSwitchEventsSubscribe0 para registrar pontos de entrada de retorno de chamada para eventos de camada de comutador virtual.

Os pontos de entrada para as funções de notificação de retorno de chamada são especificados em uma estrutura FWPS_VSWITCH_EVENT_DISPATCH_TABLE0 . As funções de retorno de chamada disponíveis incluem:

A enumeração FWPS_VSWITCH_EVENT_TYPE define os valores para o parâmetro eventType das funções de notificação de comutador virtual.

O driver de texto explicativo deve eventualmente chamar FwpsvSwitchEventsUnsubscribe0 para liberar os recursos do sistema.

Se um driver de texto explicativo retornar STATUS_PENDING de uma função de notificação WFP, o WFP retornará STATUS_PENDING para o manipulador de solicitação OID. O driver de texto explicativo deve chamar a função FwpsvSwitchNotifyComplete0 para concluir a operação pendente. Após a chamada FwpsvSwitchNotifyComplete0 , o WFP chama a função NdisFOidRequestComplete para concluir o OID para o comutador virtual.

Os retornos de chamada não devem adicionar ou excluir filtros WFP de forma síncrona no contexto das funções de notificação. Além disso, se a função de notificação permitir que o retorno de chamada retorne STATUS_PENDING e o texto explicativo retornar STATUS_PENDING, o texto explicativo não deverá adicionar ou excluir filtros WFP antes de concluir a notificação.

Camada e campos de filtro do comutador virtual WFP

Os identificadores de camada de filtragem em tempo de execução para filtragem de comutador virtual incluem:

  • FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
  • FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
  • FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V4
  • FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V6
  • FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V4
  • FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V6

Os Identificadores de Campo de Dados para filtragem de comutador virtual incluem:

Diretrizes para gravadores de texto explicativo de comutador virtual WFP

Tráfego da porta 0

Para textos explicativos de comutador virtual WFP, o tráfego da porta 0 (a ID da porta padrão) é confiável e não deve ser filtrado. Isso ocorre porque, geralmente, o tráfego sobre a porta 0 se origina de outras extensões na pilha do driver e, portanto, é tratado pelo caminho de dados como privilegiado e confiável. As extensões de comutador virtual usarão com moderação a porta 0 para situações como a origem de um pacote de controle, que não deve ser filtrado e rejeitado por extensões subjacentes. Para obter mais informações sobre a mofificação da porta de origem extensível do Hyper-V, consulte Modificando os dados extensíveis da porta de origem do comutador extensível de um pacote.

Regras de correspondência de texto explicativo

Ao definir uma regra de correspondência para filtragem, os textos explicativos de comutador virtual não devem usar o endereço MAC como base para comparação. Os endereços MAC podem ser alterados em runtime e algumas portas podem gerar tráfego de vários endereços MAC. Em vez disso, os textos explicativos devem usar uma regra de correspondência mais durável, como a ID da NIC, que não será alterada.

IOV (Virtualização de E/S) e Coexistência WFP

O WFP não pode ser habilitado em um comutador IOV e é bloqueado pelo sistema operacional se for feita uma tentativa de habilitá-lo.

Habilitar ou desabilitar o WFP

Os instaladores para textos explicativos de comutador virtual WFP não devem modificar o estado habilitado para extensão WFP; ou seja, eles não devem habilitar ou desabilitar o próprio WFP.