快速入門:使用 Azure PowerShell 來建立和設定路由伺服器
本文可協助您使用 Azure PowerShell,將 Azure 路由伺服器設定為與虛擬網路中的網路虛擬設備 (NVA) 對等互連。 路由伺服器會從您的 NVA 得知路由,並將這些路由規劃到虛擬網路中的虛擬機器上。 Azure 路由伺服器也會向 NVA 公告虛擬網路路由。 如需詳細資訊,請參閱 Azure 路由伺服器。
重要
在 2021 年 11 月 1 日之前建立的 Azure 路由伺服器若沒有相關的公用 IP 位址,會與公開預覽供應項目一同部署。 公開預覽供應項目不受正式發行 SLA 和支援所支援。 若要使用正式發行供應項目部署 Azure 路由伺服器,並達到正式發行 SLA 和支援,請刪除並重新建立路由伺服器。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 確定您有最新的 PowerShell 模組,或者您可以在入口網站中使用 Azure Cloud Shell。
- 檢閱 Azure 路由伺服器的服務限制。
- 如果正在本機執行 PowerShell,也需要執行
Connect-AzAccount
,以建立與 Azure 的連線。
建立資源群組和虛擬網路
建立資源群組
您必須先建立資源群組來裝載 Azure 路由伺服器,才能建立 Azure 路由伺服器。 使用 New-AzResourceGroup 來建立資源群組。 此範例會在 WestUS 位置建立名為 myRouteServerRG 的資源群組:
$rg = @{
Name = 'myRouteServerRG'
Location = 'WestUS'
}
New-AzResourceGroup @rg
建立虛擬網路
使用 New-AzVirtualNetwork 建立虛擬網路。 此範例會在 WestUS 位置建立名為 myVirtualNetwork 的預設虛擬網路:如果您已經有虛擬網路,則可以跳至下一節。
$vnet = @{
Name = 'myVirtualNetwork'
ResourceGroupName = 'myRouteServerRG'
Location = 'WestUS'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
新增專用子網路
Azure 路由伺服器需要名為 RouteServerSubnet 的專用子網路。 子網路大小至少必須是 /27 或更短的前置詞 (例如,/26 或 /25),否則會在部署路由伺服器時收到錯誤訊息。 使用 Add-AzVirtualNetworkSubnetConfig 建立名為 RouteServerSubnet 的子網路設定:
$subnet = @{
Name = 'RouteServerSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
$virtualnetwork | Set-AzVirtualNetwork
$vnetInfo = Get-AzVirtualNetwork -Name myVirtualNetwork -ResourceGroupName myRouteServerRG
$subnetId = (Get-AzVirtualNetworkSubnetConfig -Name RouteServerSubnet -VirtualNetwork $vnetInfo).Id
建立路由伺服器
為了確保能與管理路由伺服器設定的後端服務連線,您必須指派公用 IP 位址。 請使用 New-AzPublicIpAddress 建立名為 RouteServerIP 的標準公用 IP:
$ip = @{ Name = 'myRouteServerIP' ResourceGroupName = 'myRouteServerRG' Location = 'WestUS' AllocationMethod = 'Static' IpAddressVersion = 'Ipv4' Sku = 'Standard' } $publicIp = New-AzPublicIpAddress @ip
使用 New-AzRouteServer 建立 Azure 路由伺服器。 此範例會在 WestUS 位置中建立名為 myRouteServer 的 Azure 路由伺服器。 HostedSubnet 是上一節中所建立 RouteServerSubnet 的資源識別碼。
$rs = @{ RouteServerName = 'myRouteServer' ResourceGroupName = 'myRouteServerRG' Location = 'WestUS' HostedSubnet = $subnetId PublicIP = $publicIp } New-AzRouteServer @rs
建立 BGP 與 NVA 的對等互連
若要建立從路由伺服器到 NVA 的 BGP 對等互連,請使用 Add-AzRouteServerPeer:
your_nva_ip
是指派給 NVA 的虛擬網路 IP。 your_nva_asn
是在 NVA 中設定的自發系統號碼 (ASN)。 ASN 可以是 65515-65520 範圍以外的任何 16 位數字。 Microsoft 會保留此範圍的 ASN。
$peer = @{
PeerName = 'myNVA'
PeerIp = 'your_nva_ip'
PeerAsn = 'your_nva_asn'
RouteServerName = 'myRouteServer'
ResourceGroupName = myRouteServerRG'
}
Add-AzRouteServerPeer @peer
若要設定與不同 NVA 的對等互連或與相同 NVA 的另一個執行個體的對等互連 (為了備援),請使用與上述相同的命令,但搭配不同的 PeerName、PeerIp 和 PeerAsn。
完成 NVA 上的設定
若要完成 NVA 上的設定並啟用 BGP 工作階段,您需要 Azure 路由伺服器的 IP 和 ASN。 您可以使用 Get-AzRouteServer 來獲得此資訊:
$routeserver = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
}
Get-AzRouteServer @routeserver
輸出如下所示:
RouteServerAsn : 65515
RouteServerIps : {10.5.10.4, 10.5.10.5}
重要
我們建議將每個 NVA 與這兩個路由伺服器實例對等互連,以確保虛擬網路路由會透過 NVA 連線公告,並達到高可用性。
設定路由交換
如果您在相同的虛擬網路中有虛擬網路閘道 (ExpressRoute 或 VPN),您可以啟用 BranchToBranchTraffic 流量,以在閘道與路由伺服器之間交換路由。
重要
Azure VPN 閘道必須以主動-主動模式設定,並且將 ASN 設定為 65515。
警告
當您在包含虛擬網路閘道 (ExpressRoute 或 VPN) 的虛擬網路中建立或刪除路由伺服器時,在作業完成之前預期會停機。 如果您的 ExpressRoute 線路連線到您要建立或刪除路由伺服器的虛擬網路,停機時間不會影響 ExpressRoute 線路或其與其他虛擬網路的連線。
- 若要啟用 Azure 路由伺服器與閘道之間的路由交換,請使用 Update-AzRouteServer 並搭配 -AllowBranchToBranchTraffic 旗標:
$routeserver = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
AllowBranchToBranchTraffic
}
Update-AzRouteServer @routeserver
- 若要停用 Azure 路由伺服器與閘道之間的路由交換,請使用 Update-AzRouteServer,但不搭配 -AllowBranchToBranchTraffic 旗標:
$routeserver = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
}
Update-AzRouteServer @routeserver
疑難排解
使用 Get-AzRouteServerPeerAdvertisedRoute 來檢視 Azure 路由伺服器所公告的路由。
$remotepeer = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
PeerName = 'myNVA'
}
Get-AzRouteServerPeerAdvertisedRoute @remotepeer
使用 Get-AzRouteServerPeerLearnedRoute 來檢視 Azure 路由伺服器所得知的路由。
$remotepeer = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
PeerName = 'myNVA'
}
Get-AzRouteServerPeerLearnedRoute @remotepeer
清除資源
如果不再需要 Azure 路由伺服器,請使用第一個命令來移除 BGP 對等互連,然後使用第二個命令來移除路由伺服器。
- 使用 Remove-AzRouteServerPeer 移除 Azure 路由伺服器與 NVA 之間的 BGP 對等互連:
$remotepeer = @{
PeerName = 'myNVA'
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
}
Remove-AzRouteServerPeer @remotepeer
- 使用 Remove-AzRouteServer 移除 Azure 路由伺服器:
$routeserver = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
}
Remove-AzRouteServer @routeserver
下一步
在建立了 Azure 路由伺服器之後,請繼續深入了解 Azure 路由伺服器如何與 ExpressRoute 和 VPN 閘道互動: