Share via


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

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

Diagram of Route Server deployment environment using the 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 閘道互動: