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位对发起社区的网络的数量进行编码,而最后16位则采用 AS 形式分配的唯一编号。此系统会尝试为每个 AS 在互联网中提供一组全局唯一的社区值。Junos OS 使用表示法的as-number:community-value,其中每个值都是一个十进制数。AS 值0和65535将保留,就像数字中的所有社区值一样。每个社区或一组社区都在[edit policy-options]配置层次结构中指定一个名称。社区的名称将其唯一标识到路由设备,并用作路由的分类方法。例如,团体值为64510:1111 的路由可能属于指定AS64510-routes的团体。社区名称也在路由策略中用作匹配标准或操作。用于创建社区的命令语法为:策略选项community name members [community-ids]community-ids是单个社区值,也可以是多个团体值。将多个值分配给一个社区名称时,路由设备会将其解释为团体值的逻辑和。换句话说,路由必须具有所有已配置的值才能分配该社区名称。

常规群组属性为四个八位字节。网络增强功能(如 Vpn)具有可由某个属性(例如社区)满足的功能性要求。但是,4字节的社区价值不能提供足够的扩展能力和灵活性来满足 VPN 要求。这会导致创建扩展的社区。扩展的社区是8位字节的值,也分为两个主要部分。社区的前2个八位字节对类型字段进行编码,而最后6个字节则以 type 字段定义的格式传输一组唯一数据。扩展社区可提供更大的范围,以便对社区进行分组或分类。

BGP 扩展的社区属性格式有三个字段:type:administrator:assigned-number. 路由设备期望您使用词targetorigin表示类型字段。"管理员" 字段对 AS 或 IPv4 地址使用十进制数字,而 "分配的号码" 字段需要的小数值不会大于字段的大小(65535表示2个八位字节,4294967295表示4个八位字节)。

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

常规 BGP 社区属性是可变长度属性,由一组拆分为16位值的一个或多个4字节值组成。最重要的词解释为 "AS 编号" 和 "最低有效单词" 是由 AS 的运算符分配的本地定义值。自采用4字节 ASNs 时,4字节 BGP 常规社区和6字节 BGP 扩展的社区无法再支持 BGP 社区属性。运营商通常在 BGP 社区本地部分中编码为数字,这意味着社区的格式有时是 ASN: ASN。对于4字节 ASN,您需要8个字节才能对其编码。虽然 BGP 扩展社区允许将4字节编码为全局管理员字段,但本地管理员字段只有2字节可用空间。因此,6字节扩展社区属性也不合适。为克服这种情况,Junos OS 允许您配置可选的可传递路径属性-a 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的非零倍数。

示例:配置路由策略以将具有特定社区标记的 BGP 路由重新分配到 IS-IS

此示例定义了一个策略,用于BGP来自社区的路由,将其放入IS-IS中 Edu ,度量为 63。

要求

配置此示例之前,不需要在设备初始化之外进行特殊配置。

概述

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

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

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

设备 E 处于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,并将 IS-IS 指标63应用于这些路由。

CLI 快速配置显示了中图 1所有设备的配置。一节#d243e62__d243e383介绍有关设备 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 到 isis 策略,将从设备 E 获知的 Edu 标记 BGP 路由重新分配,并应用指标63。

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

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

    如果没有此策略,设备 E 将不会以1形式连接到网络。

  6. 配置 EBGP 并应用发送到 isis 和直接策略。

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

成果

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

设备 E

设备 C

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

针对

确认配置是否正常工作。

验证 IS-IS 邻居

用途

验证从设备 E BGP 路由是否以1的形式在 IS-IS 网络上进行通信。

行动

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

含义

正如预期的那样,10.2.0.0/16 和 10.3.0.0/16 路由以 IS-IS 外部路由的度量值 73) 在设备 D 的路由表中。如果设备 C 未将63添加至指标,设备 D 将为这些路由提供指标10。

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

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

要求

在配置此示例之前,不需要进行设备初始化以外的特殊配置。

概述

此示例显示两个路由设备,它们之间带有外部 BGP (EBGP)连接。Device 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 interfaces输入、 show protocolsshow policy-options、和show 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路由中被抑制。当设备 R1 导入策略中的设置停用时, community remove 社区不再被抑制。

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

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

要求

在配置此示例之前,不需要进行设备初始化以外的特殊配置。

概述

此示例显示两个路由设备,它们之间带有外部 BGP (EBGP)连接。Device R2 使用 BGP 会话向设备 R1 发送两个静态路由。在设备 R1 上,导入策略指定 BGP 接收的路由最多可以包含五个要视为匹配的团体。例如,如果一个路由包含三个团体,则将其视为匹配并被接受。如果路由包含六个或更多的团体,则将其视为 nonmatch 并被拒绝。

请务必记住,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 interfaces输入、 show protocolsshow policy-options、和show 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 的路由表中,从BGP R2 发送的路由将被隐藏。修改设备 R1 的导入策略中的设置时 community-count ,BGP路由将不再隐藏。