Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

面向 BGP 社区的路由策略

了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件

BGP 公共组是共享公共财产的一组目标。社区信息作为路径属性包含在 BGP 更新消息中。此信息可识别社区成员,使您无需详细说明每个成员即可对某个组执行操作。您可以使用社区和扩展社区属性来触发路由决策,例如接受、拒绝、优先级或重新分配。

您可以通过配置(静态、聚合或生成的路由)或导入路由策略,将社区标记分配给非 BGP 路由。然后,当 BGP 导出路由时,可以匹配这些标记。

公共组值是一个 32 位字段,分为两个主要部分。值的前 16 位编码是源自社区的网络的 AS 编号,而最后 16 位则承载着由 AS 分配的独特编号。该系统会尝试为互联网中的每个 AS 提供一套全球唯一的社区值。Junos OS 使用一个表示 as-number:community-value,其中每个值都是一个十进制编号。AS 值为 0 和 65,535 保留,这些 AS 编号中的所有社区值也保留。配置层次结构中 [edit policy-options] 为每个公共组或一组社区指定名称。公共组名称唯一标识给路由设备,并用作路由分类的方法。例如,公共组值为 64510:1111 的路由可能属于名为 AS64510-routes的社区。公共组名称也在路由策略中用作匹配标准或作为操作。创建社区的命令语法是:策略选项 community name members [community-ids]。是 community-ids 单个社区价值,也可以是多个社区值。将多个值分配给公共组名称时,路由设备将此解释为公共组值的逻辑和值。换言之,路由在分配社区名称之前必须具有所有配置的值。

常规公共组属性为四个八位位组。网络增强功能(如 VPN)具有可通过社区等属性来满足的功能要求。但是,4 八位位组社区价值无法提供足够的扩展和灵活性来满足 VPN 要求。这就导致建立扩展社区。扩展社区是一个 8 八位位组值,也分为两个主要部分。社区的前 2 个八位组对类型字段进行编码,而最后 6 个八位组则以类型字段定义的格式承载一组独特的数据。扩展社区为社区分组或分类提供了更大的范围。

BGP 扩展社区属性格式有三个字段:type:administrator:assigned-number. 路由设备希望您使用 该字段 targetorigin 表示类型字段。管理员字段对 AS 或 IPv4 地址使用十进制编号,而分配的编号字段预计小数值不大于字段大小(2 个八位位组为 65,535 个,4 个八位位组为 4,294,967,295)。

为标准和扩展社区属性指定社区 ID 时,可以使用 UNIX 式的正则表达式。VPN 导入策略 (vrf-import) 唯一例外,该策略不支持扩展社区属性的正则表达式。

常规 BGP 社区属性是一个长度可变的属性,包含一组一个或多个 4 字节值,该值被划分为 16 位值。最重要的单词被解释为 AS 编号,最不重要的单词是 AS 的操作员分配的本地定义值。自采用 4 字节 ASN 以来,4 字节 BGP 常规社区和 6 字节 BGP 扩展社区不再支持 BGP 社区属性。运营商通常在 BGP 公共组的本地部分编码 AS 编号,这意味着有时公共组的格式是 ASN:ASN。借助 4 字节 ASN,您需要 8 字节来对其进行编码。尽管 BGP 扩展社区允许将 4 字节 AS 编码为全球管理员字段,但本地管理员字段只有 2 字节可用空间。因此,6 字节扩展社区属性也不适合。为了克服这一难题,Junos OS 允许您配置可选的过渡路径属性 - 一个 12 字节 BGP 大社区,提供最重要的 4 字节值来将自治系统编号编码为全球管理员,其余两个 4 字节分配的数字用于编码 RFC 8092 中定义的本地值。您可以在 [edit policy-options community community-name members] 层级和 [edit routing-options static route ip-address community] 层级配置 BGP 大型公共组。BGP 大型公共组属性格式有四个字段:large:global administrator:assigned number:assigned number.

注:

BGP 大型社区属性值的长度应为 12 的非零倍数。

示例:将路由策略配置到 IS-IS 中使用特定社区标记重新分配 BGP 路由

此示例定义了将 BGP 路由从 Edu 社区带到 IS-IS 的策略,其指标为 63。

要求

配置此示例之前,无需设备初始化以外的特殊配置。

概述

图 1 显示了此示例中使用的拓扑。

图 1: 将带有特定社区标记的 BGP 路由重新分配到 IS-IS将带有特定社区标记的 BGP 路由重新分配到 IS-IS

在此示例中,设备 A、设备 B、设备 C 和设备 D 处于自治系统 (AS) 1 中,并正在运行 IS-IS。所有 AS 1 设备(设备 D 除外)都在运行内部 BGP (IBGP)。

设备 E 在 AS 2 中,具有与设备 C 的外部 BGP (EBGP) 对等会话。 设备 E 有两个静态路由,10.2.0.0/16 和 10.3.0.0/16。这些路由标记为 Edu 2:5 公共组属性,并通过 EBGP 通告至设备 C。

设备 C 接受标记为 Edu 2:5 公共组属性的 BGP 路由,将路由重新分配到 IS-IS,并将 63 的 IS-IS 指标应用于这些路由。

CLI 快速配置 显示了 中所有设备 图 1的配置。本节 #d244e62__d244e382 介绍设备 C 和设备 E 上的步骤。

配置

程序

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改与网络配置匹配所需的任何详细信息,然后将命令复制粘贴到层次结构级别的 [edit] CLI 中。

设备 A

设备 B

设备 C

设备 D

设备 E

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 E:

  1. 配置接口。

  2. 配置策略 statics ,将公共组属性添加 Edu 至静态路由。

  3. 配置 EBGP 并应用策略 statics

  4. 配置静态路由。

  5. 配置路由器 ID 和 AS 编号。

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 C:

  1. 配置接口。

  2. 配置 IBGP。

  3. 配置 Edu-to-isis 策略,该策略重新分配从设备 E 学到的 Edu 标记 BGP 路由,并应用 63 的指标。

  4. 在接口上启用 IS-IS,并应用 Edu-to-isis 策略。

  5. 配置通过 EBGP 重新分配到设备 E 的路由的发送式直接策略。

    如果没有此策略,设备 E 将无法连接到 AS 1 中的网络。

  6. 配置 EBGP 并应用发送-isis-and-direct 策略。

  7. 配置路由器 ID 和自治系统 (AS) 编号。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

设备 E

设备 C

如果完成设备配置,请在配置模式下输入 commit

验证

确认配置工作正常。

验证 IS-IS 邻接方

目的

验证来自设备 E 的 BGP 路由是否在 AS 1 中的 IS-IS 网络上进行通信。

行动

在操作模式下,输入 show route protocol isis 命令。

意义

如预期的那样,10.2.0.0/16 和 10.3.0.0/16 路由作为 IS-IS 外部路由位于设备 D 的路由表中,其指标为 73。如果设备 C 未在指标中添加 63,则设备 D 的这些路由的指标为 10。

示例:配置可移除 BGP 社区的路由策略

此示例说明如何创建接受 BGP 路由的策略,但是从路由中移除 BGP 社区。

要求

配置此示例之前,无需设备初始化以外的特殊配置。

概述

此示例显示两个路由设备之间的外部 BGP (EBGP) 连接。设备 R2 使用 BGP 会话将两个静态路由发送至设备 R1。在设备 R1 上,导入策略指定必须从路由中移除所有 BGP 社区。

默认情况下,当社区在 EBGP 对等方上配置时,将发送和接受这些社区。要抑制接受从邻接方接收的社区,您可以移除所有社区或指定的一组社区。如果策略的结果是一组空的社区,则不包含社区属性。要移除所有社区,请先定义一组通配符社区(此处命名wild为社区):

然后,在路由策略语句中 community delete 指定以下操作:

要压制特定公共组的任何自治系统 (AS),请将公共组定义为 community wild members "*:community-value"

拓扑

图 2 显示了示例网络。

图 2: 移除社区的 BGP 策略移除社区的 BGP 策略

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改与网络配置匹配所需的任何详细信息,然后将命令复制粘贴到层次结构级别的 [edit] CLI 中。

设备 R1

设备 R2

程序

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 R1:

  1. 配置接口。

  2. 配置 BGP。

    将导入策略应用于与设备 R2 的 BGP 对等会话。

  3. 配置可删除社区的路由策略。

  4. 配置自治系统 (AS) 编号和路由器 ID。

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 R2:

  1. 配置接口。

  2. 配置路由器 ID 和自治系统 (AS) 编号。

  3. 配置 BGP。

  4. 配置多个社区,或配置包含多个成员的单个社区。

  5. 配置静态路由。

  6. 配置将静态路由通告到 BGP 的路由策略,并将 BGP 公共组添加到路由中。

  7. 应用出口策略。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

设备 R1

设备 R2

如果完成设备配置,请从配置模式进入 commit

验证

确认配置工作正常。

验证 BGP 路由

目的

确保设备 R1 上的路由表不包含 BGP 社区。

行动
  1. 在设备 R1 上 show route protocols bgp extensive 运行 命令。

  2. 在设备 R1 上 community remove ,停用导入策略中的配置。

  3. 在设备 R1 上 show route protocols bgp extensive ,运行 命令以查看已播发的社区。

意义

输出显示,在设备 R1 的路由表中,从设备 R2 发送的 BGP 路由会抑制社区。community remove当设备 R1 导入策略中的设置停用时,社区将不再受到抑制。

示例:根据 BGP 社区的数量配置路由策略

此示例说明如何创建可根据 BGP 社区数量接受 BGP 路由的策略。

要求

配置此示例之前,无需设备初始化以外的特殊配置。

概述

此示例显示两个路由设备之间的外部 BGP (EBGP) 连接。设备 R2 使用 BGP 会话将两个静态路由发送至设备 R1。在设备 R1 上,导入策略指定 BGP 接收的路由最多可以包含五个社区,被视为匹配。例如,如果一个路由包含三个社区,则该路由被视为匹配,并且被接受。如果路由包含六个或更多社区,则该路由被视为非匹配,并且被拒绝。

务必记住,EBGP 的默认策略是接受所有路由。要确保非匹配路由被拒绝,必须在策略定义末尾包含操作 then reject

拓扑

图 3 显示了示例网络。

图 3: BGP 策略,限制接受的社区数量BGP 策略,限制接受的社区数量

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改与网络配置匹配所需的任何详细信息,然后将命令复制粘贴到层次结构级别的 [edit] CLI 中。

设备 R1

设备 R2

程序

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 R1:

  1. 配置接口。

  2. 配置 BGP。

    将导入策略应用于与设备 R2 的 BGP 对等会话。

  3. 配置发送直接路由的路由策略。

  4. 配置自治系统 (AS) 编号和路由器 ID。

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南中的配置模式下使用 CLI 编辑器

要配置设备 R2:

  1. 配置接口。

  2. 配置路由器 ID 和自治系统 (AS) 编号。

  3. 配置 BGP。

  4. 配置多个社区,或配置包含多个成员的单个社区。

  5. 配置静态路由。

  6. 配置将静态路由通告到 BGP 的路由策略,并将 BGP 公共组添加到路由中。

  7. 应用出口策略。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

设备 R1

设备 R2

如果完成设备配置,请从配置模式进入 commit

验证

确认配置工作正常。

验证 BGP 路由

目的

确保设备 R1 上的路由表包含预期的 BGP 路由。

行动
  1. 在设备 R1 上 show route protocols bgp 运行 命令。

  2. 在设备 R1 上 community-count ,更改导入策略中的配置。

  3. 在设备 R1 上 show route protocols bgp 运行 命令。

  4. 在设备 R1 上 show route protocols bgp extensive ,运行 命令以查看已播发的社区。

意义

输出显示,在设备 R1 的路由表中,从设备 R2 发送的 BGP 路由将隐藏。community-count修改设备 R1 导入策略中的设置时,BGP 路由将不再隐藏。