快速入门:使用 Azure CLI 创建并配置路由服务器

本文可帮助你使用 Azure PowerShell 将 Azure 路由服务器配置为与虚拟网络中的网络虚拟设备 (NVA) 对等互连。 路由服务器从 NVA 获知路由,并将这些路由配置到虚拟网络中的虚拟机上。 Azure 路由服务器还会将虚拟网络路由播发到 NVA。 有关详细信息,请参阅 Azure 路由服务器

Diagram of Route Server deployment environment using the Azure CLI.

重要

在 2021 年 11 月 1 日以前创建的无关联公共 IP 地址的 Azure 路由服务器使用公共预览版产品/服务进行部署。 公共预览版产品/服务不受正式发布版 SLA 支持,也不提供支持服务。 要使用正式发布版产品/服务部署 Azure 路由服务器,并获得正式发布版 SLA 和支持,请删除路由服务器并重新创建。

先决条件

创建资源组和虚拟网络

创建资源组

在创建 Azure 路由服务器之前,必须创建一个资源组来托管路由服务器。 使用 az group create 创建资源组。 此示例在 chinanorth 位置中创建名为 myRouteServerRG 的资源组:

az group create \
    --name myRouteServerRG \
    --location chinanorth

创建虚拟网络

使用 az network vnet create 创建虚拟网络。 以下示例将创建一个名为 myVirtualNetwork 的默认虚拟网络。 如果已经有虚拟网络,可以跳转到下一部分。

az network vnet create \
    --name myVirtualNetwork \
    --resource-group myRouteServerRG \
    --address-prefix 10.0.0.0/16 

添加专用子网

Azure 路由服务器需要名为 RouteServerSubnet 的专用子网。 子网大小必须至少为 /27 或为更短前缀(例如 /26 或 /25),否则可能会在部署路由服务器时收到错误消息。 使用 az network vnet subnet create 创建名为 RouteServerSubnet 的子网配置:

  1. 运行以下命令将 RouteServerSubnet 添加到虚拟网络。

    az network vnet subnet create \
        --name RouteServerSubnet \
        --resource-group myRouteServerRG \
        --vnet-name myVirtualNetwork \
        --address-prefix 10.0.0.0/24
    
  2. 记下 RouteServerSubnet ID。 若要获取 RouteServerSubnet 的资源 ID 并将其存储到 subnet_id 变量中,请使用 az network vnet subnet show

    subnet_id=$(az network vnet subnet show \
        --name RouteServerSubnet \
        --resource-group myRouteServerRG \
        --vnet-name myVirtualNetwork \
        --query id -o tsv) 
    
    echo $subnet_id
    

创建路由服务器

  1. 若要确保连接到管理路由服务器配置的后端服务,需要分配一个公共 IP 地址。 使用 az network public-ip create 创建一个名为 RouteServerIP 的标准公共 IP:

    az network public-ip create \
        --name RouteServerIP \
        --resource-group myRouteServerRG \
        --version IPv4 \
        --sku Standard
    
  2. 使用 az network routeserver create 创建 Azure 路由服务器。 以下示例将创建一个名为 myRouteServer 的 Azure 路由服务器。 hosted-subnet 是在前一部分中创建的 RouteServerSubnet 的资源 ID。

    az network routeserver create \
        --name myRouteServer \
        --resource-group myRouteServerRG \
        --hosted-subnet $subnet_id \
        --public-ip-address RouteServerIP
    

与 NVA 建立 BGP 对等互连

使用 az network routeserver peering create 在路由服务器和 NVA 之间建立 BGP 对等互连:

peer-ip 是分配到 NVA 的虚拟网络 IP。 peer-asn 是在 NVA 中配置的自治系统编号 (ASN)。 该 ASN 可以是 65515-65520 范围之外的任意 16 位数字。 此 ASN 范围是 Microsoft 保留的。

az network routeserver peering create \
    --name myNVA \
    --peer-ip 192.168.0.1 \
    --peer-asn 65501 \
    --routeserver myRouteServer \
    --resource-group myRouteServerRG

要设置与不同的 NVA 或同一 NVA 的另一个实例的对等互连以实现冗余,请使用与上述命令,但需要使用不同的 PeerNamePeerIpPeerAsn

在 NVA 上完成配置

若要在 NVA 上完成配置并启用 BGP 会话,需要 Azure 路由服务器的 IP 和 ASN。 可以使用 az network routeserver show 获取该信息:

az network routeserver show \
    --name myRouteServer \
    --resource-group myRouteServerRG 

输出将如下所示:

RouteServerAsn  : 65515 

RouteServerIps  : {10.5.10.4, 10.5.10.5}  "virtualRouterAsn": 65515, 

  "virtualRouterIps": [ 

    "10.0.0.4", 

    "10.0.0.5" 

  ], 

重要

建议将每个 NVA 与两个路由服务器实例对等互连,以确保通过 NVA 连接播发虚拟网络路由并实现高可用性。

配置路由交换

如果在相同虚拟网络中拥有一个虚拟网络网关(ExpressRoute 或 VPN,则可以启用 b2b 流量来交换网关和流由服务器之间的路因。

重要

必须在“主动-主动”模式下配置 Azure VPN 网关,并将 ASN 设置为 65515。

警告

如果在包含虚拟网络网关(ExpressRoute 或 VPN)的虚拟网络中创建或删除路由服务器,预计在操作完成之前会出现停机。 如果 ExpressRoute 线路连接到你要在其中创建或删除路由服务器的虚拟网络,则停机时间不会影响 ExpressRoute 线路或它与其他虚拟网络的连接。

  1. 若要启用 Azure 路由服务器和网关之间的路由交换,请使用 az network routerserver update,并将 `--allow-b2b-traffic`` 标志设置为 true:

    az network routeserver update \
        --name myRouteServer \
        --resource-group myRouteServerRG \
        --allow-b2b-traffic true 
    
  2. 若要禁用 Azure 路由服务器和网关之间的路由交换,请使用 az network routerserver update,并将 `--allow-b2b-traffic`` 标志设置为 false:

    az network routeserver update \
        --name myRouteServer \
        --resource-group myRouteServerRG \
        --allow-b2b-traffic false 
    

疑难解答

使用 az network routeserver peering list-advertised-routes 查看 Azure 路由服务器播发的路由:

az network routeserver peering list-advertised-routes \
    --name myNVA \
    --routeserver myRouteServer \
    --resource-group myRouteServerRG

使用 az network routeserver peering list-learned-routes 查看 Azure 路由服务器获知的路由:

az network routeserver peering list-learned-routes \
    --name myNVA \
    --routeserver myRouteServer
    --resource-group myRouteServerRG \

Azure CLI 可以在多个 shell 环境中运行,但格式略有变化。 如果 Azure CLI 命令出现意外结果,请参阅如何成功使用 Azure CLI

清理资源

如果不再需要 Azure 路由服务器,请使用第一个命令删除 BGP 对等互连,然后使用第二个命令删除路由服务器。

  1. 使用 az network routeserver peering delete 删除 Azure 路由服务器和 NVA 之间的 BGP 对等互连:

    az network routeserver peering delete \
        --name myNVA \
        --routeserver myRouteServer \
        --resource-group myRouteServerRG
    
  2. 使用 az network routeserver delete 删除 Azure 路由服务器:

    az network routeserver delete \
        --name myRouteServer \
        --resource-group myRouteServerRG
    

后续步骤

在创建 Azure 路由服务器后,请继续了解有关 Azure 路由服务器如何与 ExpressRoute 和 VPN 网关进行交互的详细信息: