Olá pessoal, tudo bem?

Foram várias horas de estudos, pesquisa, tirar dúvidas com profissionais que já trabalharam com a tecnologia para trazer este conteúdo para vocês. 

Recentemente estava conversando com um colega profissional sobre um projeto de cluster de failover, estava discutindo sobre as conexões de rede do projeto. Ele foi informou que queria configurar “um tal” de SET. Perguntei a ele o que era o SET, ele me disse que se trava de um switch virtual com agrupamento. Como sou curioso fui pesquisar do que se travava esta tecnologia e encontrei alguns artigos sobre o SET na internet, mas a maioria superficial e nenhum conteúdo em português.

Achei muito interessante esta tecnologia que está presente a partir do Windows Server 2016, 2019, 2020 e no Azure Stack HCI. O SET meio que virou o “patinho feio”, pois o NIC Teaming, fez tanto sucesso que acabo ofuscando o SET e pelo fato que o SET somente e configurado pelo Powershell.

Aviso importante

Quando estava escrevendo este artigo, passo meio que despercebido, mas é possível criar um SET também pelo Windows Admin Center, mas apenas as configurações básicas para host único (host standalone), demais configurações devem ser configuradas pelo Powershell. O Windows Admin Center também permite outras configurações avanças do SET mas apenas na criação de cluster Azure Stack HCI e S2D.

Configuração do SET no Windows Admin Center

 

SET (Switch Embedded Teaming)

Com SET é possível agrupar de um a oito adaptadores de rede ethernet físicos, em um ou mais adaptadores de rede virtuais. Esses adaptadores de rede virtuais baseados em software dão suporte para alto desempenho e permitem opções de failover. Você pode usar em ambientes que incluem Hyper-V e Rede Definida por Software – Software Defined Networking (SDN).

Como o SET está integrado ao Switch Virtual Hyper-V, você não pode usar SET dentro de uma máquina virtual (VM). Você pode, no entanto, usar NIC Teaming dentro de VMs. Para obter mais informações, consulte NIC Teaming em Máquinas Virtuais (VMs) e consulte aqui o artigo do meu amigo MVP Rafael Bernardes. Também existe a documentação oficial sobre o NIC Teaming, que pode ser acessada aqui.

 

A ilustração a seguir descreve a arquitetura SET.

 

Observação: Para colocar os adaptadores de rede membros de SET no mesmo agrupamento, todos devem ser instalados no mesmo host Hyper-V físico.

Embora SET forneça funcionalidade semelhante ao NIC Teaming, existem algumas diferenças, inclusive durante a instalação. A noção de modo reserva não é suportada, pois, em SET, todos os adaptadores são ativos. Também vale notar que, embora existam três modos de NIC Teaming, há apenas um em SET: Switch independente.

Observação: No modo Switch independente, os switches não determinam a distribuição de tráfego de rede. Isso porque o switch ao qual o SET é conectado não sabe da existência do agrupamento. É o agrupamento SET que distribui pelos membros do SET o tráfego de rede recebido.

 

Ao implementar SET, você deve definir o seguinte:

Adaptadores membros: Defina até oito adaptadores de rede idênticos como parte do agrupamento.

Observação: O SET exige que todos os adaptadores de rede membros de uma equipe SET devem ser idênticos (ou seja, mesmo fabricante, mesmo modelo, mesmo firmware e driver).

 

Modo de balanceamento de carga:

Existem dois modos de balanceamento de carga:

  • Hyper-V: Distribui o tráfego entre os adaptadores membros do agrupamento SET, usando o endereço MAC ou a porta utilizada por uma máquina virtual para conectar um switch virtual em um host Hyper-V. 
  • Dinâmico: O tráfego de saída é distribuído com base em um hash das informações de endereçamento no fluxo de pacotes. O tráfego de entrada é distribuído de acordo com o modo porta Hyper-V.

 

Para criar e gerenciar um SET Team, deve-se usar VMM (Virtual Machine Manager) do System Center, mas também é possível usar o PowerShell.

Por exemplo, para criar um agrupamento SET com dois adaptadores de rede, chamados Ethernet e Ethernet 2, use o comando a seguir:

 

O SET é compatível com as seguintes tecnologias de rede:

Datacenter bridging (DCB).

Hyper-V Network Virtualization – NV-GRE and VxLAN.

Receive-side Checksum offloads (IPv4, IPv6, TCP).

Remote Direct Memory Access (RDMA).

SDN Quality of Service (QoS).

Transmit-side Checksum offloads (IPv4, IPv6, TCP)

Virtual Machine Queues (VMQ).

Virtual Receive Side Scaling (RSS).

 

O SET não é compatível com as seguintes tecnologias de rede:

 802.1X authentication.

IPsec Task Offload (IPsecTO).

QoS in host or native OSs.

Receive side coalescing (RSC).

Receive side scaling (RSS).

Single root I/O virtualization (SR-IOV).

TCP Chimney Offload.

Virtual Machine QoS (VM-QoS).

 

Tabela de comparação de tecnologias suportadas entre o SET (Switch Embedded Teaming) e o NIC Teaming (LBFO). NIC Teaming, também conhecido como Load Balancing/Failover (LBFO) em português Balanceamento de carga/failover.

Aviso importante

vSwitch não terá mais a capacidade de ser vinculado a uma equipe LBFO. Em vez disso, deve ser vinculado ao SET.

No Windows Server 2022 não é mais possível vincular vSwitch ao LBFO.

Aviso no Windows Server 2022 informando que LBFO foi preterida para vinculação ao vSwitch.

 

LBFO uma tecnologia de equipe mais antiga que não verá investimentos futuros.

Em resumo, a LBFO é uma tecnologia de equipe mais antiga que não verá investimentos futuros, não é compatível com inúmeras capacidades avançadas, e foi superada tanto no desempenho quanto na estabilidade por nossa nova tecnologia (SET).

A LBFO continua sendo nossa solução de equipe (teaming solution) se você estiver executando suas cargas de trabalho em servidores bare metal. Se, no entanto, você está executando cenários virtualizados ou em nuvem como o Azure Stack HCI, você deve dar consideração séria ao Switch Embedded Teaming. O SET tem sido a solução de equipe recomendada pela Microsoft e o foco desde o Windows Server 2016, pois traz melhor desempenho, estabilidade e suporte a recursos em comparação com o LBFO.

 

Mais informações: https://aka.ms/LBFODeprecation

SET and Virtual Machine Queues (VMQs)

VMQ e SET funcionam bem juntos; O VMQ deve ser ativado sempre que estiver usando Hyper-V e SET.

A maioria dos adaptadores de rede tem filas que podem ser usadas tanto para receber dimensionamento lateral (RSS) ou VMQ, mas não ambos ao mesmo tempo.

Algumas configurações de VMQ parecem ser configurações para filas RSS, mas são realmente configurações nas filas genéricas que tanto o RSS quanto o VMQ usam, dependendo de qual recurso está atualmente em uso. Cada NIC tem, em suas propriedades avançadas, valores para *RssBaseProcNumber e *MaxRssProcessors. A seguir, algumas configurações de VMQ que proporcionam melhor desempenho do sistema.

 

Idealmente, cada NIC deve ter o *RssBaseProcNumber definido para um número ainda maior ou igual a dois (2). Isso porque o primeiro processador físico, Core 0 (processadores lógicos 0 e 1), normalmente faz a maior parte do processamento do sistema para que o processamento da rede seja direcionado para longe deste processador físico. (Algumas arquiteturas de máquina não têm dois processadores lógicos por processador físico, então para tais máquinas o processador base deve ser maior ou igual a 1. Em caso de dúvida, presuma que seu host esteja usando um processador lógico de 2 por arquitetura física do processador.)

Os processadores dos membros da equipe devem ser, na medida da prática, não sobrepostos. Por exemplo, em um host de 4 núcleos (8 processadores lógicos) com uma equipe de 2 NICs de 10Gbps, você poderia definir o primeiro para usar processador base de 2 e usar 4 núcleos; o segundo seria definido para usar processador base 6 e usar 2 núcleos.

 

Virtualização de rede SET e Hyper-V (HNV) (SET and Hyper-V Network Virtualization (HNV))

O SET é totalmente compatível com a virtualização da rede Hyper-V no Windows Server 2016, 2019 e 2022, o Azure Stack HCI também O sistema de gerenciamento HNV fornece informações ao driver SET que permite que o SET distribua a carga de tráfego da rede de forma otimizada para o tráfego HNV.

 

SET e Migração ao vivo (SET and Live Migration)

 Migração ao vivo (Live Migration) é suportado no Windows Server 2016, 2019 e 2022, o Azure Stack HCI também.

 

Uso de endereço MAC em pacotes transmitidos

Quando você configura uma equipe SET com distribuição dinâmica de carga, os pacotes de uma única fonte (como um único VM) são distribuídos simultaneamente entre vários membros da equipe. Para evitar que os switches fiquem confusos e para evitar que os alarmes MAC sejam colocados, o SET substitui o endereço MAC de origem por um endereço MAC diferente nos quadros que são transmitidos em membros da equipe que não sejam o membro da mesma equipe. Por causa disso, cada membro da equipe usa um endereço MAC diferente, e os conflitos de endereço MAC são evitados a menos e até que ocorra uma falha.

Quando uma falha for detectada no NIC primário, o software de equipe SET começa a usar o endereço MAC do VM no membro da equipe que é escolhido para servir como membro temporário da equipe (ou seja, aquele que agora aparecerá para o switch como interface do VM). Essa alteração só se aplica ao tráfego que seria enviado no membro da mesma equipe da VM com o próprio endereço MAC da VM como seu endereço MAC de origem. Outros tráfegos continuam a ser enviados com qualquer endereço MAC de origem que teria usado antes da falha.

A seguir estão listas que descrevem o comportamento de substituição de endereço MAC de equipe SET, com base na forma como a equipe está configurada:

 

No modo Switch Independent com distribuição de porta Hyper-V:

  •  Cada porta vmSwitch é afiliada para um membro da equipe.
  • Cada pacote é enviado no membro da equipe para o qual a porta é afiliada.
  • Nenhuma substituição MAC de origem é feita.

 

No modo Switch Independent com distribuição Dinâmica: 

  • Cada porta vmSwitch é afiliada para um membro da equipe.
  • Todos os pacotes ARP/NS são enviados no membro da equipe para o qual a porta é afiliada.
  • Pacotes enviados no membro da equipe que é o membro da equipe afiliada não têm nenhuma substituição de endereço MAC fonte feita.
  • Pacotes enviados em um membro da equipe que não o membro da equipe afiliada terá a substituição do endereço MAC fonte feita.

 

GitHub

 

 

 

 

Como informando anteriormente a implementação do SET também pode ser feita pelo Powershell, baixe aqui script com todos os comandos para gerenciar e implantar o SET pelo Powershell.

 

Vídeo

 

 

 

 

No vídeo será demostrado de forma clara e objetiva a criação do SET pelo Powershell e todos os demais comandos relativos a ele, criação do SET pelo Windows Admin Center. Vamos demostrar também a utilização do SET em um cenário de cluster de failover. Serão utilizadas duas máquinas virtuais que será implantado o SET, com quatro adaptadores de rede. Serão criadas três redes, Gerenciamento e Cluster, Migração ao vivo e Tráfego de VM, igual exatamente demostrado na imagem baixo, simulando um cenário real.

 

 

Observação: O uso do SET em máquinas virtuais não é suportado, usá-lo apenas para fins de teste e laboratório. Se caso for utilizar máquinas virtuais, no Hyper-V para seu laboratório, será necessário habilitar a falsificação de endereço MAC, o comando abaixo habilita em uma máquina virtual com o nome HY1-SET. Se você adicionar um adaptador de rede após executar o comando demostrado abaixo, terá que executar novamente o comando para ativar nos adaptadores de rede novo inseridos na máquina virtual.

 

Configuração de uma máquina virtual no Hyper-V

 

Referências

 

 

 

 

 

https://docs.microsoft.com/en-us/previous-versions/windows/server/mt403349(v=ws.12)?WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapter?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/new-vmswitch?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/get-vmswitch?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/get-vmswitchteam?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/set-vmswitchteam?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/get-vmnetworkadapter?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/rename-vmnetworkadapter?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/add-vmnetworkadapter?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/set-vmnetworkadapter?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/set-vmnetworkadaptervlan?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/get-vmnetworkadaptervlan?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/set-vmnetworkadapterteammapping?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/nettcpip/new-netipaddress?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/dnsclient/set-dnsclientserveraddress?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/netadapter/disable-netadapterbinding?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

https://docs.microsoft.com/en-us/powershell/module/hyper-v/remove-vmswitch?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815

 

Inscreva-se no meu canal do YouTube ative o sininho para receber as notificações!

13 Responses

  1. Tengo una duda, que pasa cuando yo tengo en una tarjeta de fibra Optica de 10gb, una troncal con multiples vlans, y quiero crear un switch virtual para cada vlan utilizando la misma tarjeta, en windows server 2019 para atras era muy sencillo hacerlo, pero ahora en windows server 2022 no encuentro como hacerlo. te agradeceria mucho por tu guia . bendiciones

  2. Gabriel excelente artigo!! Muito obrigado por compartilhar, porém gostaria de tirar duas dúvidas:
    1) Quando vc fala que “você não pode usar SET dentro de uma máquina virtual (VM).” … Eu tenho o seguinte cenário, o SET de Dados criado nos hosts (3), ambiente em cluster… então eu vou na VM e crio um placa de rede e associo a esse SET DADO e coloco a VLAN do cliente… isso pode? ou é sobre isso a sua frase de não poder usar dentro da VM?

    2) Como utilizar o SET em ambientes ao qual o host fisico está conectado ao Switch e do lado do Switch é configurado as interfaces em LACP?

    • Boa noite. Muito obrigado por prestigiar o meu trabalho.

      Ótimas perguntas! Vamos por partes:

      ✅ 1) “Você não pode usar SET dentro de uma máquina virtual (VM)” — o que isso realmente significa?
      A frase não significa que você não pode conectar a VM a um Switch com SET.

      O que significa de fato é:

      O Switch Embedded Teaming (SET) é um recurso exclusivo do host Hyper-V. Ou seja, você configura SET no host físico, criando um switch virtual que usa várias NICs físicas como time e as VMs conectam-se a esse switch virtual.

      Então, respondendo sua pergunta diretamente:

      🔹 Sim, você pode criar uma placa de rede na VM e conectá-la ao vSwitch baseado em SET no host.
      🔹 Você também pode definir a VLAN dentro da VM (caso esteja usando trunking no vSwitch ou usando VLAN ID por NIC da VM).

      Ou seja: o que não pode é tentar criar o SET dentro da própria VM — isso não funcionaria porque a VM não tem acesso direto às NICs físicas do host.

      ✅ 2) Como usar SET com o host Hyper-V ligado ao switch com LACP?
      Excelente ponto! O suporte do Switch Embedded Teaming (SET) ao LACP (Link Aggregation Control Protocol) é limitado.

      🔸 O que o SET suporta:
      Modo de teaming no host: Switch Independent.

      Load balancing: Dynamic ou Hyper-V Port.

      Não há suporte a LACP ou Static Teaming no lado do host Hyper-V com SET.

      💡 Explicando:
      Mesmo que o switch físico tenha LACP ativado, o host com SET deve usar “Switch Independent” — que não depende de nenhuma negociação com o switch.

      Isso funciona porque:

      O SET distribui o tráfego entre as NICs baseado em políticas internas.

      O switch físico “enxerga” cada NIC como uma conexão separada.

      Toda a agregação e balanceamento são feitos pelo host.

      ✅ Resumo Final:
      Você pode sim associar uma NIC da VM ao vSwitch com SET e usar VLAN.

      Você não configura SET dentro da VM.

      Mesmo se o switch físico estiver com LACP, o SET usa “Switch Independent” e funciona bem.

      #MVPBuzz

      • Gabriel muito obrigado pela sua resposta!! Consegui avançar com as configurações do SET no meu ambiente com a ajuda da sua publicação, entretanto surgiu uma duvida, é em relação aos modos de “Balanceamento de Carga”.
        Se eu configuro um SET com duas placas física de 10Gbps com o Balancemaneto de Carga Dynamic, o SET fica com 20Gbps, porém algumas VMs ficam com o comportamento intermitente de rede.
        Se eu altero o Balanceamento para Hyper-V Port o SET fica com 10Gbps e as VMs operam normalmente.
        Saberia dizer o porque Hyper-V Port não fica com os 20Gbps e se o recomendado para ambientes de produção é o Balanceamento Hyper-V Port.
        Novamente obrigado por compartilhar o seu conhecimento!!

        • Olá!

          Muito obrigado pelo seu feedback, fico feliz em saber que a publicação te ajudou a avançar na configuração do SET!

          Sobre a sua dúvida:

          Quando utilizamos o modo de Balanceamento de Carga Dynamic, o SET (Switch Embedded Teaming) consegue distribuir tanto o tráfego de saída (TX) quanto de entrada (RX) de forma mais eficiente, utilizando ambas as interfaces físicas (NICs). Por isso, você observa os 20Gbps agregados no ambiente. Contudo, esse modo também depende de algoritmos dinâmicos de distribuição, o que pode, em alguns cenários e workloads específicos, gerar intermitência ou assimetria no tráfego das VMs, especialmente quando há grande volume de comunicação leste-oeste (entre VMs) ou tráfego sensível à latência.

          Já o modo Hyper-V Port divide o tráfego de forma estática por VM (com base em MAC ou VPort), o que normalmente garante mais previsibilidade e estabilidade no tráfego de rede das VMs. No entanto, o tráfego de uma única VM fica restrito a apenas uma das interfaces físicas — por isso você observa limite de 10Gbps, mesmo que o conjunto SET tenha duas NICs de 10Gbps cada.

          Em resumo:

          Dynamic:

          Benefício: maior performance agregada (20Gbps).

          Risco: pode gerar instabilidade em alguns cenários.

          Hyper-V Port:

          Benefício: estabilidade no tráfego de rede por VM.

          Limitação: cada VM usa uma única NIC, limitando a 10Gbps.

          Recomendação:
          Para ambientes de produção críticos, onde estabilidade e previsibilidade são essenciais, o Hyper-V Port é muitas vezes o mais indicado, principalmente quando o tráfego por VM não exige mais do que 10Gbps.

          Mas se você possui cargas de trabalho que se beneficiam da agregação total de largura de banda e consegue validar a estabilidade no seu ambiente, o modo Dynamic pode ser mantido com ajustes finos e testes. #MVPBuzz

    • Boa noite. Obrigado por prestigiar o meu trabalho.

      Sim, é possível criar um SET (Switch Embedded Teaming) usando adaptadores de rede virtuais, mas há alguns pontos importantes:

      O SET no Windows Server (a partir do 2016) foi projetado para funcionar principalmente com NICs físicas ou com vNICs criadas por alguns tipos de virtualização (como SR-IOV).

      Se você tentar criar com placas totalmente virtuais (por exemplo, criadas pelo Hyper-V para VMs), na maioria dos casos o PowerShell até deixa criar, mas o desempenho ou a compatibilidade pode ser limitada, e nem todas as funções de teaming funcionarão.

      Para testes em laboratório, dá para usar adaptadores virtuais criados com o Hyper-V Virtual Switch ou até Microsoft Loopback Adapter, mas não é recomendando para produção.

      Vale lembrar que o SET é configurado via PowerShell, e não pela interface gráfica como o NIC Teaming tradicional ou Windows Admin Center.

      #MVPBuzz

      • Bom dia Gabriel, tudo bem ?

        Perfeito !!

        Estou tentando criar um SET, usando uma Vnic( ja criada via NIc teaming ) , porém esta apresentando erro de LBFOTEAM , vendo algumas documentações , vi que a partir da versão 19 do Windows Server , já não é mais possível usar Vnic .

        Estou tentando criar via powershell , agora não sei se estou usando comando errado ou tem algum outro comando que de pra fazer essa tarefa.

        New-VMSwitch -Name “VM Catraca” -NetAdapterName “VM Catraca” -AllowNetLBFOTEAMS $true -AllowManagementOS $true

        Não sei se pode ajudar.

        Obrigado Gabriel.

        • Boa noite,

          O comportamento identificado faz sentido. A partir do Windows Server 2022, o Switch Embedded Teaming (SET) deixou de oferecer suporte ao uso de vNICs criadas por meio do NIC Teaming tradicional (LBFO). Isso significa que não é mais possível criar um switch SET utilizando interfaces provenientes de um time LBFO, uma vez que a Microsoft descontinuou esse tipo de integração.

          O SET foi projetado justamente para substituir o LBFO em cenários de virtualização/Hyper-V, oferecendo maior integração e performance.

          Conforme mencionado neste artigo https://gabrielluiz.com/2022/06/meet-set/, o uso do NIC Teaming tradicional (LBFO) não é mais recomendado. Ele permanece no Windows Server apenas por compatibilidade, mas em algum momento será totalmente removido. A recomendação é utilizar o SET como padrão para novas implementações.

          #MVPBuzz

Deixe uma resposta para rafaTricolorCancelar resposta

Microsoft MVP
Entre no meu grupo do Telegram
Categorias
Arquivo
Inteligência artificial em seu servidor.