Rotear o tráfego entre redes na infraestrutura de SDN

Importante

Esta versão do VMM (Virtual Machine Manager) chegou ao fim do suporte. Recomendamos que você atualize para o VMM 2022.

Este artigo descreve como rotear o tráfego entre redes em uma infraestrutura de SDN (rede definida pelo software) configurada na malha do System Center Virtual Machine Manager (VMM).

Um gateway RAS de SDN permite rotear o tráfego de rede entre redes físicas e virtuais, independentemente da localização dos recursos. O gateway RAS de SDN é multilocatário, capaz de usar BGP (Border Gateway Protocol) e dá suporte a conectividade usando VPN (rede virtual privada) site a site com IPsec ou GRE (encapsulamento de roteamento genérico) ou encaminhamento de camada 3. Saiba mais.

Observação

  • No VMM 2019 UR1, o tipo de rede Uma Conectada é alterado para Rede Conectada.
  • O VMM 2019 UR2 e posterior dá suporte ao IPv6.
  • Há suporte para IPv6 para túnel IPSec, túnel GRE e túnel de camada L3.

Observação

  • Há suporte para IPv6 para túnel IPSec, túnel GRE e túnel de camada L3.

Antes de começar

Verifique o seguinte:

Configurar conexões VPN site a site usando o VMM

Uma conexão VPN site a site permite que você conecte com segurança duas redes em locais físicos diferentes usando a Internet.

Para CSPs (provedores de serviços de nuvem) que hospedam muitos locatários em seus datacenters, o gateway RAS de SDN fornece uma solução de gateway multilocatário que permite que seus locatários acessem e gerenciem os respectivos recursos em conexões VPN site a site de sites remotos, que, por sua vez, permitem o tráfego de rede entre recursos virtuais no seu datacenter e na rede física deles.

O VMM 2022 dá suporte à pilha dupla (IPv4 + IPv6) para componentes SDN.

Para habilitar o IPv6 para a conexão VPN site a site, a sub-rede de roteamento precisa ser IPv4 e IPv6. Para que o gateway funcione no IPv6, forneça endereços IPv4 e IPv6 separados por ponto e vírgula ( ; ) e forneça o endereço IPv6 no ponto de extremidade remoto. Por exemplo, 192.0.2.1/23;2001:0db8:85a3:0000:0000:8a2e:0370::/64. Para especificar o intervalo VIP, não use a forma abreviada do endereço IPv6; use o formato '2001:db8:0:200:0:0:7' em vez de '2001:db8:0:200::7'.

Captura de tela da opção Habilitar IPv6.

Configurar a conexão IPsec

Use o seguinte procedimento:

  1. Selecione a Rede VM que você deseja configurar uma conexão IPSec site a site e selecione Conectividade.
  2. Selecione Conectar a outra rede por um túnel VPN. Como opção, para habilitar o emparelhamento via protocolo BGP no datacenter, selecione Habilitar BGP (Border Gateway Protocol).
  3. Selecione o serviço de controlador de rede para o dispositivo de gateway.
  4. Selecione as Conexões VPNAdicionarAdicionar Túnel IPsec.
  5. Digite uma sub-rede conforme mostrado no diagrama a seguir. Esta sub-rede é usada para rotear pacotes fora da rede VM. Você não precisa pré-configurar essa sub-rede em seu datacenter. Captura de tela da VPN site a site.
  6. Nomeie conexão e o endereço IP do ponto de extremidade remoto. Como opção, configure a largura de banda.
  7. Em Autenticação, selecione o tipo de autenticação que deseja usar. Se optar por autenticar usando uma conta Executar como, crie uma conta de usuário com um nome de usuário e a chave IPSec como a senha da conta.
  8. Em Rotas, digite todas as sub-redes remotas às quais você deseja se conectar. Se você selecionou Habilitar PROTOCOLOP (Border Gateway Protocol) na página Conectividade , as rotas não serão necessárias.
  9. Na guia Avançado, aceite as configurações padrão.
  10. Se você tiver selecionado Habilitar BGP (Protocolo de Gateway de Borda) na página Conectividade, poderá preencher seu ASN, o IP BGP par e seu ASN na página do assistente do Border Gateway Protocol , conforme mostrado abaixo: Captura de tela da habilitação b g p.
  11. Para validar a conexão, tente executar ping no endereço IP do ponto de extremidade remoto de uma das máquinas virtuais na rede VM.

Configurar o túnel GRE

Túneis GRE habilitam a conectividade entre redes virtuais de locatário e redes externas. Como o protocolo GRE é leve e o suporte para GRE está disponível na maioria dos dispositivos de rede, ele se torna uma opção ideal para túnel em que a criptografia de dados não é necessária. O suporte a GRE em túneis S2S (site a site) facilita o encaminhamento de tráfego entre redes virtuais de locatário e redes externas de locatário.

Use o seguinte procedimento:

  1. Selecione a rede de VM em que você deseja configurar uma conexão GRE S2S e selecione Conectividade.
  2. Selecione Conectar a outra rede por um túnel VPN. Como opção, para habilitar o emparelhamento via protocolo BGP no datacenter, selecione Habilitar BGP (Border Gateway Protocol).
  3. Selecione o Serviço de Controlador de Rede para o Dispositivo de Gateway.
  4. Selecione Conexões VPNAdicionarAdicionar Túnel GRE.
  5. Digite uma sub-rede conforme mostrado no diagrama a seguir. Essa sub-rede é usada para rotear pacotes para fora da rede da VM. Essa sub-rede não precisa ser pré-configurada em seu datacenter. Captura de tela do túnel GRE.
  6. Digite um nome de conexão e especifique o endereço IP do ponto de extremidade remoto.
  7. Digite a chave GRE.
  8. Opcionalmente, você pode concluir os outros campos nesta tela; esses valores não são necessários para configurar uma conexão.
  9. Em Rotas, adicione todas as sub-redes remotas às quais você deseja se conectar. Se tiver selecionado Habilitar BGP (Border Gateway Protocol) na guia Conectividade, você poderá deixar essa tela em branco e, em vez disso, preencher os campos da ASN, IP do BGP do par e ASN, na guia Border Gateway Protocol.
  10. Você pode usar os padrões para as configurações restantes.
  11. Para validar a conexão, tente executar ping no endereço IP do ponto de extremidade remoto de uma das máquinas virtuais da rede de VM.

Configurar conexões IPsec e GRE no site remoto

No dispositivo remoto par, use o Endereço IP do ponto de extremidade da rede VM da interface do usuário do VMM como o endereço de destino ao configurar a conexão IPsec\GRE.

Captura de tela do site remoto.

Configurar o encaminhamento de L3

O encaminhamento L3 permite a conectividade entre a infraestrutura física no datacenter e a infraestrutura virtualizada na nuvem de virtualização de Rede Hyper-V.

Usando o encaminhamento de L3, as máquinas virtuais de rede de locatário podem se conectar a uma rede física por meio do gateway de SDN do Windows Server 2016, que já está configurado em um ambiente de SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtual e a rede física.

Para saber mais, confira estes artigos: O gateway do Windows Server como um gateway de encaminhamento e Alta disponibilidade do gateway RAS.

Verifique o seguinte antes de configurar o L3:

  • Certifique-se de ter efetuado logon como administrador no servidor do VMM.
  • Você deve configurar uma rede de lógica de próximo salto exclusiva, com ID de VLAN exclusiva, para cada rede de VMs de locatário para a qual o encaminhamento L3 precisa ser configurado. Deve haver mapeamento 1:1 entre uma rede de locatário e a rede física correspondente (com a ID de VLAN exclusiva).

Use as seguintes etapas para criar a rede lógica de próximo salto no SCVMM:

  1. No console do VMM, selecione Redes Lógicas, clique com o botão direito do mouse e selecione Criar Rede Lógica.

  2. Na página Configurações, escolha Uma rede conectada e selecione a caixa de seleção Crie uma rede de VM com o mesmo nome para permitir que máquinas virtuais tenham acesso direto a esta rede lógica e Gerenciada pelo Controlador de Rede da Microsoft

  3. Crie um pool de IPs para essa nova rede lógica.

    O endereço IP desse pool é necessário no script para configurar o encaminhamento de L3.

A tabela a seguir fornece exemplos de conexões L3 dinâmicas e estáticas.

Parâmetro Valores de detalhes/exemplo
L3VPNConnectionName Nome definido pelo usuário para a conexão de rede de encaminhamento L3. Exemplo: Contoso_L3_GW
VmNetworkName Nome da rede virtual do locatário acessível pela conexão de rede L3. Essa rede precisa existir quando se executa o script. Exemplo: ContosoVMNetwork
NextHopVMNetworkName Nome definido pelo usuário para a rede de VMs de próximo salto, que foi criada como um pré-requisito. Isso representa a rede física que deseja se comunicar com a rede de VMs de locatário. Essa rede precisa existir quando se executa este script. Exemplo: Contoso_L3_Network
LocalIPAddresses Endereços IP a serem configurados no adaptador de rede L3 do gateway SDN. Esse endereço IP deve pertencer à rede lógica de próximo salto que você criou. Você também precisa fornecer a máscara de sub-rede. Exemplo: 10.127.134.55/25
PeerIPAddresses Endereço IP do gateway de rede física, acessível pela rede lógica L3. Esse endereço IP deve pertencer à rede lógica de próximo salto que você criou nos pré-requisitos. Esse IP servirá como o próximo salto depois que o tráfego destinado à rede física da rede de VMs de locatário atingir o gateway de SDN. Exemplo: 10.127.134.65
GatewaySubnet Sub-rede a ser usada para roteamento entre a rede virtual do locatário e o gateway HNV. Você pode usar qualquer sub-rede, verifique se ela não se sobrepõe à rede lógica do próximo salto. Exemplo: 192.168.2.0/24
RoutingSubnets Rotas estáticas que precisam estar na interface L3 no gateway HNV. Essas rotas são destinadas a sub-redes da rede física, que devem ser acessíveis via rede VM do locatário pela conexão L3.
EnableBGP Opção para habilitar o BGP. Padrão: false.
TenantASNRoutingSubnets Número ASN de gateway do locatário, somente se o BGP estiver habilitado.

Execute o script a seguir para configurar o encaminhamento de L3. Consulte a tabela acima para verificar o que cada parâmetro de script identifica.

  param (
      [Parameter(Mandatory=$true)]
      # Name of the L3 VPN connection
      $L3VPNConnectionName,
      [Parameter(Mandatory=$true)]
      # Name of the VM network to create gateway
      $VmNetworkName,
      [Parameter(Mandatory=$true)]
      # Name of the Next Hop one connected VM network
      # used for forwarding
      $NextHopVmNetworkName,
      [Parameter(Mandatory=$true)]
      # IPAddresses on the local side that will be used
      # for forwarding
      # Format should be @("10.10.10.100/24")
      $LocalIPAddresses,
      [Parameter(Mandatory=$true)]
      # IPAddresses on the remote side that will be used
      # for forwarding
      # Format should be @("10.10.10.200")
      $PeerIPAddresses,
      [Parameter(Mandatory=$false)]
      # Subnet for the L3 gateway
      # default value 10.254.254.0/29
      $GatewaySubnet = "10.254.254.0/29",
      [Parameter(Mandatory=$false)]
      # List of subnets for remote tenants to add routes for static routing
      # Format should be @("14.1.20.0/24","14.1.20.0/24");
      $RoutingSubnets = @(),
      [Parameter(Mandatory=$false)]
      # Enable BGP in the tenant space
      $EnableBGP = $false,
      [Parameter(Mandatory=$false)]
      # ASN number for the tenant gateway
      # Only applicable when EnableBGP is true
      $TenantASN = "0"
  )

  # Import SC-VMM PowerShell module
  Import-Module virtualmachinemanager

  # Retrieve Tenant VNET info and exit if VM Network not available
  $vmNetwork = Get-SCVMNetwork -Name $VmNetworkName;
  if ($vmNetwork -eq $null)
  {
      Write-Verbose "VM Network $VmNetworkName not found, quitting"
      return
  }

  # Retrieve L3 Network info and exit if VM Network not available
  $nextHopVmNetwork = Get-SCVMNetwork -Name $NextHopVmNetworkName;
  if ($nextHopVmNetwork -eq $null)
  {
      Write-Verbose "Next Hop L3 VM Network $NextHopVmNetworkName not found, quitting"
      return
  }

  # Retrieve gateway Service and exit if not available
  $gatewayDevice = Get-SCNetworkGateway | Where {$_.Model -Match "Microsoft Network Controller"};
  if ($gatewayDevice -eq $null)
  {
      Write-Verbose "Gateway Service not found, quitting"
      return
  }

  # Retrieve Tenant Virtual Gateway info
  $vmNetworkGatewayName = $VmNetwork.Name + "_Gateway";
  $VmNetworkGateway = Get-SCVMNetworkGateway -Name $vmNetworkGatewayName -VMNetwork $vmNetwork

  # Create a new Tenant Virtual Gateway if not configured
  if($VmNetworkGateway -eq $null)
  {
      if($EnableBGP -eq $false)
      {
          # Create a new Virtual Gateway for tenant
          $VmNetworkGateway = Add-SCVMNetworkGateway -Name $vmNetworkGatewayName -EnableBGP $false -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork -RoutingIPSubnet $GatewaySubnet;
      }
      else
      {
          if($TenantASN -eq "0")
          {
              Write-Verbose "Please specify valid ASN when using BGP"
              return
          }

          # Create a new Virtual Gateway for tenant
          $VmNetworkGateway = Add-SCVMNetworkGateway -Name $vmNetworkGatewayName -EnableBGP $true -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork -RoutingIPSubnet $GatewaySubnet -AutonomousSystemNumber $TenantASN;
      }

  }

  if ($VmNetworkGateway -eq $null)
  {
      Write-Verbose "Could not Find / Create Virtual Gateway for $($VmNetwork.Name), quitting"
      return
  }

  # Check if the network connection already exists
  $vpnConnection = Get-SCVPNConnection -VMNetworkGateway $VmNetworkGateway -Name $L3VPNConnectionName
  if ($vpnConnection -ne $null)
  {
      Write-Verbose "L3 Network Connection for $($VmNetwork.Name) already configured, skipping"
  }
  else
  {
      # Create a new L3 Network connection for tenant
      $vpnConnection = Add-SCVPNConnection  -NextHopNetwork $nexthopvmNetwork  -Name $L3VPNConnectionName -IPAddresses $LocalIPAddresses -PeerIPAddresses $PeerIPAddresses -VMNetworkGateway $VmNetworkGateway -protocol L3;

      if ($vpnConnection -eq $null)
      {
          Write-Verbose "Could not add network connection for $($VmNetwork.Name), quitting"
          return
      }
      Write-Output "Created VPN Connection " $vpnConnection;
  }

  # Add all the required static routes to the newly created network connection interface
  foreach($route in $RoutingSubnets)
  {
      Add-SCNetworkRoute -IPSubnet $route -RunAsynchronously -VPNConnection $vpnConnection -VMNetworkGateway $VmNetworkGateway
  }

Configurar o encaminhamento de L3

O encaminhamento L3 permite a conectividade entre a infraestrutura física no datacenter e a infraestrutura virtualizada na nuvem de virtualização de Rede Hyper-V.

Usando a conexão de encaminhamento de L3, as máquinas virtuais de rede de locatário podem se conectar a uma rede física por meio do Gateway de SDN do Windows Server 2016/2019, que já está configurado em um ambiente do SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtual e a rede física.

Usando a conexão de encaminhamento de L3, as máquinas virtuais de rede de locatário podem se conectar a uma rede física por meio do Gateway de SDN do Windows Server 2016/2019/2022, que já está configurado em um ambiente do SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtual e a rede física.

Para saber mais, confira estes artigos: O gateway do Windows Server como um gateway de encaminhamento e Alta disponibilidade do gateway RAS.

Verifique o seguinte antes de tentar configurar a conexão L3:

  • Certifique-se de ter efetuado logon como administrador no servidor do VMM.
  • Você deve configurar uma rede de lógica de próximo salto exclusiva, com ID de VLAN exclusiva, para cada rede de VMs de locatário para a qual o encaminhamento L3 precisa ser configurado. Deve haver mapeamento 1:1 entre uma rede de locatário e a rede física correspondente (com a ID de VLAN exclusiva).

Use as seguintes etapas para criar a rede lógica de próximo salto no VMM:

  1. No console do VMM, selecione Redes Lógicas, clique com o botão direito do mouse e selecione Criar Rede Lógica.

  2. Na página Configurações, escolha Uma rede conectada e selecione Criar uma rede de VMs com o mesmo nome para permitir que máquinas virtuais tenham acesso direto a esta rede lógica e Gerenciada pelo Controlador de Rede da Microsoft.

    uma rede conectada

Observação

No VMM 2019 UR1, o tipo de rede Uma Conectada é alterado para Rede Conectada.

  1. Crie um pool de IPs para essa nova rede lógica. O endereço IP desse pool é necessário para configurar o encaminhamento de L3.

Use as seguintes etapas para configurar o encaminhamento de L3:

Observação

Você não pode limitar a largura de banda na conexão VPN L3.

  1. No console do VMM, selecione a rede virtual do locatário que você deseja conectar à rede física por meio do gateway L3.

  2. Clique com o botão direito do mouse na rede virtual do locatário selecionado e selecione PropriedadesConectividade.

  3. Selecione Conectar a outra rede por um túnel VPN. Como opção, para habilitar o emparelhamento via protocolo BGP no datacenter, selecione Habilitar BGP (Border Gateway Protocol). Captura de tela da configuração L3 da interface do usuário.

  4. Selecione o serviço de controlador de rede para o dispositivo de gateway.

  5. Na página Connections VPN, selecione Adicionar>túnel de Camada 3.

    Captura de tela do túnel adicionar camada3.

  6. Forneça uma sub-rede no formato de notação CIDR para a Sub-rede de Roteamento. Essa sub-rede é usada para rotear pacotes para fora da rede da VM. Você não precisa pré-configurar essa sub-rede em seu datacenter.

    Captura de tela da sub-rede L3.

  7. Use as seguintes informações e configure a conexão L3:

Parâmetro Detalhes
Nome Nome definido pelo usuário para a conexão de rede de encaminhamento L3.
Rede de VMs (NextHop) Nome definido pelo usuário para a rede de VMs de próximo salto, que foi criada como um pré-requisito. Isso representa a rede física que deseja se comunicar com a rede de VMs de locatário. Quando você selecionar Procurar, somente as Redes de VM Conectadas gerenciadas pelo serviço de Rede estarão disponíveis para seleção.
Endereço IP do par Endereço IP do gateway de rede física, acessível pela rede lógica L3. Esse endereço IP precisa pertencer à rede lógica de próximo salto que você criou como o pré-requisito. Esse IP servirá como o próximo salto depois que o tráfego destinado à rede física da rede de VMs do locatário chegar ao gateway do SDN. Isso precisa ser um endereço IPv4. Pode haver vários endereços IP do par, mas é necessário separá-los por vírgula.
Endereços IP locais Endereços IP a serem configurados no adaptador de rede L3 do gateway SDN. Esses endereços IP precisam pertencer à rede lógica de próximo salto que você criou como pré-requisito. Você também precisa fornecer a máscara de sub-rede. Exemplo: 10.127.134.55/25. Isso precisa ser um endereço IPv4 e estar no formato de notação CIDR. O endereço IP do par e os endereços IP locais devem ser do mesmo pool. Esses endereços IP devem pertencer à sub-rede definida na Definição de Rede Lógica da Rede de VMs.
  • Se você estiver usando rotas estáticas, digite todas as sub-redes remotas às quais deseja se conectar, em Rotas.

    Captura de tela de sub-redes remotas.

    Observação

    É necessário configurar as rotas na rede física para as sub-redes da rede virtual do locatário com o próximo salto como o endereço IP da interface L3 no gateway do SDN (endereço IP local usado na criação da conexão L3). Isso é para garantir que o tráfego retornado à rede virtual do locatário seja roteado corretamente por meio do gateway de SDN.

  • Se você estiver usando o BGP, verifique se o emparelhamento BGP está estabelecido entre o endereço IP da interface interna do gateway SDN, que está presente em um compartimento diferente na VM do gateway (não no compartimento padrão) e no dispositivo par na rede física.

    Para o BGP funcionar, você precisará realizar as seguintes etapas:

    1. Adicione o par no nível de protocolo BGP à conexão L3. Insira seu ASN, IP do BGP de emparelhamento e seu ASN na página Border Gateway Protocol.

      Captura de tela de adicionar bgp.

    2. Determine o endereço interno do gateway do SDN, conforme detalhado na seção a seguir.

    3. Crie um par no nível de protocolo BGP na extremidade remota (gateway de rede física). Ao criar o par no nível de protocolo BGP, use o endereço interno do gateway do SDN (conforme determinado na etapa anterior) como o endereço IP do par.

    4. Configure uma rota na rede física com o destino como o endereço interno do gateway SDN e o próximo salto como o endereço IP da interface L3 (valor do endereço IP local usado ao criar a conexão L3).

Observação

Depois de configurar a conexão L3, você deve configurar as rotas em sua rede física para as sub-redes da rede virtual do locatário, com o próximo salto como o endereço IP da interface L3 no gateway de SDN (parâmetro LocalIpAddresses no script). Isso é para garantir que o tráfego retornado à rede virtual do locatário seja roteado corretamente por meio do gateway de SDN.

Você pode optar por configurar rotas estáticas ou dinâmicas (por meio do BGP) com a conexão L3. Se você estiver usando rotas estáticas, poderá adicioná-las usando Add-SCNetworkRoute , conforme descrito no script abaixo.

Se você usa o BGP com conexão de túnel L3, o emparelhamento via protocolo BGP deve ser estabelecido entre o endereço IP da interface interna do gateway de SDN, que está presente em um compartimento diferente na VM do gateway (não o compartimento padrão) e no dispositivo par na rede física.

Para que o BGP funcione, você deve usar as seguintes etapas:

  1. Adicione o par no nível de protocolo BGP à conexão L3 usando o cmdlet Add-SCBGPPeer.

    Exemplo: Add-SCBGPPeer -Name "peer1" -PeerIPAddress "12.13.14.15" -PeerASN 15 -VMNetworkGateway $VmNetworkGateway

  2. Determine o endereço interno do gateway de SDN conforme detalhado na seção a seguir.

  3. Crie um par no nível de protocolo BGP na extremidade remota (gateway de rede física). Ao criar o par BGP, use o endereço interno do gateway SDN (determinado na etapa 2 acima) como o endereço IP par.

  4. Configure uma rota na rede física com o destino como o endereço interno do gateway de SDN e o próximo salto como o endereço IP da interface L3 (parâmetro LocalIPAddresses no script).

Determinar o endereço interno do gateway de SDN

Use este procedimento:

Execute os seguintes cmdlets do PowerShell em um computador instalado em um controlador de rede ou em um computador que tenha sido configurado como um cliente do controlador de rede:

$gateway = Get-NetworkControllerVirtualGateway -ConnectionUri <REST uri of your deployment>
$gateway.Properties.NetworkConnections.Properties.IPAddresses

Os resultados desse comando podem exibir vários gateways virtuais dependendo de quantos locatários configuraram conexões de gateway. Cada gateway virtual pode ter várias conexões (IPsec, GRE, L3).

Como você já sabe o endereço IP da interface L3 (LocalIPAddresses) da conexão, você pode identificar a conexão correta com base no endereço IP. Depois de ter a conexão de rede correta, execute o comando a seguir (no gateway virtual correspondente) para obter o endereço IP do roteador BGP do gateway virtual.

$gateway.Properties.BgpRouters.Properties.RouterIp

O resultado desse comando fornece o endereço IP que precisa ser configurado no roteador remoto como o endereço IP do par.

Configurar o seletor de tráfego do PowerShell do VMM

Use o seguinte procedimento:

Observação

Os valores usados são apenas exemplos.

  1. Crie o seletor de tráfego usando os seguintes parâmetros.

    $t= new-object Microsoft.VirtualManager.Remoting.TrafficSelector
    
    $t.Type=7 // IPV4=7, IPV6=8
    
    $t.ProtocolId=6 // TCP =6, reference: https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
    
    $t.PortEnd=5090
    
    $t.PortStart=5080
    
    $t.IpAddressStart=10.100.101.10
    
    $t.IpAddressEnd=10.100.101.100
    
  2. Configure o seletor de tráfego acima usando o parâmetro -LocalTrafficSelectors de Adicionar SCVPNConnection ou Configurar SCVPNConnection.