Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como os pacotes se movem de ou para portas de comutador extensíveis por meio do caminho de dados de comutador extensível Hyper-V.
Observação Na interface de comutador extensível, os drivers de filtro NDIS são conhecidos como extensões de comutador extensíveis e a pilha de drivers é conhecida como pilha de drivers de comutador extensível. Para obter mais informações sobre as extensões, consulte Hyper-V Extensible Switch Extensions.
Nota Esta página pressupõe que você já esteja familiarizado com as informações apresentadas em Visão Geral do Comutador Extensível Hyper-V e Encaminhamento Híbrido.
Todo o tráfego de pacotes que chega ao comutador extensível pelas suas portas segue o mesmo caminho através da pilha de driver do comutador extensível. Por exemplo, o tráfego de pacote recebido da conexão do adaptador de rede externo ou enviado de uma conexão de adaptador de rede de máquina virtual (VM) passa pelo mesmo caminho de dados.
A figura a seguir mostra o caminho de dados de comutador extensível para NDIS 6.40 (Windows Server 2012 R2) e posterior.
A figura a seguir mostra o caminho de dados do switch extensível para o NDIS 6.30 (Windows Server 2012).
Para obter mais informações sobre os componentes da interface de comutador extensível, consulte Hyper-V Arquitetura extensível de comutador.
O caminho de dados de comutador extensível tem as seguintes partes, listadas na ordem em que os pacotes fluem por elas:
- Borda do protocolo sobrejacente
- Caminho de dados de entrada
- Borda do miniporto subjacente
- Caminho de dados de saída
Borda do protocolo sobrejacente
Os pacotes chegam ao switch extensível dos adaptadores de rede conectados às portas do switch. Esses pacotes são inicialmente emitidos como solicitações de envio da borda do protocolo do comutador extensível no caminho de dados de entrada do comutador extensível.
A camada de protocolo do switch extensível prepara os pacotes para a trajetória de dados de entrada. A borda do protocolo aloca uma área de contexto para esses pacotes que contém o contexto de encaminhamento extensível de comutador fora de banda (OOB). Ele popula os dados OOB com informações sobre a porta de origem e a conexão do adaptador de rede da qual o pacote foi entregue ao comutador extensível.
Para obter mais informações sobre o contexto de encaminhamento, consulte Hyper-Vde contexto de encaminhamento extensível de comutador .
No NDIS 6.40 (Windows Server 2012 R2) e posterior, se o pacote for um pacote NVGRE de um adaptador de rede externo, o comutador extensível definirá o sinalizador NativeForwardingRequired nas informações de OOB (fora de banda) do pacote. Para obter mais informações, consulte de Encaminhamento Híbrido.
Se o pacote chegou em uma porta em que o tráfego tem uma sub-rede virtual, o comutador extensível define o membro VirtualSubnetId da estrutura NDIS_NET_BUFFER_LIST_VIRTUAL_SUBNET_INFO para o pacote.
Nota A sub-rede virtual pode ser uma sub-rede HNV ou uma sub-rede virtual de terceiros.
Caminho de dados de entrada
Uma extensão obtém um pacote do caminho de dados de entrada quando sua função FilterSendNetBufferLists é chamada. A extensão encaminha o pacote para extensões subjacentes no caminho de dados de entrada chamando NdisFSendNetBufferLists. As extensões de filtragem e encaminhamento também podem remover o pacote do caminho de dados de entrada chamando NdisFSendNetBufferListsComplete.
Ao capturar extensões para obter pacotes no caminho de dados de entrada, é possível inspecionar os dados do pacote. No entanto, as extensões de captura não devem concluir as solicitações de envio de pacotes no caminho de dados de entrada. Essas extensões devem sempre encaminhar pacotes para extensões subjacentes na pilha de drivers de comutador extensível.
Uma extensão de captura também pode originar pacotes no caminho de dados de entrada. Por exemplo, a extensão pode originar pacotes para relatar condições de tráfego para um aplicativo de monitoramento remoto.
Para obter mais informações sobre como originar pacotes por uma extensão, consulte Origem do Tráfego de Pacotes.
Quando as extensões de filtragem obtêm pacotes no caminho de dados de entrada, elas podem fazer o seguinte:
Solte pacotes com base em políticas de porta ou comutador extensível personalizados.
Para obter mais informações sobre essas políticas, consulte Hyper-V Políticas de Switch Extensível.
Nota Os pacotes obtidos no caminho de dados de entrada não têm portas de destino definidas nos dados OOB do pacote. Como resultado, as extensões de filtragem só devem impor políticas personalizadas com base nos dados do pacote ou na porta de origem do pacote ou na conexão do adaptador de rede.
Clone ou modifique pacotes obtidos da trajetória de dados de entrada.
Insira novos pacotes no caminho de dados de entrada.
No NDIS 6.40 e posteriores, após as extensões de captura e filtragem, mas antes da extensão de encaminhamento no caminho de dados de entrada, o switch extensível executa o seguinte:
Se o pacote for um pacote NVGRE de um adaptador de rede externo, o endereço no cabeçalho do pacote será um endereço do espaço de endereçamento do provedor (PA). O comutador extensível indica isso definindo o sinalizador NativeForwardingRequired nas informações de OOB (fora de banda) do pacote. Para obter mais informações, consulte de Encaminhamento Híbrido.
A opção extensível aplica as políticas de entrada internas ao pacote. Essas políticas podem incluir ACLs (listas de controle de acesso de entrada), DHCP Guard e Roteador Guard.
Se uma extensão de encaminhamento não estiver habilitada na pilha de driver de comutador extensível, a matriz de porta de destino para um pacote será determinada pelo comutador extensível.
Se uma extensão de encaminhamento estiver habilitada, ela deverá fazer o seguinte quando obter pacotes no caminho de dados de entrada:
No NDIS 6.40 e posterior, se o pacote for um pacote NVGRE (consulte Encaminhamento Híbrido), a extensão de encaminhamento não poderá modificar a matriz de porta de destino nos dados OOB do pacote no caminho de dados de entrada. Pode descartar o pacote.
Se o pacote não for um pacote NVGRE, a extensão de encaminhamento deverá adicionar portas de destino à matriz de porta de destino nos dados OOB do pacote.
A extensão de encaminhamento deve descartar pacotes com base em políticas de comutador ou porta extensível, sejam padrão ou personalizadas. Políticas padrão de comutador ou porta incluem propriedades de segurança e LAN virtual (VLAN). Se uma extensão de encaminhamento não estiver habilitada na pilha de drivers do comutador extensivo, o comutador extensivo imporá essas políticas.
Nota Quando a extensão de encaminhamento filtra pacotes no caminho de dados de entrada, ela aplica regras de filtragem com base na porta de origem, bem como nas portas de destino que a extensão atribui ao pacote.
Além disso, a extensão de encaminhamento pode fazer o seguinte:
Clone ou modifique pacotes obtidos do caminho de dados de entrada.
Insira novos pacotes no caminho de dados de entrada.
Borda do miniporto subjacente
Quando o pacote chega à borda do miniporto subjacente do comutador extensível, o comutador extensível aplica suas políticas internas ao pacote. Essas políticas incluem ACLs (listas de controle de acesso) e propriedades de QoS (qualidade do serviço). Se o pacote não for descartado devido a essas políticas, o comutador extensível gera uma indicação de recebimento para o pacote e encaminha o pacote pelo caminho de dados de saída.
Nota Se o espelhamento de porta estiver habilitado em uma porta para a qual o pacote deve ser entregue, a borda do miniporto adicionará uma porta de destino aos dados OOB do pacote para a porta espelho. A extremidade de miniporta faz isso independentemente de haver uma extensão de encaminhamento instalada e habilitada na pilha do driver de comutador extensível. A borda do miniporto só adicionará a porta espelho se ela ainda não estiver especificada na matriz de portas de destino para o pacote.
Se uma extensão de encaminhamento não estiver habilitada, o comutador extensível determinará as portas de destino do pacote e adicionará essas portas de destino aos dados OOB do pacote antes de encaminhar o pacote até o caminho de dados de saída.
No NDIS 6.40 e posteriores, o componente HNV realiza qualquer encapsulamento ou descapsulação NVGRE necessário após a entrada e antes da saída, permitindo que a extensão de encaminhamento visualize o pacote tanto em sua forma encapsulada quanto descapsulada. Por exemplo, se o pacote chegou de um adaptador de rede externo e é destinado a uma VM interna, a extensão de encaminhamento obtém o pacote encapsulado na entrada e o pacote descapsulado na saída.
Nota No pacote encapsulado, o endereço no cabeçalho do pacote é um endereço de espaço de provedor (PA). No pacote descapsulado, é um endereço do espaço de endereço do cliente (CA).
Se o pacote for um pacote NVGRE que chegou de um adaptador de rede externo, o componente HNV (Virtualização de Rede) Hyper-V do comutador extensível executará a descapsulação NVGRE no pacote. O componente HNV determina os destinos do pacote de acordo com as políticas de HNV, e então o comutador extensível encaminha o pacote pelo caminho de dados de saída.
Se o pacote chegou de uma VM interna, o componente HNV executará o encapsulamento NVGRE no pacote se as políticas HNV forem definidas para o pacote. O componente HNV determina os destinos do pacote de acordo com as políticas de HNV e, em seguida, o switch extensível encaminha o pacote até o caminho de dados de saída.
Caso contrário, a extensão de encaminhamento encaminha o pacote pelo trajeto de dados de saída.
No NDIS 6.30, se uma extensão de encaminhamento estiver habilitada, ela deverá encaminhar o pacote até o caminho de dados de saída.
Caminho de dados de saída
Uma extensão obtém um pacote do caminho de dados de saída quando sua função FilterReceiveNetBufferLists é chamada. A extensão encaminha o pacote para extensões sobrepostas no percurso de dados de saída chamando NdisFIndicateReceiveNetBufferLists. As extensões de filtragem e encaminhamento também podem remover o pacote do caminho de dados de saída chamando NdisFReturnNetBufferLists.
Quando a extensão de encaminhamento obtém um pacote no caminho de dados de saída, ela pode inspecionar as informações da porta de destino do pacote nos dados do OOB.
Nota A extensão obtém essas informações dos dados do OOB chamando GetNetBufferListDestinations.
Com base em políticas padrão ou personalizadas de comutador ou porta, a extensão pode excluir a entrega do pacote para uma ou mais portas de destino que estão contidas nos dados do OOB.
No NDIS 6.40 (Windows Server 2012 R2) e posterior, após a extensão de encaminhamento, mas antes das extensões de filtragem e captura no caminho de dados de saída, o comutador extensível aplica as políticas de saída embutidas ao pacote. Essas políticas podem incluir modo de tronco, modo de monitoramento, ACLs de saída e propriedades de QoS (qualidade de serviço).
Quando extensões de filtragem obtêm um pacote no caminho de dados de saída, elas podem inspecionar as informações da porta de destino do pacote nos dados OOB. Com base em políticas personalizadas de comutador ou porta, a extensão pode excluir a entrega do pacote para uma ou mais portas de destino contidas nos dados do OOB.
Se a extensão de filtragem precisar modificar os dados em um pacote, ela deverá primeiro clonar o pacote sem manter os destinos de porta. Em seguida, a extensão deve injetar o pacote modificado no caminho de dados de entrada. Isso permite que as extensões subjacentes imponham políticas no pacote modificado e a extensão de encaminhamento pode adicionar destinos de porta.
Para obter mais informações, consulte Clonagem ou Tráfego de Pacotes.
Ao capturar extensões que obtêm pacotes no caminho de dados de saída, é possível inspecionar os dados do pacote. No entanto, se a extensão de captura precisar originar pacotes para relatar condições de tráfego a um aplicativo de monitoramento remoto, ela deverá originar esse tráfego de pacotes chamando NdisFSendNetBufferLists para iniciar uma operação de envio no caminho de dados de entrada.
Quando o pacote chega à borda de protocolo sobrejacente do comutador extensível, a interface do comutador extensível encaminha o pacote para todas as portas de destino especificadas.
Depois que o pacote for encaminhado, a interface concluirá o pacote pelo mesmo caminho inverso. Primeiro, a interface chama a função FilterReturnNetBufferLists da extensão para concluir pacotes encaminhados no caminho de dados de saída. Em seguida, a interface chama a função FilterSendNetBufferListsComplete da extensão para completar os pacotes encaminhados na trajetória de dados de entrada.
Quando o pacote é concluído no caminho de dados de saída e de entrada, a extensão executa qualquer limpeza de pacote necessária e pós-processamento que possa ser necessária.