Partilhar via


Fluxo de pacotes através do caminho de dados do comutador extensível

Este tópico descreve como os pacotes se movem de ou para portas de switch extensíveis por meio do caminho de dados do switch extensível Hyper-V.

Observação Na interface de switch extensível, os drivers de filtro NDIS são conhecidos como extensões de switch extensíveis e a pilha de drivers é conhecida como a pilha de driver de switch extensível . Para obter mais informações sobre as extensões, consulte Hyper-V Extensible Switch Extensions.

Observação Esta página pressupõe que você esteja familiarizado com as informações em Visão geral de Comutador Extensível Hyper-V e de Encaminhamento Híbrido.

Todo o tráfego de pacotes que chega ao switch extensível a partir das suas portas segue o mesmo caminho através da pilha de drivers do switch extensível. Por exemplo, o tráfego de pacotes recebido da conexão do adaptador de rede externo ou enviado de uma conexão de adaptador de rede de máquina virtual (VM) se move pelo mesmo caminho de dados.

A figura a seguir mostra o caminho de dados do switch extensível para NDIS 6.40 (Windows Server 2012 R2) e versões posteriores.

Diagrama que mostra Hyper-V arquitetura de switch extensível para NDIS 6.40 e versões posteriores.

A figura a seguir mostra o caminho de dados do comutador extensível para o NDIS 6.30 (Windows Server 2012).

Diagrama que mostra Hyper-V a arquitetura de switch extensível para NDIS 6.30.

Para obter mais informações sobre os componentes para a interface de switch extensível, consulte Hyper-V Extensible Switch Architecture.

O caminho de dados do switch extensível tem as seguintes partes, listadas na ordem em que os pacotes fluem através delas:

Camada de protocolo sobreposta

  1. Os pacotes chegam ao switch extensível a partir de adaptadores de rede conectados às portas do switch. Esses pacotes são emitidos primeiro como solicitações de envio a partir da extremidade do protocolo do switch extensível, ao longo do caminho de dados de entrada do switch extensível.

    A borda de protocolo do switch extensível prepara os pacotes para o caminho de entrada de dados. A borda do protocolo aloca uma área de contexto para estes pacotes, a qual contém o contexto de encaminhamento do switch extensível fora de banda (OOB). Ele preenche os dados OOB com informações sobre a porta de origem e a conexão do adaptador de rede a partir da qual o pacote foi entregue ao switch extensível.

    Para obter mais informações sobre o contexto de encaminhamento, consulte Hyper-V Extensible Switch Forwarding Context.

  2. No NDIS 6.40 (Windows Server 2012 R2) e versões posteriores, se o pacote for um pacote NVGRE de um adaptador de rede externo, o switch extensível define o sinalizador NativeForwardingRequired nas informações fora de banda (OOB) do pacote. Para obter mais informações, consulte Hybrid Forwarding.

  3. Se o pacote chegou numa porta onde 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

  1. Uma extensão obtém um pacote do caminho de dados de entrada quando a 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 descartar o pacote do percurso de dados de entrada chamando NdisFSendNetBufferListsComplete.

  2. Quando as extensões de captura obtêm pacotes no caminho de dados de entrada, podem inspecionar os dados do pacote. No entanto, as extensões de captura não devem concluir as solicitações de envio de pacotes no trajeto de dados de entrada. Essas extensões devem sempre encaminhar os pacotes para extensões subjacentes na pilha de drivers do switch extensível.

    Uma extensão de captura também pode originar pacotes no percurso 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 Originando o tráfego de pacotes.

  3. 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 switch ou porta extensíveis personalizadas.

      Para obter mais informações sobre essas políticas, consulte Hyper-V Extensible Switch Policies.

      Observação Os Pacotes obtidos no caminho de entrada de dados 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 rota de dados de entrada.

  • Injete novos pacotes no caminho de dados de entrada.

  1. A partir do NDIS 6.40, e em versões 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 de espaço de endereço de provedor (PA). A opção extensível indica isso definindo o sinalizador NativeForwardingRequired nas informações fora de banda (OOB) do pacote. Para obter mais informações, consulte Hybrid Forwarding.

    • O comutador extensível aplica as políticas de entrada embutidas ao pacote. Essas políticas podem incluir listas de controle de acesso de entrada (ACLs), DHCP Guard e Router Guard.

  2. Caso uma extensão de encaminhamento não esteja ativada na pilha de driver de switch extensível, o array de portas de destino para um pacote será determinado pelo switch extensível.

  3. Se uma extensão de encaminhamento estiver habilitada, ela deverá fazer o seguinte quando obtiver pacotes no caminho de dados de entrada:

    • No NDIS 6.40 e posterior, se o pacote for um pacote NVGRE (consulte Hybrid Forwarding), a extensão de encaminhamento não pode modificar a matriz de portas de destino nos dados OOB do pacote no caminho de entrada dos dados. No entanto, ele pode soltar 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 reencaminhamento deve descartar pacotes com base em políticas de switch ou porta extensíveis padrão ou personalizadas. As políticas padrão de switch ou porta incluem segurança e propriedades de LAN virtual (VLAN). Se uma extensão de encaminhamento não estiver habilitada na pilha de driver de switch extensível, essas políticas serão impostas pelo switch extensível.

      Observação 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 da rota de dados de entrada.

  • Injete novos pacotes no caminho de dados de entrada.

Borda de miniporta subjacente

  1. Quando o pacote chega à borda da miniporta subjacente do switch extensível, o switch extensível aplica suas políticas internas ao pacote. Essas políticas incluem listas de controle de acesso (ACLs) e propriedades de qualidade de serviço (QoS). Se o pacote não for descartado devido a estas políticas, o switch extensível gera uma indicação de receção do pacote e encaminha o pacote pelo caminho de saída de dados.

    Observação Se o espelhamento de porta estiver habilitado em uma porta para a qual o pacote será entregue, a borda da miniporta adicionará uma porta de destino aos dados OOB do pacote para a porta espelhada. A borda da miniporta faz isso independentemente de uma extensão de encaminhamento estar instalada e ativada na pilha de drivers do switch extensível. A borda da miniporta só adiciona a porta espelhada se ela ainda não estiver especificada na matriz de portas de destino para o pacote.

  2. Se uma extensão de encaminhamento não estiver habilitada, o switch extensível determinará as portas de destino para o pacote e adicionará essas portas de destino aos dados OOB do pacote antes de encaminhar o pacote pela trajetória de dados de saída.

  3. 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, de modo que a extensão de encaminhamento possa visualizar o pacote tanto em sua forma encapsulada quanto descapsulada. Por exemplo, se o pacote chegou de um adaptador de rede externo e se destina a uma VM interna, a extensão de encaminhamento obtém o pacote encapsulado na entrada e o pacote descapsulado na saída.

    Observação No pacote encapsulado, o endereço no cabeçalho do pacote é um endereço de espaço de endereço de provedor (PA). No pacote descapsulado, é um endereço do espaço de endereços do cliente (CA).

    1. Se o pacote for um pacote NVGRE que chegou de um adaptador de rede externo, o componente Hyper-V Network Virtualization (HNV) do switch 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, em seguida, o switch extensível encaminha o pacote ao longo do caminho de saída de dados.

    2. Se o pacote chegou de uma VM interna, o componente HNV executará o encapsulamento NVGRE no pacote se as políticas HNV estiverem 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 ao longo do caminho de saída de dados.

    3. Caso contrário, a extensão de encaminhamento encaminhará o pacote ao longo do caminho de saída de dados.

  4. No NDIS 6.30, se uma extensão de encaminhamento estiver habilitada, ela deverá encaminhar o pacote ao longo do caminho de dados de saída.

Caminho de dados de saída

  1. Uma extensão obtém um pacote do caminho de dados de saída quando a sua função FilterReceiveNetBufferLists é chamada. A extensão encaminha o pacote para extensões sobrepostas no caminho de dados de saída chamando NdisFIndicateReceiveNetBufferLists. As extensões de filtragem e encaminhamento também podem descartar o pacote do caminho de dados de saída chamando NdisFReturnNetBufferLists.

  2. 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 OOB.

    Observação A extensão obtém essas informações dos dados OOB chamando GetNetBufferListDestinations.

Com base em políticas de porta ou switch padrão ou personalizadas, a extensão pode excluir a entrega do pacote para uma ou mais portas de destino contidas nos dados OOB.

  1. 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 switch extensível aplica as políticas de egressão internas 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).

  2. Quando as 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 de switch ou porta personalizadas, a extensão pode excluir a entrega do pacote para uma ou mais portas de destino contidas nos dados 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 portos. 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.

  3. Ao capturar extensões para obter pacotes no caminho de dados de saída, é possível inspecionar os dados dos pacotes. No entanto, se a extensão de captura precisar originar pacotes para relatar condições de tráfego para 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.

  4. Quando o pacote chega à borda do protocolo sobrejacente do switch extensível, a interface do switch extensível encaminha o pacote para todas as portas de destino especificadas.

  5. Uma vez que o pacote tenha sido encaminhado, a interface completa o pacote através do mesmo caminho inverso. Primeiro, a interface chama a função FilterReturnNetBufferLists da extensão para concluir os pacotes encaminhados no caminho de dados de saída. Em seguida, a interface chama a função FilterSendNetBufferListsComplete da extensão para concluir os pacotes encaminhados no caminho de dados de entrada.

    Quando o pacote é concluído no caminho de dados de saída e entrada, a extensão executa qualquer limpeza de pacote e pós-processamento necessários que possam ser necessários.