为 Azure ExpressRoute 专用对等互连配置自定义 BGP 社区

BGP 社区是 IP 前缀的分组,这些前缀以社区值标记。 此值可用于在路由器的基础结构上做出路由决策。 你可以通过 BGP 社区标记为 Azure 发送到本地的流量应用筛选器或指定路由首选项。 本文介绍了如何使用 Azure PowerShell 为虚拟网络应用自定义 BGP 社区值。 配置后即可查看虚拟网络的区域 BGP 社区值和自定义社区值。 此值将用于该虚拟网络通过 ExpressRoute 发送的出站流量。

Prerequisites

  • 在开始配置之前,请先查看先决条件路由要求工作流

  • 您必须拥有一条处于活动状态的 ExpressRoute 线路。

    • 请按说明创建 ExpressRoute 线路,并通过连接提供商启用该线路。
    • 请确保已为该线路配置 Azure 专用对等互连。 有关路由说明,请参阅配置路由一文。
    • 确保已配置 Azure 专用对等互连,并建立网络和 Microsoft 之间的 BGP 对等互连,以便进行端到端连接。

注释

虚拟网络 BGP 社区和 ExpressRoute 的使用目前与 Azure 虚拟 WAN 不兼容。

使用 Azure PowerShell

本文中的步骤和示例使用 Azure PowerShell Az 模块。 若要在计算机上本地安装 Az 模块,请参阅安装 Azure PowerShell。 若要详细了解新 Az 模块,请参阅新 Azure Powershell Az 模块简介。 PowerShell 命令行工具经常被更新。 如果未运行最新版本,在说明中指定的值可能无法使用。 若要在系统上查找已安装的 PowerShell 版本,请使用 Get-Module -ListAvailable Az cmdlet。

为新的虚拟网络应用自定义 BGP 社区属性值

  1. 若要启动配置,请登录到你的 Azure 帐户,选择要使用的订阅。

    若要在本地登录,请使用提升的权限打开 PowerShell 控制台,并运行 cmdlet 以进行连接。

    Connect-AzAccount -Environment AzureChinaCloud
    

    如果有多个订阅,请获取 Azure 订阅的列表。

    Get-AzSubscription
    

    指定要使用的订阅。

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. 创建用于存储新的虚拟网络的资源组。

    $rg = @{
        Name = 'myERRG'
        Location = 'WestUS'
    }
    New-AzResourceGroup @rg
    
  3. 使用 -BgpCommunity 标记创建新的虚拟网络以应用 BGP 社区值。

    $vnet = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
        Location = 'WestUS'
        AddressPrefix = '10.0.0.0/16'
        BgpCommunity = '12076:20001'    
    }
    New-AzVirtualNetwork @vnet
    

    注释

    自定义社区值前需要 12076:

  4. 检索虚拟网络并查看其属性。 你会注意到 BgpCommunities 部分,其中包含一个 RegionalCommunity 值和一个 VirtualNetworkCommunity 值。 RegionalCommunity 值是根据虚拟网络的 Azure 区域预定义的。 VirtualNetworkCommunity 值应匹配自定义定义。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    Get-AzVirtualNetwork @virtualnetwork
    

应用或更新现有虚拟网络的自定义 BGP 值

  1. 获取要应用或更新 BGP 社区值的虚拟网络,并将其存储到一个变量中。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    $vnet = Get-AzVirtualNetwork @virtualnetwork
    
  2. 更新虚拟网络的 VirtualNetworkCommunity 值。

    $vnet.BgpCommunities = @{VirtualNetworkCommunity = '12076:20002'}
    $vnet | Set-AzVirtualNetwork
    

    注释

    自定义社区值前需要 12076:

  3. 检索虚拟网络并查看其更新后的属性。 RegionalCommunity 值基于虚拟网络的 Azure 区域而预定义;若要查看专用对等互连的区域 BGP 社区值,请参阅 ExpressRoute 路由要求。 VirtualNetworkCommunity 值应匹配自定义定义。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    Get-AzVirtualNetwork @virtualnetwork
    

后续步骤