Encaminhar tráfego pelas redes numa infraestrutura SDN
Importante
Esta versão do Virtual Machine Manager (VMM) chegou ao fim do suporte. Recomendamos que atualize para o VMM 2022.
Este artigo descreve como encaminhar o tráfego entre redes numa infraestrutura de rede definida pelo software (SDN) configurada nos recursos de infraestrutura do System Center Virtual Machine Manager (VMM).
Um gateway RAS de SDN permite-lhe encaminhar o tráfego de rede entre redes físicas e virtuais, independentemente da localização dos recursos. O gateway RAS da SDN é multi-inquilino, compatível com o Protocolo BGP (Boarder Gateway Protocol) e suporta a conectividade através da rede privada virtual (VPN) site a site com o IPsec ou o Encapsulamento de Encaminhamento Genérico (GRE) ou o Reencaminhamento de Camada 3. Saiba mais.
Nota
- A partir do VMM 2019 UR1, um tipo de rede Ligado é alterado como Rede Ligada.
- O VMM 2019 UR2 e posterior suporta IPv6.
- O IPv6 é suportado para túnel IPSec, túnel GRE e túnel de camada L3.
Nota
- O IPv6 é suportado para túnel IPSec, túnel GRE e túnel de camada L3.
Antes de começar
Certifique-se do seguinte:
O Controlador de Rede SDN, o Software SDN Balanceador de Carga e o gateway RAS SDN são implementados.
É criada uma rede VM SDN com virtualização de rede.
Configurar ligações VPN Site a Site com o VMM
Uma ligação VPN site a site permite-lhe ligar de forma segura duas redes em diferentes localizações físicas através da Internet.
Para Os Fornecedores de Serviços Cloud (CSPs) que alojam muitos inquilinos no respetivo datacenter, o gateway RAS da SDN fornece uma solução de gateway multi-inquilino que permite aos inquilinos aceder e gerir os respetivos recursos através de ligações de Rede de VPNs a partir de sites remotos, o que, por sua vez, permite o tráfego de rede entre recursos virtuais no seu datacenter e a respetiva rede física.
O VMM 2022 suporta pilha dupla (Ipv4 + Ipv6) para componentes SDN.
Para ativar o IPv6 para a ligação VPN site a site, a sub-rede de encaminhamento tem de ser IPv4 e IPv6. Para que o gateway funcione em IPv6, forneça endereços IPv4 e IPv6 separados por ponto e vírgula (;) e forneça o endereço IPv6 no ponto final remoto. Por exemplo, 192.0.2.1/23; 2001:0db8:85a3:0000:0000:8a2e:0370::/64. Para especificar o intervalo VIP, não utilize a forma abreviada do endereço IPv6; utilize o formato '2001:db8:0:200:0:0:0:7' em vez de '2001:db8:0:200::7'.
Configurar a ligação IPSec
Utilize o seguinte procedimento:
- Selecione a Rede VM que pretende configurar uma ligação IPSec Site a Site e selecione Conectividade.
- Selecione Ligar a outra rede através de um túnel VPN. Opcionalmente, para ativar o peering BGP no datacenter, selecione Ativar o Protocolo BGP.
- Selecione o serviço de controlador de rede para o dispositivo de gateway.
- Selecione a Connections>Adicionar>Adicionar Túnel IPSec.
- Escreva uma sub-rede, conforme mostrado no diagrama seguinte. Esta sub-rede é utilizada para encaminhar pacotes para fora da rede VM. Não precisa de pré-configurar esta sub-rede no seu datacenter.
- Escreva um nome para a ligação e o endereço IP do ponto final remoto. Opcionalmente, configure a largura de banda.
- Em Autenticação, selecione o tipo de autenticação que pretende utilizar. Se optar por efetuar a autenticação com uma conta Run As, crie uma conta de utilizador com um nome de utilizador e a chave IPSec como a palavra-passe da conta.
- Em Rotas, escreva todas as sub-redes remotas a que pretende ligar. Se tiver selecionado Ativar Protocolo BGP (Border Gateway Protocol) na página Conectividade , não são necessárias rotas.
- No separador Avançadas, aceite as predefinições.
- Se tiver selecionado Ativar Protocolo BGP (Border Gateway Protocol) na página Conectividade, pode preencher o ASN, o IP BGP do elemento da rede e o ASN na página do assistente protocolo BGP, conforme mostrado abaixo:
- Para validar a ligação, tente enviar ping para o endereço IP do ponto final remoto a partir de uma das máquinas virtuais na sua rede VM.
Configurar o túnel GRE
Os túneis GRE permitem a conectividade entre redes virtuais de inquilinos e redes externas. Uma vez que o protocolo GRE é simples e o suporte para GRE está disponível na maioria dos dispositivos de rede, torna-se uma opção ideal para o túnel onde a encriptação de dados não é necessária. O suporte gre em túneis Sit-to-Site (S2S) facilita o reencaminhamento de tráfego entre redes virtuais de inquilinos e redes externas de inquilinos.
Utilize o seguinte procedimento:
- Selecione a rede VM onde pretende configurar uma ligação GRE S2S e selecione Conectividade.
- Selecione Ligar a outra rede através de um túnel VPN. Opcionalmente, para ativar o peering BGP no datacenter, selecione Ativar o Protocolo BGP.
- Selecione o Serviço de Controlador de Rede para o Dispositivo de Gateway.
- Selecione VPN Connections>Adicionar>Adicionar Túnel GRE.
- Escreva uma sub-rede, conforme mostrado no diagrama seguinte. Esta sub-rede é utilizada para encaminhar pacotes para fora da rede VM. Esta sub-rede não precisa de ser pré-configurada no seu datacenter.
- Escreva um nome de ligação e especifique o endereço IP do ponto final remoto.
- Escreva a chave GRE.
- Opcionalmente, pode concluir os outros campos neste ecrã; estes valores não são necessários para configurar uma ligação.
- Em Rotas, adicione todas as sub-redes remotas a que pretende ligar. Se tiver selecionado Ativar Protocolo BGP (Border Gateway Protocol) em Conectividade, pode deixar este ecrã em branco e, em vez disso, concluir os campos ASN, IP BGP do elemento da rede e ASN no separador Protocolo DO Gateway de Limite .
- Pode utilizar as predefinições para as definições restantes.
- Para validar a ligação, tente fazer ping no endereço IP do ponto final remoto a partir de uma das máquinas virtuais na rede VM.
Configurar ligações IPsec e GRE no site remoto
No dispositivo de peering remoto, utilize o endereço IP do ponto final de rede da VM da IU do VMM como Endereço de destino ao configurar a ligação IPSec\GRE.
Configurar o reencaminhamento L3
O reencaminhamento L3 permite a conectividade entre a infraestrutura física no datacenter e a infraestrutura virtualizada na cloud de virtualização de rede Hyper-V.
Com o reencaminhamento L3, as máquinas virtuais de rede de inquilinos podem ligar-se a uma rede física através do Gateway de SDN Windows Server 2016, que já está configurado num ambiente SDN. Neste caso, o gateway de SDN atua como um router entre a rede virtualizada e a rede física.
Para saber mais, veja estes artigos: O Gateway do Windows Server como um gateway de reencaminhamento e Elevada disponibilidade no gateway RAS.
Certifique-se do seguinte antes de tentar configurar o L3:
- Certifique-se de que tem sessão iniciada como administrador no servidor do VMM.
- Tem de configurar uma rede lógica de próximo salto exclusiva, com ID de VLAN exclusivo, para cada rede VM de Inquilino para a qual o reencaminhamento L3 tem de ser configurado. Tem de existir um mapeamento 1:1 entre uma rede de inquilino e a rede física correspondente (com ID de VLAN exclusivo).
Utilize os seguintes passos para criar a rede lógica de próximo salto no SCVMM:
Na consola do VMM, selecione Redes Lógicas, clique com o botão direito do rato e selecione Criar Rede Lógica.
Na página Definições , selecione Uma rede ligada e selecione a caixa de verificação Criar uma rede VM com o mesmo nome para permitir que as máquinas virtuais acedam diretamente a esta rede lógica e Geridas pelo Controlador de Rede da Microsoft
Crie um Conjunto IP para esta nova rede lógica.
O endereço IP deste conjunto é necessário no script para configurar o reencaminhamento L3.
A tabela seguinte fornece exemplos de ligações L3 dinâmicas e estáticas.
Parâmetro | Detalhes/valores de exemplo |
---|---|
L3VPNConnectionName | Nome definido pelo utilizador da ligação de rede de reencaminhamento L3. Exemplo: Contoso_L3_GW |
VmNetworkName | Nome da rede virtual do inquilino que está acessível através de ligação de rede L3. Esta rede tem de existir ao executar o script. Exemplo: ContosoVMNetwork |
NextHopVMNetworkName | Nome definido pelo utilizador para a rede VM de salto seguinte, que foi criada como um pré-requisito. Isto representa a rede física que quer comunicar com a rede VM do inquilino. Esta rede tem de existir ao executar este script. Exemplo: Contoso_L3_Network |
LocalIPAddresses | Endereços IP a configurar na interface de rede L3 do gateway de SDN. Este endereço IP tem de pertencer à rede lógica de salto seguinte que criou. Também tem de 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 através da rede lógica L3. Este endereço IP tem de pertencer à rede lógica de salto seguinte que criou nos pré-requisitos. Este IP servirá como o próximo salto assim que o tráfego destinado à rede física a partir da rede VM do inquilino chegar ao gateway de SDN. Exemplo: 10.127.134.65 |
GatewaySubnet | Sub-rede a ser utilizada para encaminhamento entre o gateway HNV e a rede virtual de inquilino. Pode utilizar qualquer sub-rede, garantir que não se sobrepõe à rede lógica de salto seguinte. Exemplo:192.168.2.0/24 |
RoutingSubnets | Rotas estáticas que precisam de estar na interface L3 do gateway HNV. Estas rotas destinam-se às sub-redes de rede física, que devem ser acessíveis a partir da rede VM do inquilino através da ligação L3. |
EnableBGP | Opção para ativar o BGP. Predefinição: falso. |
TenantASNRoutingSubnets | Número ASN do gateway de inquilino, apenas se o BGP estiver ativado. |
Execute o seguinte script para configurar o reencaminhamento L3. Veja 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 reencaminhamento L3
O reencaminhamento L3 permite a conectividade entre a infraestrutura física no datacenter e a infraestrutura virtualizada na cloud de virtualização de rede Hyper-V.
Com a ligação de reencaminhamento L3, as máquinas virtuais de rede de inquilinos podem ligar-se a uma rede física através do Gateway de SDN de Windows Server 2016/2019, que já está configurado num ambiente SDN. Neste caso, o gateway de SDN atua como um router entre a rede virtualizada e a rede física.
Com a ligação de reencaminhamento L3, as máquinas virtuais de rede de inquilinos podem ligar-se a uma rede física através do Gateway de SDN de Windows Server 2016/2019/2022, que já está configurado num ambiente SDN. Neste caso, o gateway de SDN atua como um router entre a rede virtualizada e a rede física.
Para saber mais, veja estes artigos: O Gateway do Windows Server como um gateway de reencaminhamento e Elevada disponibilidade no gateway RAS.
Certifique-se do seguinte antes de tentar configurar a ligação L3:
- Certifique-se de que tem sessão iniciada como administrador no servidor do VMM.
- Tem de configurar uma rede lógica de próximo salto exclusiva, com ID de VLAN exclusivo, para cada rede VM de Inquilino para a qual o reencaminhamento L3 tem de ser configurado. Tem de haver um mapeamento 1:1 entre uma rede de inquilino e uma rede física correspondente (com ID de VLAN exclusivo).
Utilize os seguintes passos para criar a rede lógica de próximo salto no VMM:
Na consola do VMM, selecione Redes Lógicas, clique com o botão direito do rato e selecione Criar Rede Lógica.
Na página Definições , selecione Uma rede ligada e selecione Criar uma rede VM com o mesmo nome para permitir que as máquinas virtuais acedam diretamente a esta rede lógica e Geridas pelo Controlador de Rede da Microsoft.
Nota
No UR1 do VMM 2019, o tipo de rede Ligado é alterado como Rede Ligada.
- Crie um Conjunto IP para esta nova rede lógica. O endereço IP deste conjunto é necessário para configurar o reencaminhamento L3.
Utilize os seguintes passos para configurar o reencaminhamento L3:
Nota
Não pode limitar a largura de banda na ligação VPN L3.
Na consola do VMM, selecione a rede virtual de inquilino que pretende ligar à rede física através do gateway L3.
Clique com o botão direito do rato na rede virtual de inquilino selecionada, selecioneConectividadede Propriedades>.
Selecione Ligar a outra rede através de um túnel VPN. Opcionalmente, para ativar o peering BGP no datacenter, selecione Ativar o Protocolo BGP.
Selecione o serviço de controlador de rede para o dispositivo de gateway.
Na página Connections VPN, selecioneAdicionar túnel Adicionar> Camada 3.
Forneça uma sub-rede no formato de notação CIDR para a Sub-rede de Encaminhamento. Esta sub-rede é utilizada para encaminhar pacotes para fora da rede VM. Não precisa de pré-configurar esta sub-rede no seu datacenter.
Utilize as seguintes informações e configure a ligação L3:
Parâmetro | Detalhes |
---|---|
Name | Nome definido pelo utilizador da ligação de rede de reencaminhamento L3. |
Rede VM (NextHop) | Nome definido pelo utilizador para a rede VM de salto seguinte, que foi criada como um pré-requisito. Isto representa a rede física que quer comunicar com a rede VM do inquilino. Quando seleciona Procurar, apenas as Redes VM Ligadas geridas pelo serviço rede estarão disponíveis para seleção. |
Endereço IP do Elemento Da Rede | Endereço IP do gateway de rede física acessível através da rede lógica L3. Este endereço IP tem de pertencer à rede lógica de salto seguinte que criou como pré-requisito. Este IP servirá como o próximo salto, assim que o tráfego destinado à rede física a partir da rede VM do inquilino chegar ao gateway de SDN. Tem de ser um endereço IPv4. Pode haver vários endereços IP do elemento da rede, que têm de ser separados por vírgulas. |
Endereços IP Locais | Endereços IP a configurar na interface de rede L3 do gateway de SDN. Estes endereços IP têm de pertencer à rede lógica de salto seguinte que criou como pré-requisito. Também tem de fornecer a máscara de sub-rede. Exemplo: 10.127.134.55/25. Tem de ser um endereço IPv4 e deve estar no formato de notação CIDR. O endereço IP do elemento da rede e os endereços IP locais devem ser do mesmo Conjunto. Estes endereços IP devem pertencer à sub-rede definida na Definição de Rede Lógica da Rede VM. |
Se estiver a utilizar rotas estáticas, escreva todas as sub-redes remotas às quais pretende ligar, em Rotas.
Nota
Tem de configurar rotas na sua rede física, para as sub-redes de rede virtual do inquilino, com o próximo salto como o endereço IP da interface L3 no gateway SDN (endereço IP local utilizado na criação da ligação L3). Isto é para garantir que o tráfego de retorno para a rede virtual do inquilino é encaminhado corretamente através do gateway de SDN.
Se estiver a utilizar o BGP, certifique-se de que o peering BGP é estabelecido entre o endereço IP da interface interna do gateway de SDN, que está presente num compartimento diferente na VM do gateway (não no compartimento predefinido) e o dispositivo de peering na rede física.
Para que o BGP funcione, tem de seguir os seguintes passos:
Adicione o elemento de rede BGP para a ligação L3. Introduza o SEU ASN, o IP BGP do elemento da rede e o respetivo ASN na página Protocolo do Gateway de Fronteira .
Determine o endereço interno do gateway de SDN conforme detalhado na secção seguinte.
Crie um elemento de rede BGP na extremidade remota (gateway de rede física). Ao criar o elemento de rede BGP, utilize o endereço interno do gateway de SDN (conforme determinado no passo anterior) como o endereço IP do elemento da rede.
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 de endereço IP local utilizado ao criar a ligação L3).
Nota
Depois de configurar a ligação L3, tem de configurar rotas na sua rede física para as sub-redes de rede virtual do inquilino, com o próximo salto como o endereço IP da interface L3 no gateway SDN (parâmetro LocalIpAddresses no script). Isto é para garantir que o tráfego de retorno para a rede virtual do inquilino é encaminhado corretamente através do gateway de SDN.
Pode optar por configurar rotas estáticas ou rotas dinâmicas (através de BGP) com a ligação L3. Se estiver a utilizar rotas estáticas, pode adicioná-las com Add-SCNetworkRoute, conforme descrito no script abaixo.
Se utilizar o BGP com ligação de túnel L3, o peering bgp tem de ser estabelecido entre o endereço IP da interface interna do gateway de SDN, que está presente num compartimento diferente na VM do gateway (não o compartimento predefinido) e o dispositivo de elemento da rede física.
Para que o BGP funcione, tem de utilizar os seguintes passos:
Adicione o elemento de rede BGP para a ligação L3 com 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 de SDN conforme detalhado na secção seguinte.
Crie um elemento da rede BGP na extremidade remota (gateway de rede física). Ao criar o elemento da rede BGP, utilize o endereço interno do gateway de SDN (determinado no passo 2 acima) como o endereço IP do elemento da rede.
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 de SDN
Utilize o seguinte procedimento:
Execute os seguintes cmdlets do PowerShell num computador instalado do controlador de rede ou num computador que tenha sido configurado como um cliente de controlador de rede:
$gateway = Get-NetworkControllerVirtualGateway -ConnectionUri <REST uri of your deployment>
$gateway.Properties.NetworkConnections.Properties.IPAddresses
Os resultados deste comando podem apresentar vários gateways virtuais, consoante o número de inquilinos que tenham configurado ligações de gateway. Cada gateway virtual pode ter várias ligações (IPSec, GRE, L3).
Como já sabe o endereço IP da interface L3 (LocalIPAddresses) da ligação, pode identificar a ligação correta com base nesse endereço IP. Depois de ter a ligação de rede correta, execute o seguinte comando (no gateway virtual correspondente) para obter o endereço IP do router BGP do gateway virtual.
$gateway.Properties.BgpRouters.Properties.RouterIp
O resultado deste comando fornece o endereço IP que tem de configurar no router remoto como o Endereço IP do elemento da rede.
Configurar o seletor de tráfego a partir do PowerShell do VMM
Utilize o seguinte procedimento:
Nota
Os valores utilizados são apenas exemplos.
Crie o seletor de tráfego com os parâmetros seguintes.
$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 com o parâmetro LocalTrafficSelectors de Add-SCVPNConnection ou Set-SCVPNConnection.