Упражнение. Создание 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 минут или более. Чтобы отслеживать ход создания шлюза, выполните приведенную ниже команду. Мы используем команду Linux watch для периодического выполнения команды 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, чтобы обновить шлюз локальной сети ЛНГ-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-подключения успешно установлены.

Схема ресурсов, развернутых во время урока 4 упражнения.