Добавление подключения типа "сеть-сеть" к виртуальной сети с помощью существующего подключения VPN-шлюза (классическая модель)

В этой статье описывается использование PowerShell для добавления подключений типа "сеть — сеть" (S2S) к VPN-шлюзу с существующим подключением с помощью классической (устаревшей) модели развертывания. Этот тип подключения иногда называется конфигурацией с несколькими сайтами. Эти действия не применяются к конфигурациям подключения ExpressRoute/Site-to-Site.

Действия, описанные в этой статье, применяются к классической (устаревшей) модели развертывания и не применяются к текущей модели развертывания Resource Manager. Если вы не хотите работать в классической модели развертывания, рекомендуется использовать версию Resource Manager этой статьи.

Примечание.

Эта статья написана для классической (устаревшей) модели развертывания. Вместо этого рекомендуется использовать последнюю модель развертывания Azure. Модель развертывания Resource Manager — это последняя модель развертывания, которая предоставляет дополнительные возможности и совместимость функций, чем классическая модель развертывания. Чтобы понять разницу между этими двумя моделями развертывания, ознакомьтесь с разделом "Общие сведения о моделях развертывания" и состоянии ресурсов.

Если вы хотите использовать другую версию этой статьи, используйте оглавление в левой области.

О подключении

Вы можете подключить несколько локальных сайтов к одной виртуальной сети. Это особенно привлекательно для создания гибридных облачных решений. Создание многосайтового подключения к шлюзу виртуальной сети Azure похоже на создание других подключений типа "сеть-сеть". На самом деле вы можете использовать имеющийся VPN-шлюз Azure, если это шлюз с динамической маршрутизацией (на основе маршрутов).

Если к вашей виртуальной сети уже подключен статический шлюз, вы можете изменить его тип на динамический, не перестраивая виртуальную сеть, чтобы обеспечить многосайтовое подключение. Прежде чем менять тип маршрутизации, убедитесь, что локальный VPN-шлюз поддерживает конфигурации VPN на основе маршрутов.

Diagram showing classic multi-site connection architecture.

Что необходимо учесть

Для внесения изменений в эту виртуальную сеть портал не подходит. Нужно внести в файл конфигурации сети, а не использовать для этого портал. Если внести изменения на портале, они заменят параметры ссылок на несколько сайтов для этой виртуальной сети.

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

Подготовка к работе

Перед началом настройки убедитесь, что выполнены следующие предварительные требования:

  • Совместимое оборудование VPN для каждого местного расположения. Ознакомьтесь со статьей VPN-устройства для создания виртуальных сетей , чтобы проверить, является ли совместимым устройство, которое вы хотите использовать.
  • Внешний общедоступный IPv4-адрес для каждого VPN-устройства. IP-адрес не может находиться за NAT. Это обязательное требование.
  • Пользователь, имеющий опыт в настройке вашего оборудования VPN. Вам нужно будет хорошо понимать, как настраивать VPN-устройство, или воспользоваться помощью соответствующего специалиста.
  • Диапазоны IP-адресов, которые вы хотите использовать для виртуальной сети (если она еще не создана).
  • Диапазоны IP-адресов для каждого сайта локальной сети, к которым вы будете подключаться. Необходимо убедиться, что диапазоны IP-адресов для каждого из локальных сетевых сайтов, которые требуется подключить, не перекрываются. В противном случае портал или REST API отклоняет отправку конфигурации.
    Например, если два сайта локальной сети содержат диапазон IP-адресов 10.2.3.0/24 и имеется пакет с адресом назначения 10.2.3.3, Azure не сможет определить сайт, на который требуется отправить пакет, так как диапазоны адресов перекрываются. Для предотвращения проблем с маршрутизацией Azure не позволит передать файл конфигурации с перекрывающимися диапазонами адресов.

Работа с Azure PowerShell

При работе с классической моделью развертывания нельзя использовать Azure Cloud Shell. Вместо этого нужно установить локально на компьютере последнюю версию командлетов PowerShell из набора программных интерфейсов по управлению службами Azure. Эти командлеты отличаются от командлетов AzureRM или Az. Сведения об установке командлетов из набора программных интерфейсов по управлению службами см. в статье Установка командлетов из набора программных интерфейсов по управлению службами. Дополнительные сведения общего характера об Azure PowerShell см. в документации по Azure PowerShell.

1. Создайте подключение VPN типа "сеть — сеть"

Это отлично, если у вас уже есть подключение VPN типа "сеть — сеть" со шлюзом с динамической маршрутизацией. Можно перейти к экспорту параметров конфигурации виртуальной сети. Если нет, выполните следующее:

Если у вас уже есть виртуальная сеть типа "сеть — сеть", но со шлюзом со статической маршрутизацией (на основе политики)

  1. Измените тип шлюза на шлюз с динамической маршрутизацией. Для многосайтового подключения VPN требуется шлюз с динамической маршрутизацией (также известный как шлюз на основе маршрутов). Чтобы изменить тип шлюза, необходимо сначала удалить существующий шлюз, а затем создать новый.
  2. Настройте новый шлюз и создайте VPN-туннель. Инструкции см. в разделе Указание SKU и типа VPN. Убедитесь, что для типа маршрутизации задано значение "Динамический".

Если у вас нет виртуальной сети типа "сеть — сеть"

  1. Создайте виртуальную сеть с VPN-подключением типа "сеть — сеть" с помощью указаний в этой статье.
  2. Настройте шлюз с динамической маршрутизацией с помощью следующей процедуры: Настройка VPN-шлюза. Не забудьте выбрать динамическую маршрутизацию в качестве типа шлюза.

2. Экспортируйте файл конфигурации сети

Откройте консоль PowerShell с повышенными правами. Чтобы переключиться на управление службами, используйте следующую команду:

azure config mode asm

Подключитесь к учетной записи. Для подключения используйте следующий пример кода:

Add-AzureAccount

Экспортируйте файл конфигурации сети Azure, выполнив приведенную ниже команду. При необходимости можно изменить расположение файла для экспорта.

Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml

3. Откройте файл конфигурации сети

Откройте файл конфигурации сети, скачанный на последнем шаге. Используйте любой редактор XML. Файл должен выглядеть следующим образом:

<NetworkConfiguration xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration">
  <VirtualNetworkConfiguration>
    <LocalNetworkSites>
      <LocalNetworkSite name="Site1">
        <AddressSpace>
          <AddressPrefix>10.0.0.0/16</AddressPrefix>
          <AddressPrefix>10.1.0.0/16</AddressPrefix>
        </AddressSpace>
        <VPNGatewayAddress>131.2.3.4</VPNGatewayAddress>
      </LocalNetworkSite>
      <LocalNetworkSite name="Site2">
        <AddressSpace>
          <AddressPrefix>10.2.0.0/16</AddressPrefix>
          <AddressPrefix>10.3.0.0/16</AddressPrefix>
        </AddressSpace>
        <VPNGatewayAddress>131.4.5.6</VPNGatewayAddress>
      </LocalNetworkSite>
    </LocalNetworkSites>
    <VirtualNetworkSites>
      <VirtualNetworkSite name="VNet1" AffinityGroup="USWest">
        <AddressSpace>
          <AddressPrefix>10.20.0.0/16</AddressPrefix>
          <AddressPrefix>10.21.0.0/16</AddressPrefix>
        </AddressSpace>
        <Subnets>
          <Subnet name="FE">
            <AddressPrefix>10.20.0.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="BE">
            <AddressPrefix>10.20.1.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="GatewaySubnet">
            <AddressPrefix>10.20.2.0/29</AddressPrefix>
          </Subnet>
        </Subnets>
        <Gateway>
          <ConnectionsToLocalNetwork>
            <LocalNetworkSiteRef name="Site1">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
          </ConnectionsToLocalNetwork>
        </Gateway>
      </VirtualNetworkSite>
    </VirtualNetworkSites>
  </VirtualNetworkConfiguration>
</NetworkConfiguration>

4. Добавьте ссылки на несколько сайтов

При добавлении или удалении данных ссылок на сайты будут внесены изменения в элемент ConnectionsToLocalNetwork/LocalNetworkSiteRef. При добавлении новой ссылки на локальный сайт Azure инициирует создание нового туннеля. В следующем примере приведена конфигурации сети для подключения одного сайта. Сохраните файл после внесения изменений.

  <Gateway>
    <ConnectionsToLocalNetwork>
      <LocalNetworkSiteRef name="Site1"><Connection type="IPsec" /></LocalNetworkSiteRef>
    </ConnectionsToLocalNetwork>
  </Gateway>

Чтобы добавить ссылки на сайты (создать многосайтовую конфигурацию), просто добавьте дополнительные строки "LocalNetworkSiteRef", как показано в следующем примере:

  <Gateway>
    <ConnectionsToLocalNetwork>
      <LocalNetworkSiteRef name="Site1"><Connection type="IPsec" /></LocalNetworkSiteRef>
      <LocalNetworkSiteRef name="Site2"><Connection type="IPsec" /></LocalNetworkSiteRef>
    </ConnectionsToLocalNetwork>
  </Gateway>

5. Импортируйте файл конфигурации сети

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

6. Скачайте ключи

После добавления новых туннелей используйте командлет PowerShell Get-AzureVNetGatewayKey для получения предварительно общих ключей IPsec/IKE для каждого туннеля.

Например:

Get-AzureVNetGatewayKey –VNetName "VNet1" –LocalNetworkSiteName "Site1"
Get-AzureVNetGatewayKey –VNetName "VNet1" –LocalNetworkSiteName "Site2"

Если вы предпочитаете, вы также можете использовать REST API общего ключа шлюза Get виртуальная сеть, чтобы получить предварительные ключи.

7. Проверьте подключения

Проверьте состояние многосайтового туннеля. После скачивания ключей для каждого туннеля необходимо проверить подключения. Используйте Get-AzureVnet Подключение ion, чтобы получить список туннелей виртуальной сети, как показано в следующем примере. VNet1 — имя виртуальной сети.

Get-AzureVnetConnection -VNetName VNET1

Пример возвращаемых данных:

    ConnectivityState         : Connected
    EgressBytesTransferred    : 661530
    IngressBytesTransferred   : 519207
    LastConnectionEstablished : 5/2/2014 2:51:40 PM
    LastEventID               : 23401
    LastEventMessage          : The connectivity state for the local network site 'Site1' changed from Not Connected to Connected.
    LastEventTimeStamp        : 5/2/2014 2:51:40 PM
    LocalNetworkSiteName      : Site1
    OperationDescription      : Get-AzureVNetConnection
    OperationId               : 7f68a8e6-51e9-9db4-88c2-16b8067fed7f
    OperationStatus           : Succeeded

    ConnectivityState         : Connected
    EgressBytesTransferred    : 789398
    IngressBytesTransferred   : 143908
    LastConnectionEstablished : 5/2/2014 3:20:40 PM
    LastEventID               : 23401
    LastEventMessage          : The connectivity state for the local network site 'Site2' changed from Not Connected to Connected.
    LastEventTimeStamp        : 5/2/2014 2:51:40 PM
    LocalNetworkSiteName      : Site2
    OperationDescription      : Get-AzureVNetConnection
    OperationId               : 7893b329-51e9-9db4-88c2-16b8067fed7f
    OperationStatus           : Succeeded

Следующие шаги

Чтобы больше узнать о VPN-шлюзах, см. статью Шлюзы VPN.