共用方式為


快速入門:使用 Azure PowerShell 來建立和設定路由伺服器

本文可協助您使用 Azure PowerShell,將 Azure 路由伺服器設定為與虛擬網路中的網路虛擬設備 (NVA) 對等互連。 路由伺服器會從您的 NVA 得知路由,並將這些路由規劃到虛擬網路中的虛擬機器上。 Azure 路由伺服器也會向 NVA 公告虛擬網路路由。 如需詳細資訊,請參閱 Azure 路由伺服器

使用 Azure PowerShell 路由伺服器部署環境的圖表。

重要

在 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

建立路由伺服器

  1. 為了確保能與管理路由伺服器設定的後端服務連線,您必須指派公用 IP 位址。 請使用 New-AzPublicIpAddress 建立名為 RouteServerIP 的標準公用 IP:

    $ip = @{
        Name = 'myRouteServerIP'
        ResourceGroupName = 'myRouteServerRG'
        Location = 'WestUS'
        AllocationMethod = 'Static'
        IpAddressVersion = 'Ipv4'
        Sku = 'Standard'
    }
    $publicIp = New-AzPublicIpAddress @ip
    
  2. 使用 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 的另一個執行個體的對等互連 (為了備援),請使用與上述相同的命令,但搭配不同的 PeerNamePeerIpPeerAsn

完成 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 線路或其與其他虛擬網路的連線。

  1. 若要啟用 Azure 路由伺服器與閘道之間的路由交換,請使用 Update-AzRouteServer 並搭配 -AllowBranchToBranchTraffic 旗標:
$routeserver = @{
    RouteServerName = 'myRouteServer'
    ResourceGroupName = 'myRouteServerRG'
    AllowBranchToBranchTraffic
}  
Update-AzRouteServer @routeserver 
  1. 若要停用 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 對等互連,然後使用第二個命令來移除路由伺服器。

  1. 使用 Remove-AzRouteServerPeer 移除 Azure 路由伺服器與 NVA 之間的 BGP 對等互連:
$remotepeer = @{
    PeerName = 'myNVA'
    RouteServerName = 'myRouteServer'
    ResourceGroupName = 'myRouteServerRG'
} 
Remove-AzRouteServerPeer @remotepeer
  1. 使用 Remove-AzRouteServer 移除 Azure 路由伺服器:
$routeserver = @{
    RouteServerName = 'myRouteServer'
    ResourceGroupName = 'myRouteServerRG'
} 
Remove-AzRouteServer @routeserver

下一步

在建立了 Azure 路由伺服器之後,請繼續深入了解 Azure 路由伺服器如何與 ExpressRoute 和 VPN 閘道互動: