本页内容
配置路由聚合
了解路由聚合
路由聚合方法通过将选定的多个路由整合到单个路由播发中,帮助最大限度地减少 IP 网络中的路由条目数量。这种方法与非聚合路由形成鲜明对比,在非聚合路由中,每个路由表都包含每个路由的唯一条目。聚合方法无助于减小执行聚合的路由器上路由表的大小。如果配置的导出策略仅播发聚合,而不播发影响路由,则对接收更新的路由器产生聚合效应。
当聚合路由具有一个或多个起作用路由时,该路由将变为活动状态。起作用路由是与聚合目标更具体匹配的活动路由。例如,对于聚合目标 192.168.0.0/16,到 和 192.168.67.0/24 的192.168.192.0/19路由是贡献路由,但到 和 192.168.0.0/16 的192.168.0.0./8路由不是。
一个路由只能用于单个聚合路由。但是,活动聚合路由可能会递归地影响不太具体的匹配聚合路由。例如,到目标 192.168.0.0/16 的聚合路由可以构成到 192.168.0.0/13的聚合路由。
当聚合路由变为活动状态时,它将安装在路由表中,其中包含以下信息:
拒绝下一跃点 — 如果更具体的数据包与更具体的路由不匹配,则该数据包将被拒绝,并向数据包的发起方发送一条 ICMP 不可达消息。
使用语句配置
aggregate的度量值。如果指定了过滤器,则由主要参与者的策略过滤器产生的优先级值。
语句中
aggregate配置的 AS 路径(如果有)。否则,将通过聚合所有相关路由的路径来计算路径。语句中
aggregate配置的社区(如果有)。注意:您只能为每个目标前缀配置一个聚合路由。
要在默认路由表 (inet.0) 中配置聚合路由,请包含以下 aggregate语句:
aggregate { defaults { ... aggregate-options ... } route destination-prefix { policy policy-name; ... aggregate-options ... } }
要在其他路由表中配置聚合路由,或在默认路由表 (inet.0) 中显式配置聚合路由,请包含以下 aggregate 语句:
rib routing-table-name { aggregate { defaults { ... aggregate-options ... } route destination-prefix { policy policy-name; ... aggregate-options ... } } }
您无法为 IPv4 组播路由表 (inet.1) 或 IPv6 组播路由表 (inet6.1) 配置聚合路由。
该 aggregate 声明由两部分组成:
defaults—(可选)在此处指定全局聚合路由选项。这些将被视为全局默认设置,并应用于您在语句中aggregate配置的所有聚合路由。route— 您可以在此处配置单个聚合路由。在语句的aggregate这一部分中,您可以选择配置聚合路由选项。这些选项仅适用于单个目标,并覆盖您在语句部分aggregate中defaults配置的任何选项。
在语句部分aggregate配置route单个聚合路由时,请通过以下方式之一指定路由的目的(在 route destination-prefix中):
network/mask-length,其中network是 IP 地址的网络部分,mask-length是目标前缀长度。default如果这是到达目标的默认路由。这相当于指定 的 IP 地址0.0.0.0/0。
配置聚合路由后,可以通过配置策略来让协议通告路由,然后由路由协议导出。
在语句部分aggregate配置routes聚合路由的目标前缀时,可以关联路由策略。这样做可为目标前缀提供等效的导入路由策略过滤器。也就是说,聚合路由的每个潜在贡献者以及任何聚合选项都将通过策略过滤器。然后,策略可以接受或拒绝路由作为聚合路由的贡献者,如果接受贡献者,策略可以修改默认首选项。
以下算法用于比较两个聚合贡献路由,以确定哪一个是主要或首选贡献者:
比较相关路由的协议
preferences。优先级越低,路由越好。这类似于在确定路由表的最佳路由时进行的比较。比较相关路由的协议
preferences2。preference2 值越低越好。如果只有一个路由具有preferences2,则首选此路由。优先级值相同。继续对前缀值进行数值比较。
主要贡献者是数值上最小的前缀值。
如果两个前缀在数值上相等,则主要贡献者是具有最小前缀长度值的路由。
在这一点上,两条路线是相同的。主要贡献者不会更改。其他下一跃点可供现有的主要参与者使用。
被拒绝的贡献者仍然可以为不太具体的聚合路由做出贡献。如果未指定策略过滤器,则所有候选路由都将计入聚合路由。
要将路由策略与聚合路由相关联,请在配置路由时包含以下 policy 语句:
aggregate (defaults | route) { policy policy-name; }
在语句的 aggregate 和 defaults route 部分中,您可以指定 aggregate-options,用于定义在路由表中安装路由时随路由随附的聚合路由的其他信息。所有聚合选项都是可选的。您在语句部分aggregate中defaults指定的聚合选项将被视为全局默认设置,并应用于您在语句中aggregate配置的所有聚合路由。您在语句部分aggregate中route指定的聚合选项将覆盖任何全局聚合选项,并仅应用于该目标。
要配置聚合路由选项,请在语句的 aggregate 或 defaults route 部分中包含其中一个或多个选项:
[edit] routing-options { aggregate { (defaults | route) { (active | passive); as-path <as-path> <origin (egp | igp | incomplete)> <atomic-aggregate> <aggregator as-number in-address>; community [ community-ids ]; discard; (brief | full); (metric | metric2 | metric3 | metric4) metric <type type>; (preference | preference2 | color | color2) preference <type type>; tag metric type number; } } }
- 为聚合路由配置度量值
- 为聚合路由配置优先级值
- 为聚合路由配置下一跃点
- 将 BGP 社区与聚合路由相关联
- 将 AS 路径与聚合路由相关联
- 在聚合路由路径中包括 AS 编号
- 为聚合路由配置标记值
- 控制路由和转发表中非活动聚合路由的保留
为聚合路由配置度量值
您最多可以指定四个度量值,从(对于第一个度量值)开始metric,一直到 metric2,metric3metric4并包含以下一个或多个语句:
aggregate (defaults | route) { (metric | metric2 | metric3 | metric4) metric <type type>; }
有关可包含这些语句的层次结构级别列表,请参阅这些语句的语句摘要部分。
在该 type 选项中,您可以指定路由类型。
为聚合路由配置优先级值
默认情况下,聚合路由的优先级值为 130。如果路由表包含到目标的动态路由,其优先级值优于此值(较低),则动态路由将被选为活动路由并安装在转发表中。
要修改默认首选项值,请指定主首选项值 (preference)。您还可以指定次级优先级值 (preference2); 和颜色,它们甚至是更细粒度的优先级值 (color 和 color2)。为此,请包含以下一个或多个语句:
aggregate (defaults | route) { (preference | preference2 | color | color2) preference <type type>; }
有关可包含这些语句的层次结构级别列表,请参阅这些语句的语句摘要部分。
优先级值可以是 0 到 4,294,967,295 (2、32 – 1) 范围内的数字,数字越小表示路线越优选。有关首选项值的更多信息,请参阅 路由首选项概述。
在该 type 选项中,您可以指定路由类型。
为聚合路由配置下一跃点
默认情况下,在路由表中安装聚合路由时,下一跃点将配置为拒绝路由。也就是说,数据包将被拒绝,并向数据包的发起方发送一条 ICMP 不可达消息。
在语句的一部分aggregate中route配置单个路由时,或者为聚合路由配置默认值时,可以指定丢弃下一跃点。这意味着,如果更具体的数据包与更具体的路由不匹配,则该数据包将被拒绝,并在路由表中安装此目标的拒绝路由,但不会发送 ICMP 不可达消息。
能够丢弃下一跃点允许您发起汇总路由,该路由可通过动态路由协议播发,并允许您丢弃收到的与比汇总路由更具体的路由不匹配的流量。要丢弃下一跃点,请添加以下 discard 选项:
discard;
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
将 BGP 社区与聚合路由相关联
默认情况下,聚合路由未关联任何 BGP 社区信息。要将社区信息与路由相关联,请添加以下 community 选项:
aggregate (defaults | route) { community [ community-ids ]; }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。 community-value 是社区标识符,可以是 0 到 65,535 范围内的数字。
community-ids 是社区或扩展社区的一个或多个社区标识符。
公共组标识符的格式为:
as-number:community-value
as-number 是 AS 编号,可以是 1 到 65,534 范围内的值。
您还可以将社区指定 community-ids 为以下众所周知的社区名称之一,这些名称在 RFC 1997 中定义:
no-export- 包含此社区名称的路由不会在 BGP 联合边界之外播发。no-advertise— 包含此社区名称的路由不会播发至其他 BGP 对等方。no-export-subconfed— 包含此社区名称的路由不会播发至外部 BGP 对等方,包括 BGP 联合体内其他成员 AS 中的对等方。
您可以使用该none选项通过聚合路由显式排除 BGP 社区信息。在语句部分aggregate配置route单个路由时包括none,以覆盖community语句部分中defaults指定的选项。
层次结构级别不 [edit routing-options] 支持扩展社区属性。您必须在层次结构级别配置 [edit policy-options] 扩展社区。有关配置扩展社区信息的信息,请参阅 《路由策略、防火墙过滤器和流量监管器用户指南》中的“配置扩展社区属性”部分。有关配置 4 字节 AS 编号和扩展社区的信息,请参阅在 BGP 网络中使用 4 字节自治系统编号。
将 AS 路径与聚合路由相关联
默认情况下,聚合路由的 AS 路径是根据组件路由构建的。要手动指定 AS 路径并将 AS 路径信息与路由相关联,请添加以下 as-path 选项:
aggregate (defaults | route) { as-path <as-path> <origin (egp | igp | incomplete)> <atomic-aggregate> <aggregator as-number in-address>; }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
as-path 是要包含在路由中的 AS 路径。它可以包含单独的 AS 路径编号和 AS 集的组合。将集合括在方括号 ( { } 中)。路径中的第一个AS数字表示紧邻本地AS的AS。每个后续数字表示一个AS,该逐渐远离本地AS,朝向路径的原点。
在 Junos OS 9.1 及更高版本中,如 RFC 4893 中所定义的,数值AS范围得到了扩展,可为 4 字节AS编号提供BGP支持, BGP支持四字节AS数字空间。对于 AS 编号,可以配置一个从 1 到 4,294,967,295 的值。所有 Junos OS 版本都支持 2 字节 AS 编号。2 字节 AS 编号范围为 1 到 65535(这是 4 字节范围的一个子集)。
在 Junos OS 9.2 及更高版本中,您还可以使用以下AS点符号格式(两个整数值加一个句点)配置 4 字节AS编号:<>16-bit high-order value in decimal.<16-bit low-order value in decimal>。例如,以纯数字格式表示的 4 字节 AS 编号 65,546 如果以 AS 点符号格式表示,则为 1.10。您可以指定一个介于 0.0 到 65535.65535 范围内的值,采用 AS 点符号格式。
您还可以使用 BGP 源属性指定 AS 路径,该属性指示 AS 路径信息的来源:
egp— 路径信息源自其他 AS。igp— 路径信息源自本地 AS。incomplete—路径信息是通过其他一些方式学习的。
要将 BGP ATOMIC_AGGREGATE 路径属性连接到聚合路由,请指定该 atomic-aggregate 选项。此路径属性表示本地系统选择了不太具体的路由,而不是更具体的路由。
要将 BGP AGGREGATOR 路径属性连接到聚合路由,请指定该 aggregator 选项。使用此选项时,必须指定构成聚合路由的最后一个 AS 编号(编码为两个八位位组),后跟形成聚合路由的 BGP 系统的 IP 地址。
从 Junos OS 13.2R1 开始,当聚合路由的AS路径(由起作用路由构建)超过最大BGP数据包大小(4096 字节)的一半以上时,BGP路由将被隐藏。此类 AS 路径为其设置了 OverflowASPathSize 标志。如果您希望泄露此类 AS 路径长度可能溢出的 BGP 路由,建议在默认路由配置中静态添加 AS 路径。例如:
[edit routing-instances instance-name routing options] user@host# set aggregate route 0.0.0.0/0 as-path path 1267
在聚合路由路径中包括 AS 编号
默认情况下,所有提供路径的所有 AS 编号都包含在聚合路由的路径中。要仅包含影响 AS 路径中最长的常见前导序列,请在配置路由时包括该 brief 选项。如果这样做会导致聚合路由中省略 AS 编号,则聚合路由中将包含 BGP ATOMIC_ATTRIBUTE 路径属性。
aggregate (defaults | route) { brief; }
要将所有起作用路径中的所有 AS 编号显式包含在聚合路由的路径中,请在配置路由时包括该full选项。在语句部分aggregate配置route单个路由时,请包含此选项,以覆盖retain语句部分中defaults指定的选项。
aggregate (defaults | route) { full; }
有关可包含这些语句的层次结构级别列表,请参阅这些语句的语句摘要部分。
为聚合路由配置标记值
默认情况下,聚合路由没有关联标记值。您可以通过包含以下选项来 tag 指定标记值:
aggregate (defaults | route) { tag metric type number; }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
控制路由和转发表中非活动聚合路由的保留
只有当下一跃点变得不可访问时,静态路由才会从路由表中移除,如果没有相关路由,就会发生这种情况。要让聚合路由持续安装在路由和转发表中,请在配置路由时包括以下 passive 选项:
aggregate (defaults | route) { passive; }
如果路由配置为保持持续安装在路由表和转发表中,则当路由处于非活动状态时,将标有 reject 下一跃点。
要在聚合路由变为非活动状态时将其显式移除,请在配置路由时包含该active选项。在语句部分aggregate配置route单个路由时,请包含此选项,以覆盖passive语句部分中defaults指定的选项。
aggregate (defaults | route) { active; }
示例:通过路由聚合汇总静态路由
此示例说明了如何通过配置聚合路由来汇总路由。
要求
配置此示例之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中:
- 设备 R1 连接到客户网络 10.200.1.0/24 和 10.200.2.0/24。
出于演示目的,这些路由在此示例中表示为设备 R1 上的环路接口。
- 设备 R1 具有到达 ISP 网络 (10.0.45.0) 的静态默认路由。
- 设备 R2 配置了静态路由以到达设备 R1 的客户网络(10.200.1.0/24 和 10.200.2.0/24)。
- 设备 R2 还配置了一个路由策略,用于将所有静态路由播发至其邻接方设备 R3。
- 当设备 R3 将有关这些路由(10.200.1.0/24 和 10.200.2.0/24)的信息发送到设备 ISP 时,该信息将汇总为单个聚合路由 (10.200.0.0/16)。
- 设备 R2 和设备 R3 共享一个 IBGP 会话,并将 OSPF 用作 IGP。
- 设备 ISP 将默认路由注入 AS 64501。
此示例显示了设备 R3 上所有设备的配置和分步配置。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层次结构级别的 [edit] CLI 中。
设备 R1
set interfaces ge-0/0/0 description R1-to-R2 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 10.200.1.1/24 set interfaces lo0 unit 0 family inet address 10.200.2.2/24 set routing-options static route 0.0.0.0/0 next-hop 10.0.0.2
设备 R2
set interfaces ge-0/0/0 description R2-to-R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/30 set interfaces ge-0/0/1 description R2-to-R3 set interfaces ge-0/0/1 unit 0 family inet address 10.0.2.2/30 set interfaces lo0 unit 0 family inet address 192.168.100.2/32 set policy-options policy-statement send-customer-routes from protocol static set policy-options policy-statement send-customer-routes then accept set protocols bgp group internal type internal set protocols bgp group internal local-address 192.168.100.2 set protocols bgp group internal export send-customer-routes set protocols bgp group internal neighbor 192.168.100.3 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options autonomous-system 64501 set routing-options static route 10.200.1.0/24 next-hop 10.0.0.1 set routing-options static route 10.200.2.0/24 next-hop 10.0.0.1
设备 R3
set interfaces ge-0/0/1 description R3-to-R2 set interfaces ge-0/0/1 unit 0 family inet address 10.0.2.1/30 set interfaces ge-0/0/2 description R3-to-ISP set interfaces ge-0/0/2 unit 0 family inet address 10.0.45.2/30 set interfaces lo0 unit 0 family inet address 192.168.100.3/32 set policy-options policy-statement next-hop-self term 1 from protocol bgp set policy-options policy-statement next-hop-self term 1 then next-hop self set policy-options policy-statement next-hop-self term 1 then accept set policy-options policy-statement send-aggregate term 1 from protocol aggregate set policy-options policy-statement send-aggregate term 1 then accept set policy-options policy-statement send-aggregate term suppress-specific-routes from route-filter 10.200.0.0/16 longer set policy-options policy-statement send-aggregate term suppress-specific-routes then reject set protocols bgp group external type external set protocols bgp group external export send-aggregate set protocols bgp group external peer-as 64502 set protocols bgp group external neighbor 10.0.45.1 set protocols bgp group internal type internal set protocols bgp group internal local-address 192.168.100.3 set protocols bgp group internal export next-hop-self set protocols bgp group internal neighbor 192.168.100.2 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options autonomous-system 64501 set routing-options aggregate route 10.200.0.0/16
设备 ISP
set interfaces ge-0/0/2 description ISP-to-R3 set interfaces ge-0/0/2 unit 0 family inet address 10.0.45.1/30 set policy-options policy-statement advertise-default term 1 from route-filter 0.0.0.0/0 exact set policy-options policy-statement advertise-default term 1 then accept set protocols bgp group external type external set protocols bgp group external export advertise-default set protocols bgp group external peer-as 64501 set protocols bgp group external neighbor 10.0.45.2 set routing-options autonomous-system 64502 set routing-options static route 0.0.0.0/0 discard
分步程序
下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《 Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器。
要配置设备 R3:
-
配置设备接口。
[edit interfaces] user@R3# set ge-0/0/1 description R3-to-R2 user@R3# set ge-0/0/1 unit 0 family inet address 10.0.2.1/30 user@R3# set ge-0/0/2 description R3-to-ISP user@R3# set ge-0/0/2 unit 0 family inet address 10.0.45.2/30 user@R3# set lo0 unit 0 family inet address 192.168.100.3/32
配置 AS 编号。
[edit routing-options] user@R3# set autonomous-system 64501
-
配置与 ISP 设备的 EBGP 会话。
[edit protocols] user@R3# set bgp group external type external user@R3# set bgp group external peer-as 64502 user@R3# bgp group external neighbor 10.0.45.1
-
配置与设备 R2 的 IBGP 会话。
[edit protocols] user@R3# set bgp group internal type internal user@R3# set bgp group internal local-address 192.168.100.3 user@R3# set bgp group internal neighbor 192.168.100.2
-
将 OSPF 配置为 IGP。
[edit protocols] user@R3# set ospf area 0.0.0.0 interface ge-0/0/1.0 user@R3# set ospf area 0.0.0.0 interface lo0.0 passive
-
为客户网络路由配置聚合路由。
[edit routing-options] user@R3# set aggregate route 10.200.0.0/16
-
配置路由策略以播发聚合路由。
此策略中的第一个术语播发聚合路由。第二个术语可防止播发更具体的路由。
[edit policy-options] user@R3# set policy-statement send-aggregate term 1 from protocol aggregate user@R3# set policy-statement send-aggregate term 1 then accept user@R3# set policy-statement send-aggregate term suppress-specific-routes from route-filter 10.200.0.0/16 longer user@R3# set policy-statement send-aggregate term suppress-specific-routes then reject
-
配置路由策略,以将设备 R3 报告为参与与设备 ISP 的 EBGP 会话的下一跃点。
[edit policy-options] user@R3# set policy-statement next-hop-self term 1 from protocol bgp user@R3# set policy-statement next-hop-self term 1 then next-hop self user@R3# set policy-statement next-hop-self term 1 then accept
-
将聚合路由策略应用于与设备 ISP 的 EBGP 会话。
[edit protocols] user@R3# set bgp group external export send-aggregate
-
将下一跳自策略应用于与设备 R2 的 IBGP 会话。
[edit protocols] user@R3# set bgp group internal export next-hop-self
如果完成设备配置,请提交配置。
[edit] user@R3# commit
结果
通过发出 show interfaces、 show protocols、 show policy-options和 show routing-options 命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@R3# show interfaces
ge-0/0/1 {
description R3-to-R2;
unit 0 {
family inet {
address 10.0.2.1/30;
}
}
}
ge-0/0/2 {
description R3-to-ISP;
unit 0 {
family inet {
address 10.0.45.2/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.100.3/32;
}
}
}
user@R3# show protocols
bgp {
group external {
type external;
export send-aggregate;
peer-as 64502;
neighbor 10.0.45.1;
}
group internal {
type internal;
local-address 192.168.100.3;
export next-hop-self;
neighbor 192.168.100.2;
}
}
ospf {
area 0.0.0.0 {
interface ge-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
user@R3# show policy-options
policy-statement next-hop-self {
term 1 {
from protocol bgp;
then {
next-hop self;
accept;
}
}
}
policy-statement send-aggregate {
term 1 {
from protocol aggregate;
then accept;
}
term suppress-specific-routes {
from {
route-filter 10.200.0.0/16 longer;
}
then reject;
}
}
user@R3# show routing-options
autonomous-system 64501;
aggregate {
route 10.200.0.0/16;
}
验证
确认配置工作正常。
验证设备 R3 是否具有预期的路由
目的
确认设备 R3 具有来自设备 R2 的播发静态路由。
行动
user@R3>show route terse protocol bgp inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A Destination P Prf Metric 1 Metric 2 Next hop AS path * 0.0.0.0/0 B 170 100 >10.0.45.1 64502 I * 10.200.1.0/24 B 170 100 >10.0.2.2 I * 10.200.2.0/24 B 170 100 >10.0.2.2 I
意义
输出显示设备 R3 已学习设备 R2 上配置的静态路由,以便通过 IBGP 对等互连到达设备 R1 的客户网络(10.200.1.0/24 和 10.200.2.0/24)。
验证设备 R3 是否将聚合路由播发至设备 ISP
目的
确保设备 R3 不发送特定的静态路由,而仅发送汇总的聚合路由。
行动
user@R3>show route advertising-protocol bgp 10.0.45.1 inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.200.0.0/16 Self I
意义
输出显示设备 R3 仅将汇总路由发送至设备 ISP。
验证端到端连接
目的
确认从设备 R1 上的客户网络到设备 ISP 的端到端连接。
行动
user@R1>ping 10.0.45.2 source 10.200.1.1 PING 10.0.45.2 (10.0.45.2): 56 data bytes 64 bytes from 10.0.45.2: icmp_seq=0 ttl=63 time=3.953 ms 64 bytes from 10.0.45.2: icmp_seq=1 ttl=63 time=4.979 ms 64 bytes from 10.0.45.2: icmp_seq=2 ttl=63 time=3.789 ms
意义
输出显示一个成功的 ping,用于验证从客户网络 10.200.1.1 到设备 ISP 的可访问性。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
