你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

使用 Azure CLI 的路由服务器部署环境示意图。

重要

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

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户
  • 本文中的步骤在 Azure Cloud Shell 中以交互方式运行 Azure CLI 命令。 要在 Cloud Shell 中运行命令,请选择代码块右上角的“打开 Cloudshell”。 选择“复制”以复制代码,并将其粘贴到 Cloud Shell 以运行。 也可以从 Azure 门户中运行 Cloud Shell。 还可以 在本地安装 Azure CLI 以运行命令。 如果在本地运行 Azure CLI,请使用 az login 命令登录到 Azure。
  • 查看 Azure 路由服务器的服务限制

创建资源组和虚拟网络

创建资源组

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

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

创建虚拟网络

使用 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 网关进行交互的详细信息: