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


Настройка Direct Connect Private Link-сервиса

Теперь клиенты могут подключить услугу Private Link к любому IP-адресу назначения, который доступен для маршрутизации в частной сети.

Служба Приватного канала Azure позволяет поставщикам служб предоставлять свои приложения клиентам в частном порядке и безопасно размещать их за стандартной подсистемой балансировки нагрузки. Служба Private Link Direct Connect расширяет эту возможность и позволяет клиентам напрямую подключать службу Private Link к любому IP-адресу назначения, который может быть маршрутизирован по частной сети. Эта конфигурация особенно полезна для сценариев, которые обеспечивают частное подключение к приложениям, которым требуется прямая маршрутизация на основе IP-адресов, например подключения к базе данных или пользовательские приложения.

В этой статье объясняется служба Private Link Direct Connect и как создать ее с помощью Azure PowerShell, Azure CLI или Terraform.

Замечание

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

Замечание

Поддержка портала доступна по ссылке предварительной версии, которая активирует функцию на портале: (aka.ms/PortalPLSDirectConnect). Полная поддержка портала без использования предварительной ссылки для доступа к функции ожидается.

Предпосылки

  • Учетная запись Azure с активной подпиской.
  • Azure PowerShell устанавливается локально или использует Azure Cloud Shell. Дополнительные сведения см. в статье Установка Azure PowerShell.
  • Azure CLI установлен локально или использует Azure Cloud Shell. Дополнительные сведения см. в статье Установка Azure CLI.
  • Для Terraform: установите и настройте Terraform.
  • Включите флаг компонента Microsoft.Network/AllowPrivateLinkserviceUDR в подписке. Следуйте инструкциям по регистрации с помощью Azure CLI или PowerShell. Включите функции предварительной версии Azure.
  • Виртуальная сеть с подсетью.
  • Маршрутизируемый IP-адрес, заданный в качестве целевого IP-адреса.

Служба приватного канала (PLS) Direct Connect позволяет:

  • Перенаправьте трафик непосредственно в определенный частный ip-адрес назначения в виртуальной сети.
  • Обход требований подсистемы балансировки нагрузки для сценариев, требующих прямого IP-подключения.
  • Поддержка сценариев пользовательской маршрутизации , где требуется точный контроль над назначением трафика.
  • Настройте расширенные сценарии , такие как безопасный доступ к локальным ресурсам, сторонним устройствам SaaS и виртуальным устройствам.

Распространенные варианты использования

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

Основные требования

  • Укажите не менее 2 IP-конфигураций: для этой функции требуется по крайней мере 2 IP-конфигурации в нескольких из 2 для обеспечения высокой доступности.
  • Укажите статический IP-адрес назначения: целевой IP-адрес должен быть доступен в виртуальной сети.
  • Отключите свойство privateLinkServiceNetworkPolicies в подсети: это свойство не требуется для этой функции.

Ограничения

Обратите внимание на эти ограничения при использовании службы Приватного канала Direct Connect:

  • Требуется минимум 2 IP-конфигурации: для развертывания PLS Direct Connect требуется по крайней мере 2 IP-конфигурации или их кратные 2 (максимум ограничение в 8).
  • Максимум 10 PLS в каждой подписке: существует аппаратное ограничение — максимум 10 PLS в каждом регионе на одну подписку.
  • Ограничение пропускной способности. Каждое прямое подключение PLS может поддерживать пропускную способность до 10 Гбит/с.
  • Требование статического IP-адреса. Целевой IP-адрес назначения должен быть выделен статически, поддержка динамического выделенного целевого IP-адреса отсутствует.
  • Ограничение между регионами: исходная частная конечная точка, служба приватного канала и виртуальная машина клиента должны находиться в одном регионе. Это ограничение необходимо удалить, если эта функция общедоступна.
  • Региональная доступность: эта функция доступна в ограниченных регионах (северная часть США, восточная часть США 2, центральная часть США, центральная часть США, западная часть США, западная часть США 2, западная часть США 3, Восточная Азия, Восточная Австралия, Центральная Испания).

Соображения

  • Нет поддержки миграции. Для развертывания этой функции требуется новая служба приватного канала. Миграция существующих служб частного канала не поддерживается.
  • Доступная поддержка клиентов: используйте PowerShell, CLI или Terraform для развертывания этой новой службы Приватного канала. Поддержка портала доступна по ссылке предварительной версии, которая активирует функцию на портале: (aka.ms/PortalPLSDirectConnect). Полная поддержка портала без использования ссылки предварительной версии для настройки функции ожидается.
  • Ip-пересылка включена: если в подписке есть политика, которая отключает IP-пересылку, политика должна быть отключена, чтобы разрешить правильную настройку.

Используйте этот сценарий для создания службы Приватного канала Direct Connect с помощью Azure PowerShell:

# Define variables
$resourceGroupName = "rg-pls-directconnect"
$location = "westus"
$vnetName = "pls-vnet"
$subnetName = "pls-subnet"
$plsName = "pls-directconnect"
$destinationIP = "10.0.1.100"

# Create resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

# Create virtual network (corrected parameter name)
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.1.0/24" -privateLinkServiceNetworkPoliciesFlag "Disabled"
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroupName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $subnet

# Get subnet reference
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName

# Create IP configurations for Private Link service (minimum 2 or in multiples of 2 required)
$ipConfig1 = @{
    Name = "ipconfig1"
    PrivateIpAllocationMethod = "Dynamic"
    Subnet = $subnet
    Primary = $true
}

$ipConfig2 = @{
    Name = "ipconfig2"
    PrivateIpAllocationMethod = "Dynamic"
    Subnet = $subnet
    Primary = $false
}

# Create Private Link service Direct Connect
$pls = New-AzPrivateLinkservice `
    -Name $plsName `
    -ResourceGroupName $resourceGroupName `
    -Location $location `
    -IpConfiguration @($ipConfig1, $ipConfig2) `
    -DestinationIPAddress $destinationIP

Write-Output "Private Link service created successfully!"
Write-Output "Private Link service ID: $($pls.Id)"
Write-Output "Destination IP Address: $destinationIP"

Создание частной конечной точки для проверки подключения

После создания службы Приватного канала Direct Connect создайте частную конечную точку для проверки подключения:

# Variables for Private Endpoint
$peResourceGroupName = "rg-pe-test"
$peVnetName = "pe-vnet"
$peSubnetName = "pe-subnet"
$privateEndpointName = "pe-to-pls"
$privateLinkserviceId = "/subscriptions/your-subscription-id/resourceGroups/rg-pls-destinationip/providers/Microsoft.Network/privateLinkservices/pls-directconnect"

# Create resource group for PE
New-AzResourceGroup -Name $peResourceGroupName -Location $location

# Create VNet for Private Endpoint
$peSubnet = New-AzVirtualNetworkSubnetConfig -Name $peSubnetName -AddressPrefix "10.1.1.0/24" -PrivateEndpointNetworkPoliciesFlag "Disabled"
$peVnet = New-AzVirtualNetwork -Name $peVnetName -ResourceGroupName $peResourceGroupName -Location $location -AddressPrefix "10.1.0.0/16" -Subnet $peSubnet

# Get subnet reference for Private Endpoint
$peSubnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $peVnet -Name $peSubnetName

# Create Private Endpoint
$privateLinkserviceConnection = @{
    Name = "connection-to-pls"
    PrivateLinkserviceId = $privateLinkserviceId
}

$privateEndpoint = New-AzPrivateEndpoint -Name $privateEndpointName -ResourceGroupName $peResourceGroupName -Location $location -Subnet $peSubnet -PrivateLinkserviceConnection $privateLinkserviceConnection

Write-Output "Private Endpoint created: $($privateEndpoint.Name)"

Проверка конфигурации

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

# Get Private Link service details
$pls = Get-AzPrivateLinkservice -Name $plsName -ResourceGroupName $resourceGroupName

Write-Output "Private Link service: $($pls.Name)"
Write-Output "Provisioning State: $($pls.ProvisioningState)"
Write-Output "Destination IP: $($pls.DestinationIPAddress)"
Write-Output "IP Configurations: $($pls.IpConfigurations.Count)"

# Check Private Endpoint connections
$connections = $pls.PrivateEndpointConnections
foreach ($connection in $connections) {
    Write-Output "PE Connection: $($connection.Name) - Status: $($connection.PrivateLinkserviceConnectionState.Status)"
}

Устранение неполадок

Распространенные проблемы и решения

Проблема: "Необходимо включить не менее 2 IP-конфигураций в количествах кратных 2"

Решение: Убедитесь, что при настройке PLS Direct Connect настроено не менее 2 IP-конфигураций.

Проблема: "Не удается связаться с IP-адресом назначения"

Решение. Убедитесь, что:

  • Ip-адрес назначения доступен в виртуальной сети.
  • Между PLS и конечным IP-адресом не существует IP-пересылки или NAT.
  • Группы безопасности сети разрешают необходимый трафик

Очистите ресурсы

После тестирования очистите ресурсы, чтобы избежать текущих расходов:

# Remove resource groups (this deletes all resources within them)
Remove-AzResourceGroup -Name $resourceGroupName -Force
Remove-AzResourceGroup -Name $peResourceGroupName -Force

FAQs

Флаг компонента не отображается на портале. Как зарегистрировать функцию?

Необходимо ли значение свойства privateLinkServiceNetworkPolicies когда-либо устанавливать в True, например в случае глобального распространения (GA)?

  • Свойство privateLinkServiceNetworkPolicies не требуется для этой функции, поэтому задайте для него значение false.

Дальнейшие шаги