Como migrar VMs do VMware usando redes da camada 2

Nesta página, descrevemos como estender uma rede da camada 2 do seu ambiente local para a nuvem privada usando uma VPN de camada 2 (L2VPN).

É possível que a extensão baseada em L2VPN das redes de camada 2 funcione com ou sem redes baseadas em NSX no ambiente VMware local. Se você não tiver redes baseadas em NSX para cargas de trabalho no local, use um NSX Edge Services Gateway autônomo.

Cenário de implantação

Para expandir sua rede local usando L2VPN, configure um servidor L2VPN (roteador NSX-T Tier0 de destino) e um cliente L2VPN (cliente autônomo de origem).

Neste cenário de implantação, você conecta sua nuvem privada ao seu ambiente local usando um túnel VPN site a site. O túnel VPN permite que as sub-redes locais de gerenciamento e vMotion se comuniquem com as subredes particulares de gerenciamento de nuvem e vMotion. Essa disposição ativa o Cross vCenter vMotion (xVC-vMotion). Você implanta um roteador NSX-T Tier0 como um servidor L2VPN na nuvem privada.

Implante um NSX Edge autônomo no ambiente local como um cliente L2VPN e, em seguida, faça o pareamento com o servidor L2VPN. Crie um endpoint do túnel GRE de cada lado e configure-o para esticar a rede local da Camada 2 para sua nuvem privada.

Para mais informações sobre migração usando a L2VPN, consulte a documentação da VMware em Redes privadas virtuais.

Pré-requisitos

Verifique se os seguintes pré-requisitos estão em vigor antes de implantar e configurar a solução:

  • Uma VPN site a site conecta seu ambiente local e seu data center particular na nuvem.
  • A versão local do vSphere é 6.7U1+ ou 6.5P03+.
  • A licença do vSphere local está no nível do Enterprise Plus (para o vSphere distribuído com chave).
  • Você identificou que a rede de carga de trabalho da camada 2 foi estendida para sua nuvem privada.
  • Você identificou uma rede de camada 2 no ambiente local para implantar o appliance cliente L2VPN.
  • Você criou uma nuvem privada.
  • A versão do appliance NSX-T Edge autônomo é compatível com a versão NSX-T Manager (NSX-T 2.3.0) usada no seu ambiente de nuvem privada.
  • Um grupo de portas tronco já foi criado no vCenter local.
  • Um endereço IP público é reservado para uso para o endereço IP do uplink do cliente autônomo NSX-T, e uma NAT de 1:1 está ativada para tradução entre os dois endereços.
  • O encaminhamento de DNS é definido nos servidores DNS locais para que o domínio aponte para os servidores DNS particulares da nuvem.
  • A latência do RTT (tempo de retorno) é menor ou igual a 150 ms, conforme necessário para o vMotion funcionar nos dois sites.

Limitações e considerações

A tabela a seguir lista as versões do vSphere e os tipos de adaptador de rede compatíveis.

Versão do vSphere Tipo de vSwitch de origem Driver da placa de rede virtual (NIC, na sigla em inglês) Tipo de vSwitch de destino Compatível?
Tudo DVS Tudo DVS Sim
vSphere 6.7UI ou posterior, 6.5P03 ou posterior DVS VMXNET3 N-VDS Sim
vSphere 6.7UI ou posterior, 6.5P03 ou posterior DVS E1000 N-VDS Incompatível com VMware
vSphere 6.7UI ou 6.5P03, NSX-V ou versões anteriores a NSX-T2.2, 6.5P03 ou posterior Tudo Tudo N-VDS Incompatível com VMware

A partir da versão NSX-T 2.3 da VMware:

  • A chave lógica da nuvem privada que é estendida para o local por L2VPN não pode ser roteada ao mesmo tempo. A chave lógica estendida não pode ser conectada a um roteador lógico.
  • As VPNs IPSEC baseadas em rotas e L2VPN só podem ser configuradas usando chamadas de API.

Para mais informações, consulte a documentação da VMware sobre redes privadas virtuais.

Exemplo de implantação de L2VPN

As tabelas a seguir fornecem especificações de exemplo para implantação do L2VPN.

Rede local em que o ESG independente (cliente L2VPN) é implantado

Item Valor
Nome da rede MGMT_NET_VLAN469
VLAN 469
CIDR 10.250.0.0/24
Endereço IP do appliance Edge autônomo 10.250.0.111
Endereço IP NAT do appliance Edge autônomo 192.227.85.167

Rede local a ser estendida

Item Valor
VLAN 472
CIDR 10.250.3.0/24

Esquema de IP de nuvem privada para o roteador NSX-T Tier0 (servidor L2VPN)

Item Valor
Interface de loopback 192.168.254.254/32
Interface do túnel 5.5.5.1/29
Chave lógica (estendida) Stretch_LS
Interface de loopback (endereço IP NAT) 104.40.21.81

Rede de nuvem privada a ser mapeada para a rede estendida

Item Valor
VLAN 712
CIDR 10.200.15.0/24

Conseguir o ID do roteador lógico necessário para a L2VPN

As etapas a seguir mostram como buscar o ID do roteador lógico de uma instância de DR Tier0 para os serviços IPsec e L2VPN. Use o ID do roteador lógico mais tarde, ao implementar a L2VPN.

  1. Faça login no NSX-T Manager e selecione Networking > Routers > Provider-LR > Overview. Em Modo de alta disponibilidade, selecione Active-Standby. Essa ação abre uma janela pop-up que mostra a VM do Edge em que o roteador Tier0 está ativo no momento.
  2. Selecione Fabric > Nós > Edges. Anote o endereço IP de gerenciamento da VM do Edge ativa (Edge VM1) identificada na etapa anterior.
  3. Abra uma sessão SSH para o endereço IP de gerenciamento da VM do Edge. Execute o comando get-logical-router.
  4. Caso não veja uma entrada DR-Provider-LR, conclua as etapas a seguir:
    • Crie duas chaves lógicas com sobreposição. Uma chave lógica é estendida para o local onde as cargas de trabalho migradas residem. Para mais informações, consulte Como criar uma chave lógica.
    • Anexe a segunda chave lógica ao roteador Tier1 com um endereço IP de link local ou qualquer sub-rede não sobreposta do local ou da nuvem privada. Para mais informações, consulte Como adicionar uma porta de downlink em um roteador lógico de nível 1.
    • Execute o comando get logical-router novamente na sessão SSH da VM do Edge. A saída mostra que o UUID do roteador lógico DR-Provider-LR é exibido. Anote o UUID, que é necessário para configurar a L2VPN.

Conseguir o ID da chave lógica necessário para L2VPN

  1. Faça login no NSX-T Manager.
  2. Selecione Networking > Switching > Switches > Overview.
  3. Anote o UUID da chave lógica de extensão, que é necessária ao configurar a L2VPN.

Considerações de roteamento e segurança para a L2VPN

Para estabelecer uma VPN IPsec baseada em rota entre o roteador NSX-T Tier0 e o cliente NSX Edge autônomo, a interface de loopback do roteador NSX-T Tier0 precisa se comunicar com o endereço IP público do cliente autônomo NSX local por UDP 500/4.500.

Permitir UDP 500/4.500 para IPsec

  1. Aloque um endereço IP público para a interface de loopback NSX-T Tier0 no portal do Google Cloud VMware Engine.
  2. Crie uma tabela de firewall com regras com estado que permitam tráfego de entrada UDP 500/4.500 e anexe a tabela de firewall à sub-rede NSX-T HostTransport.
  1. Crie uma rota nula para a rede de interface de loopback.
    • Faça login no NSX-T Manager e selecione Networking > Routing > Routers > Provider-LR > Routing > Static routes.
    • Clique em Add.
    • Em Network, digite o endereço IP da interface de loopback.
    • Em Next Hops, clique em Add e especifique Null para o próximo salto. Mantenha o padrão de 1 para Admin distance.
  2. Crie uma lista de prefixos de IP.
    • Faça login no NSX-T Manager e selecione Networking > Routing > Routers > Provider-LR > Routing > IP prefix lists.
    • Clique em Add.
    • Digite um nome para identificar a lista.
    • Em Prefixes, clique em Add duas vezes.
    • Na primeira linha, insira 0.0.0.0/0 para Network e Deny para Action.
    • Na segunda linha, selecione Any para Network e Permit para Action.
  3. Anexe a lista de prefixos de IP a ambos os vizinhos do BGP (TOR). Anexar a lista de prefixos de IP ao vizinho do BGP impede que a rota padrão seja divulgada no BGP para as chaves TOR. No entanto, qualquer outra rota que inclua a rota nula anuncia o endereço IP da interface de loopback para as chaves TOR.
  4. Faça login no NSX-T Manager e selecione Networking > Routing > Routers >Provider-LR > Routing > BGP > Neighbors. Selecione o primeiro vizinho.
    • Clique em Edit > Address families.
    • Para a família IPv4, edite a coluna Out filter e selecione a lista de prefixos de IP que você criou. Clique em Salvar. Repita essa etapa para o segundo vizinho.
  5. Redistribua a rota estática nula no BGP. Para divulgar a rota de interface de loopback para o subordinado, é necessário redistribuir a rota estática nula no BGP.
    • Faça login no NSX-T Manager e selecione Networking > Routing > Routers > Provider-LR > Routing > Route redistribution > Neighbors.
    • Selecione Provider-LR-route_redistribution e clique em Edit.
    • Marque a caixa de seleção Static e clique em Save.

Configurar uma VPN baseada em rota no roteador NSX-T Tier0

Use o modelo a seguir para fornecer todos os detalhes para configurar uma VPN baseada em rota no roteador NSX-T Tier0. Os UUIDs em cada chamada POST são obrigatórios nas chamadas POST subsequentes.

Os endereços IP para as interfaces de loopback e túnel para L2VPN precisam ser exclusivos e não podem se sobrepor às redes em nuvem locais ou particulares. A rede da interface de loopback precisa ser sempre /32.

Loopback interface ip : 192.168.254.254/32
Tunnel interface subnet : 5.5.5.0/29
Logical-router ID : UUID of Tier0 DR logical router obtained in section "Steps to fetch Logical-Router ID needed for L2VPN"
Logical-switch ID(Stretch) : UUID of Stretch Logical Switch obtained earlier
IPSec Service ID :
IKE profile ID :
DPD profile ID :
Tunnel Profile ID :
Local-endpoint ID :
Peer end-point ID :
IPSec VPN session ID (route-based) :
L2VPN service ID :
L2VPN session ID :
Logical-Port ID :
Peer Code :

Para todas as chamadas de API a seguir, substitua o endereço IP pelo seu endereço IP do NSX-T Manager. É possível executar todas essas chamadas de API usando comandos curl.

Ativar o serviço VPN IPSec no roteador lógico

POST   https://192.168.110.201/api/v1/vpn/ipsec/services/
{
"resource_type": "IPSecVPNService",
"description": "Manage VPN service",
"display_name": "IPSec VPN service",
"logical_router_id": "Logical-router ID",
"ike_log_level": "INFO",
"enabled": true
}

Criar perfis: IKE

POST https://192.168.110.201/api/v1/vpn/ipsec/ike-profiles

{
"resource_type": "IPSecVPNIKEProfile",
"description": "IKEProfile for siteA",
"display_name": "IKEProfile siteA",
"encryption_algorithms": ["AES_128"],
"ike_version": "IKE_V2",
"digest_algorithms": ["SHA2_256"],
"sa_life_time":21600,
"dh_groups": ["GROUP14"]
}

Criar perfis: DPD

POST  https://192.168.110.201/api/v1/vpn/ipsec/dpd-profiles

{
"resource_type": "IPSecVPNDPDProfile",
"display_name": "nsx-default-dpd-profile",
"enabled": true
}

Criar perfis: túnel

POST  https://192.168.110.201/api/v1/vpn/ipsec/tunnel-profiles

{
"resource_type": "IPSecVPNTunnelProfile",
"display_name": "nsx-default-tunnel-profile",
"enable_perfect_forward_secrecy": true,
"encryption_algorithms": ["AES_GCM_128"],
"digest_algorithms": [],
"sa_life_time":3600,
"dh_groups": ["GROUP14"],
"encapsulation_mode": "TUNNEL_MODE",
"transform_protocol": "ESP",
"df_policy": "COPY"
}

Criar um endpoint local

{
"resource_type": "IPSecVPNLocalEndpoint",
"description": "Local endpoint",
"display_name": "Local endpoint",
"local_id": "Public IP of Loopback interface",
"ipsec_vpn_service_id": {
"target_id": "IPSec VPN service ID"},
"local_address": "IP of Loopback interface",
"trust_ca_ids": [],
"trust_crl_ids": []
}

Criar um endpoint de peering

POST https://192.168.110.201/api/v1/vpn/ipsec/peer-endpoints

{
"resource_type": "IPSecVPNPeerEndpoint",
"description": "Peer endpoint for site B",
"display_name": "Peer endpoint for site B",
"connection_initiation_mode": "INITIATOR",
"authentication_mode": "PSK",
"ipsec_tunnel_profile_id": "IPSec Tunnel profile ID",
"dpd_profile_id": "DPD profile ID",
"psk":"nsx",
"ike_profile_id": "IKE profile ID",
"peer_address": "Public IP of Standalone client",
"peer_id": "Public IP of Standalone client"
}

Criar uma sessão VPN com base em rota

POST :  https://192.168.110.201/api/v1/vpn/ipsec/sessions

{
"resource_type": "RouteBasedIPSecVPNSession",
"peer_endpoint_id": "Peer Endpoint ID",
"ipsec_vpn_service_id": "IPSec VPN service ID",
"local_endpoint_id": "Local Endpoint ID",
"enabled": true,
"tunnel_ports": [
{
"ip_subnets": [
{
"ip_addresses": [
 "5.5.5.1"
],
"prefix_length": 24
}
  ]
}
]
}

Configurar a L2VPN no roteador NSX-T Tier0

Forneça as seguintes informações após cada chamada POST. Os IDs são obrigatórios em chamadas POST subsequentes.

L2VPN Service ID:
L2VPN Session ID:
Logical Port ID:

Criar o serviço L2VPN

A saída do seguinte comando GET estará vazia, porque a configuração ainda não foi concluída.

GET : https://192.168.110.201/api/v1/vpn/l2vpn/services

Para o comando POST a seguir, o ID do roteador lógico é o UUID do roteador lógico DR Tier0 encontrado anteriormente.

POST : https://192.168.110.201/api/v1/vpn/l2vpn/services

{
"logical_router_id": "Logical Router ID",
"enable_full_mesh" : true
}

Criar a sessão L2VPN

Para o comando POST a seguir, o ID do serviço L2VPN é o ID que você acabou de receber, e o ID da sessão de VPN IPsec é o ID recebido na seção anterior.

POST: https://192.168.110.201/api/v1/vpn/l2vpn/sessions

{
"l2vpn_service_id" : "L2VPN service ID",
"transport_tunnels" : [
{
"target_id" : "IPSec VPN session ID"
}
]
}

Essas chamadas criam um endpoint de túnel GRE. Para verificar o status, execute o comando a seguir.

edge-2> get tunnel-port
Tunnel      : 44648dae-8566-5bc9-a065-b1c4e5c3e03f
IFUID       : 328
LOCAL       : 169.254.64.1
REMOTE      : 169.254.64.2
ENCAP       : GRE

Tunnel      : cf950ca1-5cf8-5438-9b1a-d2c8c8e7229b
IFUID       : 318
LOCAL       : 192.168.140.155
REMOTE      : 192.168.140.152
ENCAP       : GENEVE

Tunnel      : 63639321-87c5-529e-8a61-92c1939799b2
IFUID       : 304
LOCAL       : 192.168.140.155
REMOTE      : 192.168.140.156
ENCAP       : GENEVE

Criar uma porta lógica com o ID do túnel especificado

   POST https://192.168.110.201/api/v1/logical-ports/

{
"resource_type": "LogicalPort",
"display_name": "Extend logicalSwitch, port for service",
"logical_switch_id": "Logical switch ID",
"admin_state" : "UP",
"attachment": {
"attachment_type":"L2VPN_SESSION",
"id":"L2VPN session ID",
"context" : {
"resource_type" : "L2VpnAttachmentContext",
    "tunnel_id" : 10
}
    }
        }

Receber o código de peering para L2VPN no lado da NSX-T

Consiga o código de peering do endpoint NSX-T. O código de peering é necessário ao configurar o endpoint remoto. A L2VPN pode ser obtida na seção anterior. Para mais informações, consulte a API NSX-T 2.3.

GET https://192.168.110.201/api/v1/vpn/l2vpn/sessions/session-id/peer-codes

Implantar o cliente autônomo NSX-T (no local)

Antes de implantar, verifique se as regras de firewall locais permitem tráfego UDP 500/4.500 de entrada e saída para o endereço IP reservado anteriormente para a interface de loopback do roteador NSX-T T0.

  1. Faça o download do OVF do cliente Edge autônomo e extraia os arquivos do pacote transferido por download para uma pasta.
  2. Acesse a pasta com todos os arquivos extraídos.
  3. Selecione todos os arquivos vmdks e clique em Next.
    • NSX-l2t-client-large.mf e NSX-l2t-client-large.ovf para dispositivos de grande porte.
    • NSX-l2t-client-Xlarge.mf e NSX-l2t-client-Xlarge.ovf para appliances muito grandes.
  4. Digite um nome para o cliente NSX-T autônomo e clique em Next.
  5. Clique em Next conforme necessário para acessar as configurações do armazenamento de dados.
  6. Selecione o armazenamento de dados apropriado para o cliente NSX-T autônomo e clique em Next.
  7. Selecione os grupos de portas corretos para as interfaces Trunk (Trunk PG), Public (Uplink PG) e HA (Uplink PG) para o cliente NSX-T autônomo. Clique em Next.
  8. Forneça as seguintes informações na tela Customize template e clique em Next.
    • Expandir L2T:
      • Endereço de peering. Digite o endereço IP reservado no portal do Google Cloud VMware Engine para a interface de loopback NSX-T Tier0.
      • Código de peering. Cole o código de peering recebido na implantação do servidor L2VPN.
      • VLAN de subinterfaces (ID do túnel). Digite o ID da VLAN a ser estendida. Entre parênteses (), insira o ID do túnel que foi configurado anteriormente.
    • Expandir interface de uplink:
      • Endereço IP do DNS: insira o endereço IP do DNS local.
      • Gateway padrão: insira o gateway da VLAN para atuar como o gateway padrão desse cliente.
      • Endereço IP: insira o endereço IP do uplink do cliente autônomo.
      • Tamanho do prefixo: insira o tamanho do prefixo da VLAN/sub-rede do uplink.
      • Senha CLI de usuário admin/enable/root: defina a senha da conta de admin/enable/root.
  9. Revise as configurações e clique em Finish.

Configurar uma porta de coletor local

Se um dos sites VPN não tiver o NSX implantado, configure uma L2VPN implantando um NSX Edge autônomo nesse site. Para que um dispositivo de gateway de serviços de borda funcione como um cliente L2VPN, implante uma borda autônoma usando um arquivo OVF em um host que não seja gerenciado pelo NSX.

Se um vNIC de troncos Edge autônomo estiver conectado a uma chave distribuída do vSphere, será necessário um modo promissivo ou uma porta de coletor para a função L2VPN. Usar o modo permissivo pode causar respostas e pings duplicados. Por isso, use o modo de porta do coletor na configuração do NSX Edge autônomo da L2VPN. Para mais informações, consulte Como configurar uma porta de coletor.

Verificação de VPN IPsec e L2VPN

Use os seguintes comandos para verificar as sessões IPsec e L2VPN do Edge autônomo de NSX-T.

nsx-l2t-edge> show service ipsec
-----------------------------------------------------------------------
vShield Edge IPSec Service Status:
IPSec Server is running.
AESNI is enabled.
Total Sites: 1, 1 UP, 0 Down
Total Tunnels: 1, 1 UP, 0 Down
----------------------------------
Site:  10.250.0.111_0.0.0.0/0-104.40.21.81_0.0.0.0/0
Channel: PeerIp: 104.40.21.81    LocalIP: 10.250.0.111  Version: IKEv2  Status: UP
Tunnel: PeerSubnet: 0.0.0.0/0    LocalSubnet: 0.0.0.0/0   Status: UP
----------------------------------
nsx-l2t-edge> show service l2vpn
L2 VPN is running
----------------------------------------
L2 VPN type: Client/Spoke

SITENAME                       IPSECSTATUS          VTI                  GRE
1ecb00fb-a538-4740-b788-c9049e8cb6c6 UP                   vti-100              l2t-1

Use os seguintes comandos para verificar as sessões IPsec e L2VPN do roteador NSX-T Tier0.

edge-2> get ipsecvpn session
Total Number of Sessions: 1

IKE Session ID : 3
UUID           : 1ecb00fb-a538-4740-b788-c9049e8cb6c6
Type           : Route

Local IP       : 192.168.254.254      Peer IP        : 192.227.85.167
Local ID       : 104.40.21.81         Peer ID        : 192.227.85.167
Session Status : Up

Policy Rules
    VTI UUID       : 4bf96e3b-e50b-49cc-a16e-43a6390e3d53
    ToRule ID      : 560874406            FromRule ID    : 2708358054
    Local Subnet   : 0.0.0.0/0            Peer Subnet    : 0.0.0.0/0
    Tunnel Status  : Up
edge-2> get l2vpn session
Session       : f7147137-5dd0-47fe-9e53-fdc2b687b160
Tunnel        : b026095b-98c8-5932-96ff-dda922ffe316
IPSEC Session : 1ecb00fb-a538-4740-b788-c9049e8cb6c6
Status        : UP

Use os seguintes comandos para verificar a porta do coletor no host do ESXi, em que a VM do cliente NSX-T reside no ambiente local.

[root@esxi02:~] esxcfg-vswitch -l |grep NSX
  53                  1           NSXT-client-large.eth2
  225                1           NSXT-client-large.eth1
  52                  1           NSXT-client-large.eth0
[root@esxi02:~] net-dvs -l | grep "port\ [0-9]\|SINK\|com.vmware.common.alias"
                com.vmware.common.alias = csmlab2DS ,   propType = CONFIG
        port 24:
        port 25:
        port 26:
        port 27:
        port 13:
        port 19:
        port 169:
        port 54:
        port 110:
        port 6:
        port 107:
        port 4:
        port 199:
        port 168:
        port 201:
        port 0:
        port 49:
        port 53:
        port 225:
                com.vmware.etherswitch.port.extraEthFRP =   SINK
        port 52:

A seguir