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

Concluído

Agora você está pronto para concluir seu gateway de VPN site a site por meio da criação de endereços IP públicos, gateways de rede virtual e conexões. Lembre-se de que você usou espaços reservados para as referências de endereços IP públicos quando criou seus gateways de rede locais. Portanto, uma das tarefas agora é atualizar esses gateways com os endereços IP público reais atribuídos ao seus gateways de rede virtual.

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

Criar o gateway de VPN do lado do Azure

Primeiro, você criará o gateway de VPN para a extremidade da conexão do Azure. A criação de um gateway de rede virtual pode levar até 45 minutos. Para economizar tempo, você usará os comandos da CLI do Azure com o parâmetro --no-wait. Esse parâmetro permite criar ambos os gateways de rede virtual simultaneamente para minimizar o tempo total necessário para criar esses 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 local

Em seguida, você criará um gateway de 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 mais de 30 minutos para ser concluída. Para monitorar o progresso da criação do gateway, execute comando a seguir. Estamos usando o comando watch do Linux para executar o comando az network vnet-gateway list periodicamente, permitindo 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. Depois que cada gateway de VPN mostra um ProvisioningState com o valor Succeeded, você está pronto para continuar. Pressione Ctrl+C para interromper o comando depois de criar o gateway.

    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 de IP do gateway de rede local

Importante

Seus gateways de rede virtual devem ser implantados com êxito antes que você inicie o próximo exercício. Um gateway pode levar até mais de 30 minutos para ser concluído. Se o ProvisioningState ainda não mostrar "Bem-sucedido", você precisará aguardar.

Nesta seção, você atualizará as referências de endereço IP de gateway remoto definidas nos gateways de rede local. Você não poderá atualizar os gateways de rede local até que tenha criado os gateways de VPN e um endereço IPv4 seja atribuído a e associado a eles.

  1. Execute o seguinte comando da CLI do Azure para verificar se ambos os gateways de rede virtual foram criados. O estado inicial mostra Atualizando. Você deseja ver Bem-sucedido na VNG-Azure-VNet-1 e na 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
    

    Lembre-se de aguardar até que as listas de gateways sejam retornadas com êxito. Além disso, lembre-se de que os recursos de gateway de rede local definem as configurações do gateway remoto e da rede após os quais esses recursos são nomeados. Por exemplo, o gateway de rede local LNG-Azure-VNet-1 contém informações como o endereço IP e as redes para o 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 de modo 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 a 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 de modo 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 conexões

Você concluirá a configuração criando as conexões com base em cada gateway de 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 compartilhada a ser usado para as conexõ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 cadeia de caracteres ASCII imprimíveis com tamanho máximo de 128 caracteres. Ele não pode conter caracteres especiais, como hífen e til. Você usará essa chave pré-compartilhada em ambas as conexões.

    Observação

    Neste exemplo, qualquer conjunto de números funcionará para uma chave compartilhada: SHAREDKEY=123456789. Em ambientes de produção, recomendamos usar uma cadeia de caracteres ASCII para impressão de até 128 caracteres sem caracteres especiais, como hifens ou tils.

    SHAREDKEY=<shared key>
    
  2. Lembre-se de que LNG-HQ-Network contém uma referência ao endereço IP em seu dispositivo VPN local simulado. Execute o seguinte comando no Cloud Shell para criar uma conexão de VNG-Azure-VNet-1 com 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 LNG-Azure-VNet-1 contém uma referência ao endereço IP público associado ao gateway de VPN VNG-Azure-VNet-1. Normalmente, essa conexão seria criada em seu dispositivo local. Execute o seguinte comando no Cloud Shell para criar uma conexão de VNG-HQ-Network com 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ê terminou a configuração da conexão site a site. Pode levar alguns minutos, mas os túneis devem se conectar e se tornar ativos automaticamente.

Etapas de verificação

Verifique se os túneis de VPN estão conectados.

  1. Execute o comando a seguir para confirmar se Azure-VNet-1-To-HQ-Network está conectado.

    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ê deverá ver uma saída como a mostrada abaixo indicando que a conexão foi bem-sucedida. Se o ConnectionStatus aparecer como Connecting ou Unknown, aguarde um ou dois minutos e execute o comando novamente. Pode levar alguns minutos para as conexões serem totalmente estabelecidas.

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

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

Diagram of resources deployed during unit 4 exercise.