Упражнение. Создание VPN-шлюза типа "сеть —сеть" с помощью команд Azure CLI

Завершено

Теперь вы готовы создать VPN-шлюз типа "сеть —сеть" путем создания общедоступных IP-адресов, шлюзов виртуальной сети и подключений. Помните, что при создании шлюзов локальной сети вы использовали заполнители для ссылок на общедоступные IP-адреса. Поэтому одна из задач теперь — перевод этих шлюзов на фактические общедоступные IP-адреса для шлюзов виртуальной сети.

В идеале общедоступные IP-адреса и шлюзы виртуальной сети должны быть созданы перед шлюзами локальной сети. В этом упражнении показано, как обновить шлюзы локальной сети. Вы можете использовать одни и те же команды для обновления любого элемента конфигурации в шлюзах локальной сети, например адресного пространства удаленной сети.

Создание VPN-шлюза на стороне Azure

Сначала вы создадите VPN-шлюз для конца подключения Azure. Создание шлюза виртуальной сети может длиться до 45 минут. Чтобы сэкономить время, используйте команды Azure CLI с параметром --no-wait . Этот параметр позволяет создавать оба шлюза виртуальной сети одновременно, чтобы свести к минимуму общее время, необходимое для создания этих ресурсов.

  1. Выполните следующую команду в Cloud Shell для создания общедоступного IP-адреса 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. Выполните следующую команду в Cloud Shell для создания виртуальной сети 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. Выполните следующую команду в Cloud Shell для создания шлюза виртуальной сети 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
    

Создание VPN-шлюза на стороне локальной системы

Затем вы создадите VPN-шлюз для имитации локального VPN-устройства.

  1. Выполните следующую команду в Cloud Shell для создания общедоступного IP-адреса 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. Выполните следующую команду в Cloud Shell для создания виртуальной сети VNG-HQ-Network.

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --subnet-name GatewaySubnet 
    
  3. Выполните следующую команду в Cloud Shell для создания шлюза виртуальной сети 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. Создание шлюза занимает приблизительно 30 минут или более. Чтобы отслеживать ход создания шлюза, выполните приведенную ниже команду. Используйте команду watch Linux для периодического выполнения команды az network vnet-gateway list, что позволяет отслеживать ход выполнения.

    watch -d -n 5 az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
  5. Когда каждый VPN-шлюз будет отображать параметр ProvisioningState со значением Succeeded, можно продолжать. Нажмите клавиши CTRL+C, чтобы остановить команду после создания шлюза.

    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
    

Обновление ссылок на IP-адреса шлюза локальной сети

Важно!

Ваши шлюзы виртуальной сети должны быть успешно развернуты, прежде чем можно будет перейти к следующему упражнению. На подготовку шлюза может потребоваться до 30 минут или более. Если подготовка еще не была завершена с состоянием «Успешно», необходимо подождать.

В этом разделе описано, как обновить ссылки на IP-адреса удаленного шлюза, определенные в шлюзах локальной сети. Вы не сможете обновить шлюзы локальной сети, пока не создадите VPN-шлюзы, не назначите им IPv4-адрес и не свяжете его с ними.

  1. Используйте следующую команду Azure CLI для проверки того, были ли созданы оба шлюза виртуальной сети. Начальное состояние показывает обновление. Вы хотите просмотреть Выполненные в VNG-Azure-VNet-1 и 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
    

    Не забудьте дождаться, пока не будут успешно возвращены списки шлюзов. Кроме того, помните, что ресурсы шлюза локальной сети определяют параметры удаленного шлюза и сети, по которым они названы. Например, шлюз локальной сети LNG-Azure-VNet-1 содержит такие сведения, как IP-адрес и сети для Azure-VNet-1.

  2. Выполните следующую команду в Cloud Shell для получения IPv4-адреса, назначенного для PIP-VNG-Azure-VNet-1, и сохранения его в переменной.

    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. Выполните следующую команду в Cloud Shell для обновления шлюза локальной сети LNG-Azure-VNet-1, чтобы он указывал на общедоступный IP-адрес шлюза виртуальной сети 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. Выполните следующую команду в Cloud Shell для получения IPv4-адреса, назначенного для PIP-VNG-HQ-Network, и сохранения его в переменной.

    PIPVNGHQNETWORK=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --query "[ipAddress]" \
        --output tsv)
    
  5. Выполните следующую команду в Cloud Shell для обновления шлюза локальной сети LNG-HQ-Network, чтобы он указывал на общедоступный IP-адрес шлюза виртуальной сети VNG-HQ-Network.

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

Создание подключений

Вы завершите настройку, создав подключения из каждого VPN-шлюза к шлюзу локальной сети, который содержит ссылки на общедоступный IP-адрес для удаленной сети этого шлюза.

  1. Создайте общий ключ, используемый для соединений. В следующей команде замените <shared key> текстовую строку, используемую для предварительно общего ключа IPSec. Предварительный ключ — это строка печатных символов ASCII не более 128 символов. Он не может содержать специальные символы, такие как дефисы и тильды. Этот предварительно общий ключ используется для обоих подключений.

    Примечание.

    В качестве значения общего ключа в этом примере подойдет любой набор цифр: SHAREDKEY=123456789. В рабочих средах рекомендуется использовать строку печатных символов ASCII длиной не более 128 знаков без специальных знаков, таких как дефисы и тильды.

    SHAREDKEY=<shared key>
    
  2. Помните, что LNG-HQ-Network содержит ссылку на IP-адрес имитации локального VPN-устройства. Выполните следующую команду в Cloud Shell для создания подключения от VNG-Azure-VNet-1 к 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. Помните, что LNG-Azure-VNet-1 содержит ссылку на общедоступный IP-адрес, связанный с VPN-шлюзом VNG-Azure-VNet-1. Это подключение обычно будет создаваться с локального устройства. Выполните следующую команду в Cloud Shell для создания подключения от VNG-HQ-Network к 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
    

Теперь вы завершили настройку подключения типа "сеть — сеть". Это может занять несколько минут, но туннели должны автоматически подключаться и становиться активными.

Шаги проверки

Давайте проверим, что VPN-туннели подключены.

  1. Чтобы убедиться, что Azure-VNet-1-To-HQ-Network подключено, выполните приведенную ниже команду.

    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}'
    

    Вы увидите выходные данные, как показано ниже, указывая, что подключение выполнено успешно. Если отображается ConnectionStatus как Connecting или Unknown, подождите минуту или две, а затем выполните команду повторно. На полное подключение может потребоваться несколько минут.

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

Это действие завершает настройку подключения "сеть — сеть". Окончательная топология, включая подсети и соединения с точками логического подключения, показана на приведенной ниже схеме. Виртуальные машины, развернутые в подсетях Службы и Приложения, теперь могут взаимодействовать друг с другом, так как VPN-подключения успешно установлены.

Diagram of resources deployed during unit 4 exercise.