Exercício – criar um gateway de VPN site a site com comandos da CLI do Azure

Concluído

Agora está pronto para concluir o seu gateway de VPN site a site através da criação de endereços IP públicos, gateways de rede virtual e ligações. Lembre-se de que utilizou marcadores de posição para as referências de endereço IP público quando criou os gateways de rede local. Portanto, uma das suas tarefas agora é atualizar estes gateways com os endereços IP públicos reais atribuídos aos seus gateways de rede virtual.

Idealmente, os endereços IP públicos e os gateways de rede virtual devem ser criados antes de os gateways de rede local. Neste exercício, você verá como atualizar os gateways de rede local. Pode utilizar os mesmos comandos para atualizar qualquer elemento de configuração nos gateways de rede local, tais como espaços de endereços de rede remota.

Criar o gateway de VPN do lado do Azure

Primeiro, você cria o gateway VPN para o final da conexão do Azure. A criação de um gateway de rede virtual pode demorar até 45 minutos a ser concluída. Para economizar tempo, use os comandos da CLI do Azure com o --no-wait parâmetro. Este parâmetro permite-lhe criar ambos os gateways de rede virtual em simultâneo para minimizar o tempo total necessário para criar estes recursos.

  1. Execute o seguinte comando no Cloud Shell para criar o endereço IP público PIP-VNG-Azure-VNet-1 .

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --allocation-method Static
    
  2. Execute o seguinte comando no Cloud Shell para criar a rede virtual VNG-Azure-VNet-1 .

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --subnet-name GatewaySubnet 
    
  3. Execute o seguinte comando no Cloud Shell para criar o gateway de rede virtual VNG-Azure-VNet-1 .

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --public-ip-addresses PIP-VNG-Azure-VNet-1 \
        --vnet VNG-Azure-VNet-1 \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    

Criar o gateway de VPN no local

Em seguida, crie um gateway VPN para simular um dispositivo VPN local.

  1. Execute o seguinte comando no Cloud Shell para criar o endereço IP público PIP-VNG-HQ-Network.

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --allocation-method Static
    
  2. Execute o seguinte comando no Cloud Shell para criar a rede virtual VNG-HQ-Network .

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --subnet-name GatewaySubnet 
    
  3. Execute o seguinte comando no Cloud Shell para criar o gateway de rede virtual VNG-HQ-Network .

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --public-ip-addresses PIP-VNG-HQ-Network \
        --vnet VNG-HQ-Network \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    
  4. A criação do gateway leva aproximadamente 30+ minutos para ser concluída. Para monitorizar o progresso da criação do gateway, execute o seguinte comando. Estamos usando o comando Linux watch para executar o comando periodicamente, o az network vnet-gateway list que permite que você monitore o progresso.

    watch -d -n 5 az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
  5. Quando todos os gateways de VPN apresentarem um ProvisioningState com o valor Com Êxito, estará pronto para continuar. Prima Ctrl+C para interromper o comando depois de o gateway ser criado.

    ActiveActive    EnableBgp    EnablePrivateIpAddress   GatewayType    Location        Name              ProvisioningState    ResourceGroup                         ResourceGuid                          VpnType
    --------------  -----------  ------------------------ -------------  --------------  ----------------  -------------------  -----------------------------  ------------------------------------  ----------
    False           False        False                    Vpn            southcentralus  VNG-Azure-VNet-1  Succeeded            <rgn>[sandbox resource group name]</rgn>  48dc714e-a700-42ad-810f-a8163ee8e001  RouteBased
    False           False        False                    Vpn            southcentralus  VNG-HQ-Network    Succeeded            <rgn>[sandbox resource group name]</rgn>  49b3041d-e878-40d9-a135-58e0ecb7e48b  RouteBased
    

Atualizar as referências IP do gateway de rede local

Importante

Os gateways de rede virtual têm de ser implementados com êxito antes de iniciar o exercício seguinte. Um gateway pode levar até 30+ minutos para ser concluído. Se o ProvisioningState ainda não mostrar "Succeeded", você precisará esperar.

Nesta seção, você atualiza as referências de endereço IP do gateway remoto definidas nos gateways de rede local. Só poderá atualizar os gateways de rede local depois de criar os gateways de VPN, bem como atribuir e associar-lhes um endereço IPv4.

  1. Execute o seguinte comando da CLI do Azure para verificar se ambos os gateways de rede virtual foram criados. O estado inicial mostra Atualização. Você deseja ver Êxito em VNG-Azure-VNet-1 e VNG-HQ-Network.

    az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
    Name              Location    GatewayType    VpnType     VpnGatewayGeneration    EnableBgp    EnablePrivateIpAddress    Active    ResourceGuid                        ProvisioningState    ResourceGroup
    ----------------  ----------  -------------  ----------  ----------------------  -----------  ------------------------  --------  ------------------------------------  -------------------  ------------------------------------------
    VNG-Azure-VNet-1  westus      Vpn            RouteBased  Generation1         False        False                     False     9a2e60e6-da57-4274-99fd-e1f8b2c0326d  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    VNG-HQ-Network    westus      Vpn            RouteBased  Generation1         False        False                     False     c36430ed-e6c0-4230-ae40-cf937a102bcd  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    

    Não se esqueça de aguardar até que a lista de gateways seja devolvida com êxito. Além disso, lembre-se de que os recursos de gateway de rede local configuram as definições do gateway remoto e da rede da qual recebem o nome. Por exemplo, o gateway de rede local LNG-Azure-VNet-1 contém informações como o endereço IP e as redes da Azure-VNet-1.

  2. Execute o seguinte comando no Cloud Shell para recuperar o endereço IPv4 atribuído a PIP-VNG-Azure-VNet-1 e armazená-lo em uma variável.

    PIPVNGAZUREVNET1=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --query "[ipAddress]" \
        --output tsv)
    
  3. Execute o seguinte comando no Cloud Shell para atualizar o gateway de rede local LNG-Azure-VNet-1 para que ele aponte para o endereço IP público anexado ao gateway de rede virtual VNG-Azure-VNet-1 .

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-Azure-VNet-1 \
        --gateway-ip-address $PIPVNGAZUREVNET1
    
  4. Execute o seguinte comando no Cloud Shell para recuperar o endereço IPv4 atribuído à PIP-VNG-HQ-Network e armazená-lo em uma variável.

    PIPVNGHQNETWORK=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --query "[ipAddress]" \
        --output tsv)
    
  5. Execute o seguinte comando no Cloud Shell para atualizar o gateway de rede local LNG-HQ-Network para que ele aponte para o endereço IP público anexado ao gateway de rede virtual VNG-HQ-Network .

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-HQ-Network \
        --gateway-ip-address $PIPVNGHQNETWORK
    

Criar as ligações

Você conclui a configuração criando as conexões de cada gateway VPN para o gateway de rede local que contém as referências de endereço IP público para a rede remota desse gateway.

  1. Crie a chave partilhada a utilizar para as ligações. No comando a seguir, substitua <shared key> por uma cadeia de caracteres de texto a ser usada para a chave pré-compartilhada IPSec. A chave pré-compartilhada é uma sequência de caracteres ASCII imprimíveis não mais do que 128 caracteres. Ele não pode conter caracteres especiais, como hífenes e tils. Você usa essa chave pré-compartilhada em ambas as conexões.

    Nota

    Neste exemplo, qualquer conjunto de números funcionará para uma chave compartilhada: SHAREDKEY=123456789. Em ambientes de produção, recomendamos o uso de uma cadeia de caracteres ASCII imprimíveis não mais do que 128 caracteres sem caracteres especiais, como hífenes ou tils.

    SHAREDKEY=<shared key>
    
  2. Lembre-se de que LNG-HQ-Network contém uma referência para o endereço IP no seu dispositivo VPN no local simulado. Execute o seguinte comando no Cloud Shell para criar uma conexão de VNG-Azure-VNet-1 para LNG-HQ-Network.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network \
        --vnet-gateway1 VNG-Azure-VNet-1 \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-HQ-Network
    
  3. Lembre-se de que a LNG-Azure-VNet-1 contém uma referência para o endereço IP público associado ao gateway de VPN VNG-Azure-VNet-1. Esta ligação seria normalmente criada a partir do seu dispositivo no local. Execute o seguinte comando no Cloud Shell para criar uma conexão de VNG-HQ-Network para LNG-Azure-VNet-1.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name HQ-Network-To-Azure-VNet-1  \
        --vnet-gateway1 VNG-HQ-Network \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-Azure-VNet-1
    

Agora você concluiu a configuração da conexão site a site. Pode demorar alguns minutos, mas os túneis devem ligar-se automaticamente e tornar-se ativos.

Passos de verificação

Vamos confirmar se os túneis de VPN estão ligados.

  1. Execute o seguinte comando para confirmar se Azure-VNet-1-To-HQ-Network está ligado.

    az network vpn-connection show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network  \
        --output table \
        --query '{Name:name,ConnectionStatus:connectionStatus}'
    

    Você deve ver a saída como a seguir, indicando que a conexão foi bem-sucedida. Se o ConnectionStatus show como Connecting ou Unknown, aguarde um minuto ou dois e execute novamente o comando. As ligações podem demorar alguns minutos a ligarem-se completamente.

    Name                        ConnectionStatus
    --------------------------  ------------------
    Azure-VNet-1-To-HQ-Network  Connected
    

A configuração site a site está agora concluída. Sua topologia final, incluindo as sub-redes e conexões, com pontos de conexão lógicos, aparece no diagrama a seguir. As máquinas virtuais implementadas nas sub-redes Serviços e Aplicações podem agora comunicar entre si, agora que as ligações VPN foram estabelecidas com êxito.

Diagrama dos recursos utilizados durante o exercício da unidade 4.