在此页面上
配置路由聚合
了解路由聚合
路由聚合方法通过将选定多个路由整合到单个路由通告中,帮助最大程度地减少 IP 网络的路由表数量。与非聚合路由不同,这种方法的每个路由表都包含每个路由的唯一条目。聚合方法不会帮助减少用于进行聚合的路由器上的路由表的大小。配置仅通告聚合而不是贡献路由的导出策略时,您随后对接收更新的路由器有聚合影响。
当有一个或多个贡献路由时,聚合路由 将变得活动。贡献路由是活动路由,是聚合目标更具体的匹配。例如,对于聚合目标、到达和正在贡献路由的路由,但是到达 和 不是 192.168.0.0/16
192.168.192.0/19
192.168.67.0/24
192.168.0.0./8
192.168.0.0/16
的路由。
一个路由只能贡献一个聚合路由。但是,活动聚合路由递归为不太特定的匹配聚合路由。例如,目标聚合路由可用于 将 192.168.0.0/16
聚合路由用于 192.168.0.0/13
。
当聚合路由变得活动时,会通过以下信息在路由表中安装:
拒绝下一跳跃 — 如果更具体的数据包与更具体的路由不匹配,数据包将被拒绝,并且 ICMP 无法到达的消息会发送至数据包的发起方。
使用 语句配置的度量值
aggregate
。从主贡献器上的策略过滤器(如果已指定过滤器)中的优先级值。
AS语句(如果有)配置
aggregate
的路径。否则,通过聚合所有贡献路由的路径来计算路径。在 语句中配置的
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
这一部分,您可以选择配置聚合路由选项。这些选项仅适用于单个目标并覆盖语句部分配置defaults
的任何aggregate
选项。
在语句的一部分配置单个聚合路由时,请通过以下一种方法指定路由 route
aggregate
的目标(在 route destination-prefix
中):
network/mask-length
,network
其中是 IP 地址的网络部分,mask-length
也是目标前缀长度。default
如果这是到目标的默认路由这相当于指定 的 IP 地址0.0.0.0/0
。
配置聚合路由之后,可通过配置然后由路由协议导出的策略,使协议通告路由。
当在语句的一部分配置聚合路由的目标前缀时,可以 routes
关联路由 aggregate
策略。这样做可提供与目标前缀相同的导入路由策略过滤器。也就是说,聚合路由的每个潜在贡献者以及任何聚合选项都通过策略过滤器传递。然后,策略可以接受或拒绝作为聚合路由贡献者路由的路由,如果接受该贡献者,策略可以修改默认优先级。
以下算法用于比较两个聚合贡献路由,以便确定哪一个是主要或首选贡献者:
比较协议的贡献
preferences
路由。优先级越低,路由就越好。类似于为路由表确定最佳路由时所做的比较。比较协议的贡献
preferences2
路由。较低的优先级2 值更好。如果只有一个路由preferences2
,则首选此路由。优先级值相同。继续前缀值的数字比较。
主要贡献者是数字上最小的前缀值。
如果两个前缀的数字相同,则主要贡献者是前缀长度最小的路由。
此时,两个路由是相同的主要贡献者不会更改。现有主要贡献者还有一个下一跳跃。
拒绝贡献者仍可为不太具体的聚合路由做出贡献。如果不指定策略过滤器,则所有候选路由都表示为聚合路由。
要将路由策略与聚合路由关联,在配置路由时请 policy
包括 语句:
aggregate (defaults | route) { policy policy-name; }
在 语句的 和部分中,您可以指定 ,用于定义有关路由在路由表中安装时随路由一起包含的 defaults
route
aggregate
aggregate-options
聚合路由的其他信息。所有聚合选项都是可选的。在语句部分指定的聚合选项被视为全局默认值,并应用于在语句中配置 defaults
aggregate
的所有聚合 aggregate
路由。在语句中指定的聚合选项将替代任何 route
aggregate
全局聚合选项,并仅应用于该目标。
要配置聚合路由选项,在 语句的 或部分 defaults
中包括一 route
个或多个 aggregate
选项:
[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
metric3
metric4
语句:
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 (232 – 1) 的编号,较低的数字表示首选路由。有关优先级值的信息,请参阅 路由首选项概述。
在 type
选项中,您可以指定路由的类型。
配置聚合路由的下一跳跃
默认情况下,当聚合路由安装在路由表中时,下一跳跃配置为拒绝路由。也就是说,数据包被拒绝,ICMP 无法到达的消息会发送至数据包的发起方。
在语句的一部分配置单个路由时,或者为聚合路由配置默认值时, route
aggregate
可指定丢弃下一跳跃。这意味着,如果更具体的数据包与更具体的路由不匹配,则数据包将被拒绝,并且此目的地的拒绝路由会安装在路由表中,但 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外部对等方,包括该联盟内其他成员的 AS BGP对等方。
您可以使用 选项通过BGP聚合路由明确排除聚合社区 none
信息。在语句部分中配置单个路由以替代语句部分中指定的选项时, none
route
aggregate
community
defaults
请包括 。
层级不支持扩展社区 [edit routing-options]
属性。您必须在 层次结构级别配置扩展 [edit policy-options]
社区。有关配置扩展社区信息的信息,请参阅路由策略、防火墙过滤器和流量管制器用户指南中的"配置扩展社区 属性"一节。有关配置 4 字节数字和AS社区的信息,请参阅 在多网络中使用 4字节BGP系统编号 。
将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 及更高版本中,数字 AS 范围已扩展,可为 4 字节 AS 编号提供 BGP 支持,如 RFC 4893" BGP 四字节 AS编号空间支持 "中定义。对于AS编号,您可以配置 1 到 4,294,967,295 的值。所有版本Junos OS支持 2 字节AS编号。2 字节AS编号范围为 1 到 65,535(这是 4 字节范围的子集)。
在 Junos OS 9.2 及更高版本中,您还可以使用两个整数值加一个句点的 AS 点符号格式配置 4 字节 AS 编号:< 16-bit high-order value in decimal 16-bit low-order value in decimal >.< >。例如,以纯数字格式AS 65,546 的 4 字节数字表示为 1.10,AS点符号格式。可以使用点符号格式指定范围为 0.0 到 65535.65535 AS的值。
您还可以使用AS源属性BGP路径,用于指示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 标志。如果要泄漏此类路由,BGP路径长度可能会AS,我们建议在默认路由配置中静态添加 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
BGP路径属性。
aggregate (defaults | route) { brief; }
要明确地将来自AS所有贡献路径的编号包含在聚合路由的路径中,请配置路由时 full
包括 选项。在语句部分中配置单个路由以替代语句部分中指定的选项时,请 route
aggregate
retain
defaults
包括此选项。
aggregate (defaults | route) { full; }
有关可包含这些语句的层次结构级别列表,请参阅这些语句的语句摘要部分。
为聚合路由配置标记值
默认情况下,没有标记值与聚合路由相关联。可以通过包括 选项来指定标记 tag
值:
aggregate (defaults | route) { tag metric type number; }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句汇总部分。
控制路由和转发表中无效聚合路由的保留
只有在下一跳跃变得不可访问时,静态路由才从路由表中移除,这一点在无贡献路由时发生。要不断在路由和转发表中安装聚合路由,在配置路由时请包括 passive
选项:
aggregate (defaults | route) { passive; }
已配置为在路由和转发表中持续安装的路由在处于非活动状态时,会用下一跃 reject
点标记。
要显式删除聚合路由成为非活动状态,在配置路由 active
时请包括 该选项。在语句部分中配置单个路由以替代语句部分中指定的选项时,请 route
aggregate
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 向设备 ISP 发送有关这些路由的信息(10.200.1.0/24 和 10.200.2.0/24)时,此信息汇总为单个聚合路由 (10.200.0.0/16)。
- 设备 R2 和设备 R3 共享 IBGP 会话,并OSPF作为IGP。
- 设备 ISP 在 64501 AS默认路由。
此示例显示了所有设备的配置以及设备 R3 上的逐步配置。
配置
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,然后将命令复制并粘贴到 层次结构级别的 CLI 中 [edit]
。
设备 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,请参阅 CLI 用户指南 中的 在配置模式下Junos OS 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
配置路由策略,以因参与与设备 ISP 的 EBGP 会话而将设备 R3 作为下一跳跃报告。
[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 的可达性。