Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解如何定义 BGP 社区和扩展社区

要将 BGP 社区或扩展社区用作路由策略匹配条件,请按以下部分所述定义社区:

定义在路由策略匹配条件中使用 BGP 社区

要创建命名 BGP 社区并定义社区成员,请包含以下community语句:

名称 标识社区。它可以包含字母、数字和连字符 (-),并且可高达 255 个字符。要将空格包含在名称中,请用引号 (" ") 将整个名称括起来。

社区 ID 标识 社区的一个或多个成员。每个社区 ID 都由两个组件组成,您可以按以下格式指定它们:

  • as 编号— AS成员数。可以是 0 到 65,535 的值。在指定 AS number 时,可使用以下表示法:

    • 字符串数字。

    • 星号 (*)—匹配所有已输入编号的通配符AS字符。(在社区属性定义中,星号也是中表 1所述的功能。)

    • 期 (.)— 匹配任意序列号中任意单位数的通配符AS字符。

    • 组AS编号 — 一个AS编号或一组AS括在括号中。以这种方式对数字进行分组可让您作为一个整体对组执行通用操作,并为组提供优先级。分组后的数字本身可以包括正则表达式运算符。有关正则表达式的详细信息, 在社区名称中使用 UNIX 正则表达式请参阅。

  • 社区值— 社区成员标识。它可以是 0 到 65,535 的编号。您可在指定社区 ID 时使用以下表示法:

    • 字符串数字。

    • 星号 (*)—匹配所有社区值的通配符。(在社区属性定义中,星号也是中表 1所述的功能。)

    • 期 (.)—匹配社区值编号中任意单位数的通配符。

    • 社区值编号组 — 一个社区值编号或括在括号中的一组社区值编号。以这种方式对正则表达式进行分组,可让您作为一个整体对组执行通用操作,并赋予组优先级。分组路径本身可以包括正则表达式运算符。

您也可在语句的社区ids选项中包括以下一个众所周知的社区名称(在 RFC 1997, BGP Communities Attribute 中members 定义):

  • no-播发 — 此社区名称中的路由不得播发至其他BGP对等方。

  • 不导出 - 此社区中的路由不得在外部联盟BGP通告。不属于联合体的独立自治系统应视为联合体本身。

  • no-export-subcond — 此社区的路由不得播发至外部 BGP 对等方,包括该联盟内其他成员的 AS BGP对等方。

在社区名称中使用 UNIX 正则表达式

在指定名为 BGP 社区的成员时(在 语句中),您可以使用 UNIX 样式的正则表达式来指定AS members [ community-ids ] 编号和成员标识符。正则表达式由两个组件组成,您可按以下格式指定:

术语 标识要匹配的字符串。

运算符 指定术语必须匹配如何。 表 1 列出了社区 ID 中支持的正则表达式运算符。将运算符放在没有中间空格的术语之后,(管道 ( ) 和仪表板 |表 2 运算符(两个术语之间)和括起术语的括号之间除外。 显示了如何使用社区正则表达式定义的示例。 community-ids 该操作员是可选的。

社区正则表达式与 UNIX 正则表达式相同。两者均实施 POSIX 1003.2 中定义的扩展(或现代)正则表达式。

社区正则表达式按字符计算逐个term指定的字符串。例如,如果1234:5678指定 as term,正则表达式将看到九个离散字符,包括冒号(:),而不是使用冒号分隔两组1234数字5678(和)。

注:

在 Junos OS 9.1 及更高版本中,您可以指定 RFC 4893、BGP 四字节 AS 编号空间支持 中定义的 4 字节 AS 编号,以及 Junos OS 早期版本中支持的 2 字节 AS 编号。

表 1: 社区属性正则表达式运算符

运营商

匹配定义

{m,n}

至少m ,最多n重复。 termmn均必须为正整数,并且m必须小于。 n

{m}

完全m重复termm必须为正整数。

{m,}

m或更多重复termm必须为正整数。

*

零次或更多term重复。这等效于{0,}

+

term一个或多个重复。这等效于{1,}

?

零或一次重复term。这等效于{0,1}

|

管道两侧两个术语中的一个。

介于起始和结束范围之间(含)。

^

社区属性正则表达式开头的字符。

$

社区属性正则表达式结尾处的字符。

[ ]

组字符。集中的一个字符可以匹配。要指定范围的开始和结束,请使用连字符(-)。要指定不匹配的字符集,请使用插入符号(^)作为左方括号后面的第一个字符([)。

( )

括在括号中的一组术语。如果包含在没有插入空格的引号("()")内,则表示 null。将忽略括号和这些术语之间的空格。

“ ”

在社区属性中括在引号内的字符(如空格、制表符、问号和方括号)表示特殊字符。

表 2: 社区属性正则表达式示例

要匹配的社区属性

正则表达式

示例匹配

AS number 为56或78。社区值为任何数字。

^((56) | (78)):(.*)$

56:1000

78:64500

AS number 为56。社区值是从 2 开始的任何编号。

^56:(2.*)$

56:2

56:222

56:234

AS number 为任意数字。社区值是以 5、7 或 9 结束的任何数字。

^(.*):(.*[579])$

1234:5

78:2357

34:64509

AS number 为56或78。社区值是以 2 开头、以 2 到 8 结束的任何数字。

^((56) | (78)):(2.*[2–8])$

56:22

56:21197

78:2678

定义 BGP 扩展社区,以便在路由策略匹配条件中使用

要创建命名 BGP 社区并定义社区成员,请包含以下community语句:

name识别社区。它可以包含字母、数字和连字符 (-),并且可高达 255 个字符。要将空格包含在名称中,请用引号 (" ") 将整个名称括起来。

community-ids标识社区的一个或多个成员。每个社区 ID 都由三个组件组成,您可以按以下格式指定它们:

type是扩展社区的类型,可以是特定 BGP 扩展社区的16位数字标识符或以下其中一种类型:

  • bandwidth—设置带宽扩展社区。通过指定链路带宽,您可以在不同 BGP 路径之间分配信息流 unequally。

    注:

    链路带宽属性不与按前缀的负载平衡同时工作。

  • domain-id—识别OSPF始发路由的域。

  • origin—识别路由的始发位置。

  • rt-import—识别要安装在路由表中的路由。

    注:

    您必须通过 IP 地址而非 AS 编号来识别路由。

  • src-as—识别AS始发方的来源。您必须指定 AS 编号,而不是 IP 地址。

    注:

    您必须识别 AS as 编号,而不是 IP 地址。

  • target—识别路由要前往的目标。

    注:

    对于 VPN 路由和转发(VRF)实例的导入策略,必须至少包含一个路由目标。此外,不能在 VRF 导入策略的路由目标中使用通配符或正则表达式。为 VRF 导入策略的路由目标配置的每个值都必须是单个值。

administrator是管理员。根据扩展社区AS,它可以是一个序列号或一个 IP 版本 4 (IPv4) 地址前缀。

assigned-number标识本地提供商。

在 Junos OS 9.1 及更高版本中,您可以指定 RFC 4893、BGP 四字节 AS 编号空间支持 中定义的 4 字节 AS 编号,以及 Junos OS 早期版本中支持的 2 字节 AS 编号。以纯数字格式配置范围为 1 到 4,294,967,295 的值。要配置包含 4 字节数字(以纯数字格式AS组)的扩展社区,请将字母 targetorigin "L"附加到编号末尾。例如,使用 4 字节编号为 334,324 和分配编号为 132 的 4 字节 AS 社区表示为 target:334324L:132

在 Junos OS 9.2 及更高版本中,您还可以在为 和扩展社区定义 4 字节 AS 时,使用 AS 点符号 targetorigin 。指定一个句点加入的两个整数:十进制的 16 位高值十进制的 16 位低值。例如,4 字节AS数字,以纯数字格式表示为 65546,以 AS 点符号表示为 1.10。

例子定义 BGP 扩展社区

配置具有管理字段10458且分配有以下几个20的目标团体:

配置具有10.1.1.1 管理字段的目标团体以及分配的值为20:

配置一个来源团体,其管理字段为10.1.1.1,分配的值为20:

在100000的管理字段中将一个4字节的目标团体配置为数字,指定的130数为: