Поделиться через


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

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

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

Предварительные условия

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

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

    • Следуйте инструкциям, чтобы создать канал ExpressRoute и включить его на стороне поставщика услуг подключения.
    • Убедитесь, что для вашего канала настроен частный пиринг Azure. Инструкции по маршрутизации см. в статье Настройка маршрутизации.
    • Убедитесь, что частный пиринг Azure настроен и установлен пиринг BGP между вашей сетью и сетью Microsoft для обеспечения сквозного подключения.
    • Вам необходимо создать и полностью подготовить виртуальную сеть и шлюз виртуальной сети. Следуйте инструкциям по созданию шлюза виртуальной сети для 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.

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

Чтобы создать максимально устойчивые соединения, клонируйте скрипт конфигурации из 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/удалить

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

Операции владельца цепи

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

Владелец канала создает разрешение, в результате чего создается ключ авторизации, с помощью которого пользователь канала сможет подключить шлюзы виртуальной сети к каналу 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, настроенные в подсети шлюза. Эта возможность теперь общедоступна (общедоступная версия). Для клиентов, желающих включить эти функции общедоступной версии на существующем подключении, отключите FastPath, а затем снова включите его на подключении.

При использовании "Private Link" и FastPath трафик "Private Link", отправленный через 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. Чтобы переключиться на ограниченную функцию GA, зарегистрируйте подписку с помощью целевой предварительной команды PowerShell, а затем отключите и повторно включите FastPath в соединении.

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

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

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

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

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

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