客戶現在可以將 Private Link 服務連線到任何私人可路由的目的地 IP 位址。
Azure Private Link 服務可讓服務提供者將其應用程式放在標準負載平衡器後面,以私下且安全地提供給客戶。 Private Link 服務 Direct Connect 擴充了此功能,並允許客戶將 Private Link 服務直接連線到任何可私有路由的目的地 IP 位址。 此設定對於提供私人連線至需要直接 IP 型路由的應用程式 (例如資料庫連線或自訂應用程式) 的案例特別有用。
本文說明 Private Link 服務直接連線,以及如何使用 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 位址。
什麼是 Private Link 服務 Direct Connect?
Private Link 服務 (PLS) Direct Connect 可讓您:
- 將流量直接路由傳送 至虛擬網路內的特定、可私密路由傳送的目的地 IP 位址。
- 略過負載平衡器需求,以便在需要直接 IP 連線的情境中使用。
- 支援需要精確控制流量目的地的自訂路由場景。
- 設定擴充案例 ,例如安全存取內部部署資源、第三方 SaaS 和虛擬設備。
常見使用案例
- 直接連線到需要靜態 IP 連線的應用程式的資料庫
- 支援無法與負載平衡器轉送共同運作的自訂應用程式案例
- 啟用需要直接 IP 型路由的舊版應用程式
- 需要使用者定義路由 (UDR) 搭配私人連結的案例
- 提供內部部署連線
重要需求
- 提供至少 2 個 IP 組態:針對此功能,至少需要 2 個 2 倍數的 IP 組態才能實現高可用性。
- 指定靜態目的地 IP 位址:目標 IP 必須可在虛擬網路內連線。
- 停用子網路上的 privateLinkServiceNetworkPolicies 屬性:此功能不需要此屬性。
局限性
使用Private Link服務Direct Connect時請注意下列限制:
- 不支援將私人端點作為目的地:目的 IP 位址不能成為私人端點。
- 至少需要 2 個 IP 組態:部署 PLS Direct Connect 至少需要 2 個 IP 組態或 2 的倍數 (最多 8 個)。
- 每個訂用帳戶最多 10 PLS:每個訂用帳戶每個地區有 10 PLS 的硬體限制。
- 頻寬限制:每個 PLS Direct Connect 可支援高達 10 Gbps 的頻寬。
- 靜態IP需求:目標目的地IP位址必須靜態分配,不支援動態分配的目標IP位址。
- 跨區域限制:來源私人端點、私人連結服務和用戶端 VM 必須位於相同的區域中。 當功能正式推出時,將移除此限制。
- 區域可用性:此功能適用於有限區域 (美國中北部、美國東部 2、美國中部、美國中南部、美國西部、美國西部 2、美國西部 3、亞洲東南部、澳洲東部、西班牙中部)。
考慮事項
- 沒有移轉支援:部署此功能需要新的 Private Link 服務。 不支援移轉現有的私人連結服務。
- 可用的用戶端支援:使用 PowerShell、CLI 或 Terraform 來部署此新的 Private Link 服務。 入口網站支援可透過預覽連結取得,該連結可在入口網站中啟用此功能:(aka.ms/PortalPLSDirectConnect)。 無需使用預覽連結來設定功能的完整入口網站支援正在擱置中。
- 已啟用 IP 轉送:如果訂閱上有停用 IP 轉送的原則,則必須停用原則以允許適當的設定。
建立 Private Link 服務 Direct Connect
使用此腳本,使用 Azure PowerShell 建立 Private Link 服務 Direct Connect:
# 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"
建立私人端點以測試連線能力
建立 Private Link 服務 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)"
驗證設定
建立 Private Link 服務和私人端點之後,請確認設定:
檢查 Private Link 服務狀態
# 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
功能旗標在入口網站上不可見。 如何註冊該功能?
- 透過 Azure CLI 或 PowerShell 註冊功能旗標 Microsoft.Network/AllowPrivateLinkserviceUDR,請參閱以下操作方法: 在 Azure 訂用帳戶中設定預覽功能 - Azure Resource Manager |Microsoft 學習。
屬性 privateLinkServiceNetworkPolicies 是否需要設定為 True,例如 GA?
- 此功能不需要 privateLinkServiceNetworkPolicies 屬性,因此請將其設定為 false。