Partilhar via


Encaminhamento de pacotes para portas do switch extensível Hyper-V

Esta página descreve como uma extensão de encaminhamento de switch extensível Hyper-V pode direcionar pacotes para uma ou várias portas. Esse tipo de extensão também pode encaminhar pacotes para adaptadores de rede individuais que estão conectados ao adaptador de rede externa do switch extensível.

Nota Somente a extensão de encaminhamento de switch extensível ou o próprio switch extensível pode encaminhar pacotes para portas de switch extensíveis.

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

Observação Na interface de comutador extensível, os drivers NDIS de filtro são conhecidos como extensões de comutador extensível e a pilha de drivers é conhecida como a pilha de drivers de comutador extensível . Para obter mais informações sobre extensões, consulte Hyper-V Extensões de Comutador Extensível.

Se uma extensão de reencaminhamento estiver instalada e ativada na pilha de drivers do switch extensível, será responsável por tomar decisões de reencaminhamento para cada pacote que obtém no caminho de dados de entrada do switch extensível. Com base nessas decisões de encaminhamento, a extensão adiciona portas de destino à matriz de portas de destino dentro dos dados fora de banda (OOB) da estrutura NET_BUFFER_LIST do pacote. Depois que o pacote tiver concluído sua travessia do caminho de dados do switch extensível, a interface do switch extensível entrega o pacote às portas de destino especificadas.

Observação Se uma extensão de encaminhamento não estiver instalada ou habilitada, o switch extensível tomará as decisões de encaminhamento para pacotes que obtém do caminho de dados de entrada. O switch adiciona as portas de destino aos dados OOB da estrutura de NET_BUFFER_LIST do pacote antes de encaminhar o pacote para o caminho de dados de saída do switch extensível.

Nota Se o pacote for um pacote NVGRE, a extensão de encaminhamento pode adicionar portas de destino à matriz de porta de destino. No entanto, o componente Hyper-V Network Virtualization (HNV) do switch extensível é responsável por determinar as portas de destino e encaminhar o pacote. Para obter mais informações, consulte Hybrid Forwarding.

A extensão de encaminhamento pode adicionar destinos de porta somente a pacotes obtidos do caminho de dados de entrada. Depois que o pacote é encaminhado para o caminho de dados de saída, as extensões de filtragem e encaminhamento podem excluir a entrega de pacotes para portas de switch extensíveis. Para mais informações, consulte Excluindo a entrega de pacotes para portas de destino do switch extensível.

Dentro dos dados OOB da estrutura NET_BUFFER_LIST de um pacote, os dados para portas de destino estão contidos numa estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Cada elemento na matriz define uma porta de destino e é formatado como uma estrutura NDIS_SWITCH_PORT_DESTINATION.

A extensão de encaminhamento pode chamar as seguintes funções de gestão do Extensible Switch Hyper-V para gerir a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY e os seus elementos NDIS_SWITCH_PORT_DESTINATION :

AddNetBufferListDestination
Esta função adiciona uma única porta de destino à estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY nos dados OOB do pacote.

GetNetBufferListDestinations
Essa função retorna um ponteiro para a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY nos dados OOB de um pacote.

GrowNetBufferListDestinos
Essa função adiciona mais elementos de porta de destino à estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY dos dados OOB de um pacote.

UpdateNetBufferListDestinos
Esta função confirma as modificações que a extensão fez para adicionar ou excluir uma ou mais portas de destino para um pacote. Essas alterações são aplicadas à estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY nos dados fora da banda (OOB) do pacote.

Quando a função de FilterSendNetBufferLists da extensão de encaminhamento é chamada, o parâmetro NetBufferList contém um ponteiro para uma lista ligada de estruturas NET_BUFFER_LIST. Cada uma dessas estruturas especifica um pacote obtido do caminho de dados de entrada.

Para cada estrutura de NET_BUFFER_LIST nesta lista, a extensão de encaminhamento adiciona portas de destino para o pacote seguindo estas etapas:

  1. A extensão toma decisões de encaminhamento para o pacote com base em vários tipos de critérios. Estes critérios incluem o seguinte:

    • Critérios de política baseados na porta de origem do pacote e na conexão do adaptador de rede. A extensão de encaminhamento obtém essas informações usando a macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL.

    • Critérios de política para uma porta de switch extensível com base nos dados de carga útil do pacote. Por exemplo, uma política para uma porta de switch extensível pode incluir um filtro para permitir a entrega apenas de pacotes IP versão 4 (IPv4).

    Nota Se o pacote for um pacote NVGRE, o componente HNV do switch extensível será responsável pelo encaminhamento do pacote. No entanto, a extensão de encaminhamento pode aplicar os seus próprios critérios de política nos caminhos de entrada e saída. Para obter mais informações, consulte Hybrid Forwarding.

  2. Se a extensão determinar que o pacote pode ser encaminhado para uma ou mais portas de switch extensíveis, ela deverá adicionar portas de destino aos dados OOB do pacote. Para obter mais informações sobre esse procedimento, consulte Adicionando dados de porta de destino do switch extensível a um pacote.

    Nota Se o pacote for um pacote NVGRE, a extensão de encaminhamento não será necessária para adicionar portas de destino. Para obter mais informações, consulte Hybrid Forwarding.

  3. Se a extensão determinar que o pacote não pode ser encaminhado para qualquer porta de switch extensível, ela deverá descartar o pacote.

    Nota Isso não é verdade se o pacote for um pacote NVGRE. Para obter mais informações, consulte Hybrid Forwarding.

  4. Se a extensão tiver adicionado uma ou mais portas de destino para o pacote, ela deverá chamar NdisFSendNetBufferLists para encaminhar o pacote no caminho de dados de saída.

    Nota Se o pacote for um pacote NVGRE, o componente HNV do switch extensível será responsável pelo encaminhamento do pacote. Para obter mais informações, consulte Hybrid Forwarding.

Para obter mais informações sobre os caminhos de dados de entrada e saída do comutador extensível, consulte Hyper-V Caminho de dados do comutador extensível.