Подключение виртуальной сети к каналу ExpressRoute с помощью Azure PowerShell

Эта статья поможет вам связать виртуальные сети с каналами Azure ExpressRoute с помощью модели развертывания Resource Manager и PowerShell. Виртуальные сети могут входить в одну и ту же подписку или в разные подписки. В нем также показано, как обновить связь виртуальной сети.

Схема, на которой показана виртуальная сеть, связанная с каналом ExpressRoute.

Необходимые компоненты

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

  • Вам потребуется активный канал ExpressRoute.

    • Следуйте инструкциям, чтобы создать канал ExpressRoute и включить его на стороне поставщика услуг подключения.
    • Убедитесь, что для вашего канала настроен частный пиринг Azure. Инструкции по маршрутизации см. в статье Настройка маршрутизации.
    • Для создания сквозного подключения обязательно настройте частный пиринг Azure, а также пиринг BGP между своей сетью и сетью Майкрософт.
    • Вам необходимо создать и полностью подготовить виртуальную сеть и шлюз виртуальной сети. Следуйте инструкциям по созданию шлюза виртуальной сети для ExpressRoute. Шлюз виртуальной сети для ExpressRoute использует тип шлюза ExpressRoute, а не VPN.
  • К стандартному каналу ExpressRoute можно подключить не более 10 виртуальных сетей. Если используется стандартный канал ExpressRoute, все виртуальные сети должны находиться в одном геополитическом регионе.

  • Одна виртуальная сеть может быть связана с 16 каналами ExpressRoute. Чтобы создать объект подключения для каждого канала ExpressRoute, к которому вы подключаетесь, воспользуйтесь инструкциям и из этой статьи. Каналы ExpressRoute могут быть размещены в той же подписке, в других подписках или и там, и там.

  • Если вы включите надстройку ExpressRoute Premium, вы сможете подключить к каналу ExpressRoute виртуальные сети из другого геополитического региона. Надстройка premium позволяет подключать более 10 виртуальных сетей к каналу ExpressRoute в зависимости от выбранной пропускной способности. Дополнительную информацию о надстройке Premium см. в разделе Вопросы и ответы.

  • Чтобы можно было создать подключение из канала ExpressRoute к целевому шлюзу виртуальной сети ExpressRoute, количество диапазонов адресов, объявленных в локальной или пиринговой виртуальной сети, не должно превышать 200. После успешного создания подключения можно добавить дополнительные адресные пространства до 1000 в локальные или пиринговые виртуальные сети.

  • Ознакомьтесь с рекомендациями по организации подключения между виртуальными сетями через ExpressRoute.

Работа с Azure PowerShell

В шагах и примерах в этой статье используются модули Az для Azure PowerShell. Чтобы установить модули Az локально, см. статью Установка Azure PowerShell. Чтобы узнать о модуле Az, см. статью Знакомство с новым модулем Az для Azure PowerShell. Командлеты PowerShell часто обновляются. Если вы не используете последнюю версию, применение значений, указанных в инструкциях, может привести к сбою. Чтобы найти установленные в системе версии PowerShell, используйте командлет Get-Module -ListAvailable Az.

Azure Cloud Shell можно использовать для выполнения большинства командлетов PowerShell и команд CLI. Это позволяет избежать локальной установки Azure PowerShell или CLI. Azure Cloud Shell — это бесплатная интерактивная оболочка, в которой предустановлены и настроены для использования с вашей учетной записью стандартные средства Azure. Для выполнения кода из этой статьи в Azure Cloud Shell откройте сеанс Cloud Shell, скопируйте блок кода с помощью кнопки Копировать и вставьте его в сеанс Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS. Вставленный текст не выполняется автоматически, поэтому нажмите клавишу ВВОД для выполнения кода.

Cloud Shell можно запустить разными способами:

Вариант Ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.               Cloud Shell в этой статье
Откройте Cloud Shell в браузере. https://shell.azure.com/powershell
Нажмите кнопку меню Cloud Shell в правом верхнем углу окна портала Azure. Cloud Shell на портале

Подключение виртуальной сети

Максимальная устойчивость (рекомендуется): обеспечивает высокий уровень устойчивости к виртуальной сети. Он предоставляет два избыточных подключения из шлюза виртуальной сети к двум разным каналам ExpressRoute в разных расположениях ExpressRoute.

Клонирование скрипта

Чтобы создать подключения к максимальной устойчивости, клонируйте скрипт установки из GitHub.

# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/ 
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/

Запустите скрипт New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1, чтобы создать подключения с высоким уровнем доступности. В следующем примере показано, как создать два новых подключения к двум каналам ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$circuit2 = Get-AzExpressRouteCircuit -Name "MyCircuit2" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name1 "ERConnection1" -Name2 "ERConnection2" -Peer1 $circuit1.Peerings[0] -Peer2 $circuit2.Peerings[0] -RoutingWeight1 10 -RoutingWeight2 10 -VirtualNetworkGateway1 $gw

Если вы хотите создать новое подключение и использовать существующий, можно использовать следующий пример. В этом примере создается новое подключение ко второму каналу ExpressRoute и используется существующее подключение к первому каналу ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = Get-AzVirtualNetworkGatewayConnection -Name "ERConnection1" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name2 "ERConnection2" -Peer2 $circuit1.Peerings[0] -RoutingWeight2 10 -VirtualNetworkGateway1 $gw -ExistingVirtualNetworkGatewayConnection $connection

Подключение к каналу виртуальной сети в другой подписке

Канал ExpressRoute может совместно использоваться несколькими подписками. На рисунке ниже схематично показан способ совместного использования каналов ExpressRoute несколькими подписками.

Примечание.

Подключение виртуальных сетей между национальными облаками Azure и общедоступным облаком Azure не поддерживается. В одном облаке можно связывать только виртуальные сети из разных подписок.

Каждое маленькое облако внутри большого облака представляет подписки, принадлежащие различным подразделениям одной организации. Любое подразделение в организации может использовать свою собственную подписку для развертывания служб. Кроме того, подразделения могут совместно использовать один канал ExpressRoute для подключения к локальной сети. Владельцем канала ExpressRoute может выступать одно подразделение (в данном примере — ИТ-подразделение). Другие подписки в организации также могут использовать канал ExpressRoute.

Примечание.

Плата за подключение канала ExpressRoute и использование полосы пропускания будет взиматься с владельца подписки. Полоса пропускания распределяется между всеми виртуальными сетями.

              Подключение между подписками

Администрирование: владельцы канала и его пользователи

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

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

Примечание.

Владелец канала не является встроенной ролью RBAC или определен в ресурсе ExpressRoute. Определение владельца канала является любой ролью со следующим доступом:

  • Microsoft.Network/expressRouteCircuits/authorizations/write
  • Microsoft.Network/expressRouteCircuits/authorizations/read
  • Microsoft.Network/expressRouteCircuits/authorizations/delete

Сюда входят встроенные роли, такие как участник, владелец и участник сети. Подробное описание различных встроенных ролей.

Действия владельца канала

Создание разрешения

Владелец канала создает разрешение, в результате чего создается ключ авторизации, с помощью которого пользователь канала сможет подключить шлюзы виртуальной сети к каналу ExpressRoute. Разрешение действительно только для одного подключения.

В следующем фрагменте показано создание разрешения с помощью командлета.

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$auth1 = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"

Ответ на предыдущие команды содержит ключ авторизации и состояние:

Name                   : MyAuthorization1
Id                     : /subscriptions/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/CrossSubTest/authorizations/MyAuthorization1
Etag                   : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
AuthorizationKey       : ####################################
AuthorizationUseStatus : Available
ProvisioningState      : Succeeded

Просмотр разрешений

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

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Добавление разрешений

Владелец канала может добавлять разрешения с помощью следующего командлета.

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization2"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Удаление разрешений

Владелец канала может отзывать (удалять) разрешения, выданные пользователю, с помощью следующего командлета.

Remove-AzExpressRouteCircuitAuthorization -Name "MyAuthorization2" -ExpressRouteCircuit $circuit
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

Действия пользователя канала

Пользователь канала должен получить от владельца канала идентификатор однорангового узла и ключ разрешения. Ключ разрешения представляет собой идентификатор GUID.

Идентификатор однорангового узла можно проверить с помощью следующей команды.

Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"

Активация разрешения на подключение

Пользователь канала может активировать разрешение на связь, выполнив следующий командлет.

$id = "/subscriptions/********************************/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/MyCircuit"    
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "RemoteResourceGroup" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $id -ConnectionType ExpressRoute -AuthorizationKey "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

Освобождение разрешения на подключение

Разрешение можно освободить, удалив подключение, связывающее канал ExpressRoute и виртуальную сеть.

Изменение подключения к виртуальной сети

Вы можете изменить определенные свойства подключения к виртуальной сети.

Изменение веса подключения

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

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyVirtualNetworkConnection" -ResourceGroupName "MyRG"
$connection.RoutingWeight = 100
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Диапазон значений RoutingWeight: 0 до 32 000. Значение по умолчанию равно 0.

Настройка ExpressRoute FastPath

Вы можете включить ExpressRoute FastPath, если используете сверхвысокопроизводительный шлюз или шлюз ErGw3AZ. FastPath повышает производительность передачи данных, то есть такие показатели, как количество пакетов в секунду и подключений в секунду между локальной и виртуальной сетями.

Настройка FastPath для нового подключения

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG" 
$gw = Get-AzVirtualNetworkGateway -Name "MyGateway" -ResourceGroupName "MyRG" 
$connection = New-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" -ExpressRouteGatewayBypass -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute -Location "MyLocation" 

Обновление существующего подключения для включения FastPath

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" 
$connection.ExpressRouteGatewayBypass = $True
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

С поддержкой пиринга виртуальная сеть и UDR FastPath будет отправлять трафик непосредственно на виртуальные машины, развернутые в виртуальная сеть "периферийных" виртуальная сеть (подключенных через пиринг виртуальная сеть) и учитывать все определяемые пользователем UDR, настроенные в шлюзеSubnet. Эта возможность теперь общедоступна (общедоступная версия).

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

Эти сценарии являются общедоступными для ограниченных сценариев с подключениями, связанными с 10 Гбит/с и 100 Гбит/с ExpressRoute Direct. Чтобы включить, следуйте приведенным ниже рекомендациям.

  1. Выполните эту форму Microsoft Form , чтобы запросить регистрацию подписки. Запросы могут занять до 4 недель, поэтому необходимо планировать развертывание соответствующим образом.
  2. Получив подтверждение на шаге 1, выполните следующую команду Azure PowerShell в целевой подписке Azure.
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <resource-group> -ResourceName <connection-name>
$connection.ExpressRouteGatewayBypass = $true
$connection.EnablePrivateLinkFastPath = $true
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Примечание.

Вы можете использовать Монитор подключений и убедиться, что трафик достигает места назначения через FastPath.

Примечание.

Включение поддержки FastPath Приватный канал для ограниченных сценариев общедоступной версии может занять более 4 недель. Заранее запланируйте развертывание.

Поддержка fastPath для пиринга виртуальных сетей и определяемых пользователем пользователей доступна только для подключений ExpressRoute Direct.

Примечание.

Если вы уже настроили FastPath и хотите зарегистрировать в ограниченных функциях общедоступной доступности, выполните следующие действия.

  1. Зарегистрируйтесь в одной из функций FastPath с помощью команд Azure PowerShell.
  2. Отключите и снова включите FastPath в целевом подключении.
  3. Чтобы переключиться между ограниченной общедоступной функцией, зарегистрируйте подписку с помощью целевой команды PowerShell предварительной версии, а затем отключите и повторно включите FastPath в подключении.

Очистка ресурсов

Если вам больше не нужно подключение ExpressRoute, выполните команду Remove-AzVirtualNetworkGatewayConnection из подписки, в которой расположен шлюз, чтобы удалить подключение между шлюзом и каналом.

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

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

Из этого руководства вы узнали, как подключить виртуальную сеть к каналу в одной или разных подписках. Дополнительные сведения о шлюзах виртуальной сети можно найти в статье Сведения о шлюзах виртуальных сетей ExpressRoute.

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