Rotear o tráfego entre redes na infraestrutura SDN
Este artigo descreve como rotear o tráfego entre redes em uma infraestrutura de SDN (rede definida por software) configurada na malha do System Center Virtual Machine Manager (VMM).
Um gateway RAS do SDN permite rotear o tráfego de rede entre redes físicas e virtuais, independentemente de onde os recursos estão localizados. O gateway RAS SDN é multilocatário, compatível com BGP (Boarder Gateway Protocol) e dá suporte à conectividade usando VPN (rede virtual privada) site a site usando IPsec ou GRE (Encapsulamento de Roteamento Genérico) ou Encaminhamento de Camada 3. Saiba mais.
Observação
- No VMM 2019 UR1, um tipo de rede conectada é alterado como Rede conectada.
- O VMM 2019 UR2 e posterior dá suporte ao IPv6.
- O IPv6 é suportado para túnel IPSec, túnel GRE e túnel de camada L3.
Observação
- O IPv6 é suportado para túnel IPSec, túnel GRE e túnel de camada L3.
Antes de começar
Verifique o seguinte:
O Controlador de Rede SDN, o Balanceador de Carga de Software SDN e o gateway RAS SDN são implantados.
Uma rede VM SDN com virtualização de rede é criada.
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 seu datacenter, o gateway RAS do SDN fornece uma solução de gateway multilocatário que permite que seus locatários acessem e gerenciem seus recursos por meio de conexões VPN Site a Site de sites remotos, o que, por sua vez, permite o tráfego de rede entre recursos virtuais em seu datacenter e sua rede física.
O VMM 2025 e 2022 dão suporte à pilha dupla (Ipv4 + Ipv6) para componentes SDN.
Para habilitar o IPv6 para conexão VPN site a site, a sub-rede de roteamento deve 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:0:7' em vez de '2001:db8:0:200::7'.
Configurar conexão IPSec
Use o seguinte procedimento:
- Selecione a Rede VM que você deseja configurar uma conexão IPSec Site a Site e selecione Conectividade.
- Selecione Conectar-se a outra rede por meio de um túnel VPN. Opcionalmente, para habilitar o emparelhamento BGP em seu datacenter, selecione Habilitar BGP (Border Gateway Protocol).
- Selecione o serviço do controlador de rede para o dispositivo de gateway.
- Selecione a opção Conexões>VPN Adicionar>Adicionar Túnel IPSec.
- Insira uma sub-rede, conforme mostrado no diagrama a seguir. Essa sub-rede é usada para rotear pacotes para fora da rede VM. Você não precisa pré-configurar essa sub-rede em seu datacenter.
- Insira um nome para a conexão e o endereço IP do ponto de extremidade remoto. Opcionalmente, configure a largura de banda.
- Em Autenticação, selecione o tipo de autenticação que deseja usar. Se você 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.
- Em Rotas, insira todas as sub-redes remotas às quais você deseja se conectar. Se você selecionou Habilitar BGP (Border Gateway Protocol) na página Conectividade, as rotas não serão necessárias.
- Na guia Avançado, aceite as configurações padrão.
- Se você selecionou Ativar BGP (Border Gateway Protocol) na página Conectividade, poderá preencher o ASN, o IP BGP peer e seu ASN na página do assistente do Border Gateway Protocol , conforme mostrado abaixo.
- Para validar a conexão, tente executar ping no endereço IP do ponto de extremidade remoto de uma das máquinas virtuais em sua rede VM.
Configurar o tunelamento GRE
Os túneis GRE permitem 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 a escolha ideal para tunelamento em que a criptografia de dados não é necessária. O suporte 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:
- Selecione a rede VM em que você deseja configurar uma conexão S2S GRE e selecione Conectividade.
- Selecione Conectar-se a outra rede por meio de um túnel VPN. Opcionalmente, para habilitar o emparelhamento BGP em seu datacenter, selecione Habilitar BGP (Border Gateway Protocol).
- Selecione o serviço do controlador de rede para o dispositivo de gateway.
- Selecione Conexões>VPN Adicionar>Adicionar Túnel GRE.
- Insira uma sub-rede, conforme mostrado no diagrama a seguir. Essa sub-rede é usada para rotear pacotes para fora da rede VM. Essa sub-rede não precisa ser pré-configurada em seu datacenter.
- Insira um nome de conexão e especifique o endereço IP do ponto de extremidade remoto.
- Digite a chave GRE.
- Opcionalmente, você pode preencher os outros campos nesta tela; Esses valores não são necessários para configurar uma conexão.
- Em Rotas, adicione todas as sub-redes remotas às quais você deseja se conectar. Se você selecionou Ativar BGP (Border Gateway Protocol) em Conectividade, poderá deixar essa tela em branco e, em vez disso, preencher os campos ASN, IP BGP peer e ASN na guia Border Gateway Protocol .
- Você pode usar os padrões para as configurações restantes.
- 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 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.
Configurar o encaminhamento 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 L3, as máquinas virtuais de rede de locatário podem se conectar a uma rede física por meio do Gateway SDN do Windows Server 2016, que já está configurado em um ambiente SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtualizada e a rede física.
Para saber mais, confira estes artigos: Gateway do Windows Server como um gateway de encaminhamento e Alta disponibilidade do gateway RAS.
Verifique o seguinte antes de tentar configurar L3:
- Verifique se você está conectado como administrador no servidor VMM.
- Você deve configurar uma rede lógica de next-hop exclusiva, com ID de VLAN exclusiva, para cada rede VM 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 ID de VLAN exclusiva).
Use as etapas a seguir para criar a rede lógica do próximo salto no SCVMM:
No console do VMM, selecione Redes Lógicas, clique com o botão direito do mouse e selecione Criar Rede Lógica.
Na página Configurações, escolha Uma rede conectada e marque a caixa de seleção Criar uma rede VM com o mesmo nome para permitir que as máquinas virtuais acessem essa rede lógica diretamente e Gerenciada pelo Controlador de Rede da Microsoft
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 L3.
A tabela a seguir fornece exemplos de conexões L3 dinâmicas e estáticas.
Parâmetro | Detalhes/valores de 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 que pode ser acessada por meio de conexão de rede L3. Essa rede deve existir ao executar o script. Exemplo: ContosoVMNetwork |
PróximoHopVMNetworkName | Nome definido pelo usuário para a rede VM do próximo salto, que foi criada como um pré-requisito. Isso representa a rede física que deseja se comunicar com a rede VM do locatário. Essa rede deve existir ao executar esse 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 do próximo salto que você criou. Você também deve 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 do próximo salto que você criou nos pré-requisitos. Esse IP servirá como o próximo salto quando o tráfego destinado à rede física da rede VM do locatário atingir o gateway SDN. Exemplo: 10.127.134.65 |
GatewaySubnet | Sub-rede a ser usada para roteamento entre o gateway da HNV e a rede virtual do locatário. Você pode usar qualquer sub-rede, certifique-se de que ela não se sobreponha à rede lógica do próximo salto. Exemplo:192.168.2.0/24 |
RoteamentoSub-redes | Rotas estáticas que precisam estar na interface L3 do gateway HNV. Essas rotas são para as sub-redes de rede física, que devem ser acessíveis da rede VM do locatário pela conexão L3. |
Ativar BGP | Opção para ativar o BGP. Padrão: false. |
TenantASNRoutingSubnets | Número ASN do gateway do locatário, somente se o BGP estiver habilitado. |
Execute o script a seguir para configurar o encaminhamento 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 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 L3, as máquinas virtuais de rede do locatário podem se conectar a uma rede física por meio do Gateway SDN do Windows Server 2016/2019, que já está configurado em um ambiente SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtualizada 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 virtualizada e a rede física.
Usando a conexão de encaminhamento L3, as máquinas virtuais de rede de locatário podem se conectar a uma rede física por meio do Gateway SDN do Windows Server 2019/2022/2025, que já está configurado em um ambiente SDN. Nesse caso, o gateway SDN atua como um roteador entre a rede virtualizada e a rede física.
Para saber mais, confira estes artigos: Gateway do Windows Server como um gateway de encaminhamento e Alta disponibilidade do gateway RAS.
Certifique-se do seguinte antes de tentar configurar a conexão L3:
- Verifique se você está conectado como administrador no servidor VMM.
- Você deve configurar uma rede lógica de next-hop exclusiva, com ID de VLAN exclusiva, para cada rede VM 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 ID de VLAN exclusiva).
Use as seguintes etapas para criar a rede lógica do próximo salto no VMM:
No console do VMM, selecione Redes Lógicas, clique com o botão direito do mouse e selecione Criar Rede Lógica.
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.
Observação
No VMM 2019 UR1, um tipo de rede conectada é alterado como Rede conectada.
- Crie um pool de IPs para essa nova rede lógica. O endereço IP desse pool é necessário para configurar o encaminhamento L3.
Use as seguintes etapas para configurar o encaminhamento L3:
Observação
Você não pode limitar a largura de banda na conexão VPN L3.
No console do VMM, selecione a rede virtual do locatário que você deseja conectar à rede física por meio do gateway L3.
Clique com o botão direito do mouse na rede virtual do locatário selecionada e selecione Propriedades>Conectividade.
Selecione Conectar-se a outra rede por meio de um túnel VPN. Opcionalmente, para habilitar o emparelhamento BGP em seu datacenter, selecione Habilitar BGP (Border Gateway Protocol).
Selecione o serviço do controlador de rede para o dispositivo de gateway.
Na página Conexões VPN, selecione Adicionar>Adicionar túnel de Camada 3.
Forneça uma sub-rede no formato de notação CIDR para Sub-rede de Roteamento. Essa sub-rede é usada para rotear pacotes para fora da rede VM. Você não precisa pré-configurar essa sub-rede em seu datacenter.
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 VM do próximo salto, que foi criada como um pré-requisito. Isso representa a rede física que deseja se comunicar com a rede VM do locatário. Quando você seleciona Procurar, somente as Redes 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 deve pertencer à rede lógica do próximo salto que você criou como pré-requisito. Esse IP servirá como o próximo salto, depois que o tráfego destinado à rede física da rede VM do locatário atingir o gateway SDN. Deve ser um endereço IPv4. Pode haver vários endereços IP de pares e eles devem ser separados por vírgulas. |
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 deve fornecer a máscara de sub-rede. Exemplo: 10.127.134.55/25. Deve ser um endereço IPv4 e deve 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 em Definição de Rede Lógica da Rede VM. |
Se você estiver usando rotas estáticas, insira todas as sub-redes remotas às quais deseja se conectar, em Rotas.
Observação
Você deve configurar rotas em sua rede física, para as sub-redes de rede virtual do locatário, com o próximo salto como o endereço IP da interface L3 no gateway SDN (endereço IP local usado na criação da conexão L3). Isso é para garantir que o tráfego de retorno para a rede virtual do locatário seja roteado corretamente por meio do gateway 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 outro compartimento na VM do gateway (não no compartimento padrão) e o dispositivo par na rede física.
Para que o BGP funcione, você deve executar as seguintes etapas:
Adicione o peer BGP para a conexão L3. Insira seu ASN, IP do BGP de emparelhamento e seu ASN na página Border Gateway Protocol.
Determine o endereço interno do gateway do SDN, conforme detalhado na seção a seguir.
Crie um par 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.
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 de retorno para a rede virtual do locatário seja roteado corretamente por meio do gateway SDN.
Você pode optar por configurar rotas estáticas ou rotas dinâmicas (sobre 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ê usar o BGP com conexão de túnel L3, o pareamento BGP deverá ser 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 o dispositivo par na rede física.
Para que o BGP funcione, você deve usar as seguintes etapas:
Adicione o par BGP para a conexão L3 usando o cmdlet Add-SCBGPPeer .
Exemplo: Add-SCBGPPeer -Name "peer1" -PeerIPAddress "12.13.14.15" -PeerASN 15 -VMNetworkGateway $VmNetworkGateway
Determine o endereço interno do gateway do SDN, conforme detalhado na seção a seguir.
Crie um par 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 do par.
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 (parâmetro LocalIPAddresses no script).
Determinar o endereço interno do gateway SDN
Use este procedimento:
Execute os seguintes cmdlets do PowerShell em um computador instalado pelo controlador de rede ou em um computador 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á conhece o endereço IP da interface L3 (LocalIPAddresses) da conexão, pode identificar a conexão correta com base nesse 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 você deve configurar no roteador remoto como o endereço IP do peer.
Configurar o seletor de tráfego do PowerShell do VMM
Use o seguinte procedimento:
Observação
Os valores usados são apenas exemplos.
Crie o seletor de tráfego usando os parâmetros a seguir.
$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
Configure o seletor de tráfego acima usando o parâmetro -LocalTrafficSelectors de Add-SCVPNConnection ou Set-SCVPNConnection.