快速入门:使用 Azure PowerShell 创建并配置路由服务器
本文可帮助你使用 Azure PowerShell 将 Azure 路由服务器配置为与虚拟网络中的网络虚拟设备 (NVA) 对等互连。 路由服务器从 NVA 获知路由,并将这些路由配置到虚拟网络中的虚拟机上。 Azure 路由服务器还会将虚拟网络路由播发到 NVA。 有关详细信息,请参阅 Azure 路由服务器。
重要
在 2021 年 11 月 1 日以前创建的无关联公共 IP 地址的 Azure 路由服务器使用公共预览版产品/服务进行部署。 公共预览版产品/服务不受正式发布版 SLA 支持,也不提供支持服务。 要使用正式发布版产品/服务部署 Azure 路由服务器,并获得正式发布版 SLA 和支持,请删除路由服务器并重新创建。
先决条件
- 具有活动订阅的 Azure 帐户。 创建帐户。
- 确保你有最新的 PowerShell 模块。
- 查看 Azure 路由服务器的服务限制。
- 如果在本地运行 PowerShell,则还需运行
Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
创建资源组和虚拟网络
创建资源组
必须先创建资源组来托管路由服务器,然后才能创建 Azure 路由服务器。 使用 New-AzResourceGroup 创建资源组。 此示例在“ChinaNorth3”位置创建了名为 myRouteServerRG 的资源组:
$rg = @{
Name = 'myRouteServerRG'
Location = 'ChinaNorth3'
}
New-AzResourceGroup @rg
创建虚拟网络
使用 New-AzVirtualNetwork 创建虚拟网络。 此示例在“ChinaNorth3”位置创建名为 myVirtualNetwork 的默认虚拟网络:如果已有虚拟网络,可以跳到下一部分。
$vnet = @{
Name = 'myVirtualNetwork'
ResourceGroupName = 'myRouteServerRG'
Location = 'ChinaNorth3'
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 = 'ChinaNorth3' AllocationMethod = 'Static' IpAddressVersion = 'Ipv4' Sku = 'Standard' } $publicIp = New-AzPublicIpAddress @ip
使用 New-AzRouteServer 创建 Azure 路由服务器。 以下示例在“ChinaNorth3”位置创建了名为 myRouteServer 的 Azure 路由服务器。 HostedSubnet 是在前一部分中创建的 RouteServerSubnet 的资源 ID。
$rs = @{ RouteServerName = 'myRouteServer' ResourceGroupName = 'myRouteServerRG' Location = 'ChinaNorth3' HostedSubnet = $subnetId PublicIP = $publicIp } New-AzRouteServer @rs
创建与 NVA 对等互连的 BGP
若要建立从路由服务器到 NVA 的 BGP 对等互连,请使用 Add-AzRouteServerPeer:
your_nva_ip
是分配到 NVA 的虚拟网络 IP。 your_nva_asn
是在 NVA 中配置的自治系统编号 (ASN)。 该 ASN 可以是 65515-65520 范围之外的任意 16 位数字。 此 ASN 范围是 Microsoft 保留的。
$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 路由服务器和网关之间启用路由交换,请使用带有 -AllowBranchToBranchTraffic 标志的 Update-AzRouteServer:
$routeserver = @{
RouteServerName = 'myRouteServer'
ResourceGroupName = 'myRouteServerRG'
AllowBranchToBranchTraffic
}
Update-AzRouteServer @routeserver
- 若要在 Azure 路由服务器和网关之间禁用路由交换,请使用不带 -AllowBranchToBranchTraffic 标志的 Update-AzRouteServer:
$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 网关进行交互的详细信息: