Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

如何在路由策略匹配条件中评估 BGP 社区和扩展社区

当您使用 BGP 社区和扩展社区作为路由策略中的条件匹配时,策略框架软件将按以下方式评估它们:

  • 每个路由都在路由策略from语句中针对每个已命名的团体进行评估。如果某个路由与from语句中的某个命名社区匹配,则会继续对当前术语进行评估。如果路由不匹配,则对当前术语的评估将结束。

  • 将根据已命名社区的每个成员评估路由。所有成员的评估必须成功才能使已命名的社区评估成功。

  • 命名社区中的每个成员都通过一个文本社区值或正则表达式来标识。每个成员都根据与路由关联的每个团体进行评估。(社区是路由的无序属性。例如,1:2 3:4 与 3:4 1:2 相同。)只有路由中的一个社区才能与成员评估成功匹配。

  • 社区正则表达式按逐个字符进行计算。例如,如果路由包含社区 1234:5678,则正则表达式会看到九个离散字符,包括冒号 (:)),而不是两组用冒号分隔的编号(1234 和 5678)。例如:

    如果社区成员是正则表达式,则会进行字符串匹配,而不是数字匹配。

    例如:

    如果给定路由的社区值为1100:100,则此路由匹配community example2 ,但example1不符合。

  • 要匹配路由策略one,路由必须与comm-onecomm-two匹配。

  • 要匹配comm-one,路由必须具有匹配1:2 的社区和与4:5 或4:6 匹配的社区。

  • 要匹配comm-two,路由必须有一个匹配7:8 的社区和一个匹配9:10 的社区。

多个匹配

找到多个匹配项时,不会发生标签聚合。请考虑以下配置:

例如,假设使用社区属性target:65000:1000 origin:65200:2000接收两个路由,并且社区名称为。 "5...:.*" 在这种情况下,既有扩展社区target:65000:1000属性origin:65200:2000 ,又与社区名称的正则表达式匹配。在这种情况下,不会进行标签聚合。在以下示例中, Label operation字段显示标签未聚合。

您可以通过以下任何一种方式解决此问题:

  • 如果源站点扩展社区属性未与目标网络重叠,请在正则表达式中更具体一些。

  • 在社区名称中指定来源场地。

以下示例中显示了这两种方法。

更具体地了解正则表达式

在社区名称中指定来源场地

反转社区匹配

community Match 条件定义正则表达式,如果它与收到的前缀的社区属性匹配,Junos OS 将返回 TRUE 结果。否则,Junos OS 将返回错误结果。该invert-match语句使 Junos OS 的行为相反。如果存在匹配项,Junos OS 将返回错误结果。如果没有匹配项,Junos OS 将返回 TRUE 结果。要反转社区表达式匹配的结果,请在社区配置invert-match中包含此语句。

扩展的社区类型

扩展的社区类型不会由正则表达式考虑。例如,请考虑以下社区属性和社区名称。

小组

  • 5200:1000

  • target:65000:1000

  • origin:65200:2000

社区属性:

  • 社区名称成员 "5 ...:. *"

在这种情况下,扩展社区属性5200:1000和扩展社区属性origin:65200:2000均与社区名称的正则表达式匹配。因此,不会发生标签聚合,如下所示:

您可以使用更具体的正则表达式来解决此问题。例如,您可以使用锚定字符(^)来绑定数字位置,如下所示:

多个社区与 Ex 或逻辑相匹配

这与 BGP 中的非扩展社区所用的匹配逻辑不同。

例如,如果收到带有两组社区属性的四个路由,则正则表达式可能同时匹配两个社区属性。请考虑以下示例:

  • Communities—5200:1000 target:65000:1000

  • Communities—target:65000:1000 origin:65200:2000

  • 社区属性 — 社区社区名称成员 [ "^5...:.*" 起源:65.*:.* ]

这两个标签均聚合,如下所示:

下面显示了更完整的社区价值示例:

此正则表达式匹配从1、3或4开始的社区值,并匹配具有以下类型的源的扩展社区值:其管理值以2、3或6开头。

在路由策略匹配条件中包括 BGP 社区和扩展社区

要以路由BGP匹配条件包括组组或扩展社区,在策略术语的语句 communityfrom 中包括条件:

此外,您可以使用none选项通过静态路由显式排除 BGP 社区信息。在route部分中配置单个路由时包括此选项,以覆盖defaults部分中指定的社区选项。

您可以在community匹配条件中包含多个社区的名称。如果执行此操作,则只有一个社区需要匹配才能发生匹配(匹配是有效的逻辑 OR 操作)。