Usar a Filtragem de Comutador Virtual
Visão geral da Filtragem de Comutador Virtual
Há suporte à Filtragem de Comutador Virtual no Windows 8 e em versões posteriores do Windows.
Esse recurso WFP permite a filtragem em campos do cabeçalho MAC, cabeçalho IP e portas de protocolo superiores, 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:
- FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0
- FWPS_VSWITCH_INTERFACE_EVENT_CALLBACK0
- FWPS_VSWITCH_LIFETIME_EVENT_CALLBACK0
- FWPS_VSWITCH_POLICY_EVENT_CALLBACK0
- FWPS_VSWITCH_PORT_EVENT_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0
A enumeração FWPS_VSWITCH_EVENT_TYPE define os valores do parâmetro eventType das funções de notificação do comutador virtual.
O driver de texto explicativo deve chamar FwpsvSwitchEventsUnsubscribe0 para liberar os recursos do sistema.
Se um driver de texto explicativo retornar STATUS_PENDING de uma função de notificação do WFP, o WFP retornará STATUS_PENDING ao manipulador de solicitações do 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 do comutador virtual.
Os retornos de chamada não devem adicionar nem 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 nem excluir filtros WFP antes de concluir a notificação.
Camada e campos de filtro do comutador virtual WFP
Os Identificadores de Camada de Filtragem de Runtime 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:
- FWPS_FIELDS_EGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V6
- FWPS_FIELDS_INGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V6
Diretrizes para Gravadores de Texto Explicativo do Comutador Virtual WFP
Tráfego da porta 0
Para textos explicativos do 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 pela porta 0 se origina de outras extensões na pilha de drivers e, portanto, é tratado pelo caminho de dados como privilegiado e confiável. As extensões de comutador virtual usam 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 nenhuma extensão subjacente. Para obter mais informações sobre a modificação da porta de origem do comutador extensível do Hyper-V, consulte Modificar os dados 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 do comutador virtual não devem usar o endereço MAC como base de 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.
Virtualização de E/S (IOV) e coexistência de WFP
O WFP não poderá ser habilitado em um comutador IOV e será bloqueado pelo sistema operacional se for feita uma tentativa de habilitá-lo.
Habilitar ou desabilitar o WFP
Os instaladores de textos explicativos do comutador virtual WFP não devem modificar o estado habilitado da extensão WFP, ou seja, eles não devem habilitar nem desabilitar o próprio WFP.