Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 路由反射器

了解 BGP 路由反射器

本主题讨论如何使用 BGP 路由反射器来简化配置并帮助扩展。

在 BGP 自治系统 (AS) 中,路由必须分布在所有 AS 边界路由器之间。边界网关协议 (BGP) 通过内部 BGP (IBGP) 对等会话实现这一点。默认情况下,从一个 IBGP 对等方获知的路由不会播发给其他 IBGP 对等方。此限制要求 AS 中的所有路由器之间存在 IBGP 会话的全网状结构,以确保完整的路由可见性。

但是,维护全网状网络会增加配置的复杂性并限制可扩展性。每个新的 IBGP 对等方都必须与 AS 中的每个其他对等方建立会话。全网状网络所需的会话总数使用公式 v * (v - 1)/2 计算得出,其中 v 代表 BGP 对等节点的数量。

除了配置开销,全网状还会增加路由扩展。每个 IBGP 对等方接收所有路由,即使许多路由对于其在网络中的位置来说并不理想。

在 RFC 4456 中定义的 BGP 路由反射解决了 IBGP 全网状拓扑的可扩展性挑战。路由反射允许被称为路由反射器 (RR) 的路由器将从一个 IBGP 对等方获知的路由重新分配给其他 IBGP 对等方。这放宽了阻止 IBGP 到 IBGP 路由播发的默认 BGP 规则。

由于路由反射引入了路由环路的可能性,因此 RFC 4456 定义了两个新的 BGP 路径属性,以确保环路预防和一致的路径选择:

  • ORIGINATOR_ID — 标识最初播发路由的BGP邻接方的路由器 ID。仅当首次反映路由时,才会附加 ORIGINATOR_ID 属性。

  • CLUSTER_LIST — 记录路由反射器的群集 ID,这些 ID 在路由通过网络传播时已反映路由。

有关这些属性如何影响 BGP 最佳路径选择的详细信息,请参阅 了解 BGP 路径选择

由于内部 BGP (IBGP) 全网状要求,大多数网络使用路由反射器来简化配置。使用路由反射器,路由器可按群集分组,群集由自治系统特有的数字标识符标识。在群集中,您必须配置从单个路由器(路由反射器)到每个内部对等方的 BGP 会话。使用此配置,可以满足 IBGP 全网状要求。

要在 AS 中使用路由反射,请将一个或多个路由器指定为路由反射器,通常为每个接入点 (接入点) 一个。路由反射器能够将从内部对等方获知的路由重新播发至其他内部对等方。路由反射不需要所有内部对等方彼此完全网状,而只需要路由反射器与所有内部对等方完全网状。路由反射器及其所有内部对等方组成一个群集,如 图 1 所示。

注意:

对于某些瞻博网络设备,您必须在使用路由反射器的每台设备上安装高级 BGP 功能许可证。有关许可证的详细信息,请参阅《 软件安装和升级指南》。

图 1:简单路由反射器拓扑(一个群集) Route Reflector topology with central RR node redistributing BGP routes to client routers in a cluster.

图 1 显示了配置为群集 127 路由反射器的路由器 RR。其他路由器被指定为群集内的内部对等方。BGP 路由由任何内部对等方播发至路由器 RR。然后,RR 会将这些路由重新播发至群集中的所有其他对等方。

您可以通过配置路由反射器的全网状结构来配置多个群集并将其链接起来(参见 图 2)。

图 2:基本路由反射(全网格化的多个集群) Puzzle with circles labeled RR 1 to RR 4 connected by lines and arrows indicating directions or paths.

图 2 将路由反射器 RR 1、RR 2、RR 3 和 RR 4 显示为全网状内部对等方。当路由器将路由播发至 RR 1 时,RR 1 会将路由重新播发至其他路由反射器,而其他路由反射器又会将路由重新播发至 AS 中的其余路由器。路由反射允许路由在整个 AS 中传播,而不会出现全网状要求造成的扩展问题。

注意:

支持多个群集的路由反射器不接受来自非客户端路由器的具有相同群集 ID 的路由。因此,您必须为冗余 RR 配置不同的群集 ID,以便将路由反映到其他群集。

客户端是从路由反射器接收路由的 IBGP 路由器。非客户端是另一个 IBGP 邻接方。路由反射器仅将从非客户端获知的路由播发至其客户端,而不播发至非客户端。但是,路由反射器会将从客户端获知的路由通告给客户端和非客户端。

但是,随着群集变大,带有路由反射器的全网格变得难以扩展,路由反射器之间的全网格也变得难以扩展。为了帮助解决此问题,您可以将路由器群集分组到群集中,以进行分层路由反射(参见 图 3)。

图 3:分层路由反射(群集的群集) Hierarchical network topology with Route Reflectors RR 1, RR 2, RR 3, and RR 4 in BGP, showing cluster connections.

图 3 显示 RR 2、RR 3 和 RR 4 分别作为群集 127、19 和 45 的路由反射器。网络管理员没有对这些路由反射器进行完全网格化,而是将它们配置为另一个群集(群集 6)的一部分,其中 RR 1 是其路由反射器。当路由器将路由播发至 RR 2 时,RR 2 会将路由重新播发至其自身群集中的所有路由器,然后将路由重新播发至 RR 1。RR 1 将路由重新播发至其群集中的路由器,这些路由器通过其群集向下传播路由。

非转发路由反射器

在许多网络中,部署 BGP 路由反射器是为了提高可扩展性,但不直接参与流量转发。这些路由反射器保持 BGP 控制平面功能,不参与数据转发。当路由反射器不在流量路径中时,无需将其反映的路由安装到其转发表中。此类设备称为非转发路由反射器。

您可以通过下列方式之一配置非转发路由反射器:

  • 使用 no-install 语句 – 该语句在 Junos OS 15.1 版中引入, no-install 可防止在转发表中安装 BGP 路由。您可以在以下层级为每个地址族配置此选项:

  • 使用转发表导出策略 – 在早于 15.1 的 Junos OS 版本中,您可以通过配置拒绝从 BGP 获知的路由的转发表导出策略来实现类似的行为。

非转发路由反射器有助于减少主要用作控制平面路由器的设备上的资源负载,特别是在大型服务提供商网络中。

示例:配置路由反射器

此示例说明了如何配置路由反射器。

要求

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

概述

通常,启用了内部 BGP (IBGP) 的设备需要完全网状化,因为 IBGP 不会将更新重新播发到其他支持 IBGP 的设备。全网状结构是在每台支持 IBGP 的设备上配置多个 neighbor 语句来实现的逻辑网格。全网格不一定是物理全网格。在大型部署中,维护全网状(逻辑或物理)并不能很好地扩展。

图 4 显示了设备 A 充当路由反射器的 IBGP 网络。设备 B 和设备 C 是路由反射器的客户端。设备 D 和设备 E 位于群集之外,因此它们是路由反射器的非客户端。

在设备 A(路由反射器)上,您必须通过包含 neighbor 客户端(设备 B 和设备 C)和非客户端(设备 D 和设备 E)的语句,与所有启用 IBGP 的设备形成对等关系。还必须包括 cluster 语句和群集标识符。群集标识符可以是任何 32 位值。此示例使用路由反射器的环路接口 IP 地址。

在设备 B 和设备 C(路由反射器客户端)上,只需要一个 neighbor 与路由反射器(设备 A)形成对等关系的语句。

在设备 D 和设备 E 上,即非客户端,您需要为每个非客户端设备(D 到 E 和 E-to-D)提供语 neighbor 句。您还需要路由 neighbor 反射器(D-to-A 和 E-to-A)的语句。设备 D 和设备 E 不需要 neighbor 客户端设备(设备 B 和设备 C)的语句。

提示:

设备 D 和设备 E 被视为非客户端,因为它们彼此之间已显式配置对等关系。要使它们成为 RRroute 反射器客户端,请从设备 D 上的配置中移除该 neighbor 192.168.5.5 语句,然后从设备 E 上的配置中移除该 neighbor 192.168.0.1 语句。

图 4:使用路由反射器的 Network topology showing BGP Route Reflector setup in AS 17. Route Reflector 192.168.6.5 connects to client routers 192.168.5.5, 192.168.0.1, 192.163.6.4, and 192.168.40.4. IBGP 网络

配置

过程

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层次结构级别的 [edit] CLI 中。

注意:

此示例使用导出策略将 send-ospf OSPF 获知的路由重新分配到 BGP 中:

路由反射器操作通常不需要将 OSPF 重新分配给 BGP。此处仅用于创建路由反射器可以向其客户端通告的 BGP 路由,以便观察路由反射在简单的实验室拓扑中的行为方式。

在生产部署中,路由反射器通常会反映从客户端获知的 BGP 路由,除非特别需要此行为,否则不会将 IGP 路由重新分发到 BGP 中。

在此示例中,路由器 A、D 和 E 是非客户端 IBGP 对等方,配置在全网状中,以确保路由反射器客户端群集外部的路由交换一致。

设备 A

设备 B

设备 C

设备 D

设备 E

分步程序

配置路由反射器

分步程序

下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

要在使用瞻博网络设备 A 作为路由反射器的网络中配置 IBGP:

  1. 配置接口。

  2. 配置 BGP,包括群集标识符以及与自治系统 (AS) 中所有启用 IBGP 的设备的邻居关系。

    还要应用将 OSPF 路由重新分配给 BGP 的策略。

  3. 配置静态路由或内部网关协议 (IGP)。

    此示例使用 OSPF。

  4. 配置将 OSPF 路由重新分配给 BGP 的策略。

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

结果

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

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

注意:

如果其他非客户端设备来自瞻博网络,则对要配置的群集中的每个非客户端 BGP 对等体重复这些步骤。否则,请参阅设备的文档以获取说明。

配置客户端对等方

分步程序

下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

要配置客户端对等方:

  1. 配置接口。

  2. 配置与路由反射器的 BGP 邻接方关系。

    还要应用将 OSPF 路由重新分配给 BGP 的策略。

  3. 配置 OSPF。

  4. 配置将 OSPF 路由重新分配给 BGP 的策略。

  5. 配置路由器 ID 和 AS 编号。

结果

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

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

注意:

如果其他客户端设备来自瞻博网络,则对正在配置的群集中的每个客户端 BGP 对等体重复这些步骤。否则,请参阅设备的文档以获取说明。

配置非客户端对等方

分步程序

下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

要配置非客户端对等方:

  1. 配置接口。

  2. 配置与 RRroute 反射器以及与其他非客户端对等方的 BGP 邻接方关系。

    还要应用将 OSPF 路由重新分配给 BGP 的策略。

  3. 配置 OSPF。

  4. 配置将 OSPF 路由重新分配给 BGP 的策略。

  5. 配置路由器 ID 和 AS 编号。

结果

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

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

注意:

如果其他非客户端设备来自瞻博网络,则对正在配置的群集中的每个非客户端 BGP 对等体重复这些步骤。否则,请参阅设备的文档以获取说明。

验证

确认配置工作正常。

验证 BGP 邻接方

目的

验证 BGP 是否在配置的接口上运行,以及是否为每个邻接方地址建立了 BGP 会话。

行动

在操作模式下,输入命令 show bgp neighbor

验证 BGP 组

目的

验证 BGP 组配置是否正确。

行动

在操作模式下,输入命令 show bgp group

验证 BGP 汇总信息

目的

验证 BGP 配置是否正确。

行动

在操作模式下,输入命令 show bgp summary

验证路由表信息

目的

验证路由表是否包含 IBGP 路由。

行动

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

了解属于两个不同群集的路由反射器

路由反射的目的是在内部 BGP (IBGP) 路由设备未完全网状化时防止环路。为了实现这一点,RR 打破了正常 BGP 操作的规则之一:它们将从内部 BGP 对等体获知的路由重新播发到其他内部 BGP 对等方。

通常,单个 RR 仅是一个群集的成员。例如,假设在分层 RR 设计中,第 2 层 RR 可以是第 1 层 RR 的客户端,但它们不能是彼此的客户端。

但是,当两个 RR 彼此是彼此的客户端,并且路由从一个群集反射到另一个群集时,群集列表中仅包含一个群集 ID。这是因为在这种情况下,在群集列表中有一个群集 ID 足以满足循环预防。

表 1 总结了路由反射器在使用群集 ID 填充反射路由的群集列表时使用的规则。

表 1:路由反射器规则

路由反射方案

配置

将从其中一个客户端的路由反射到非客户端路由器时

客户端 -> RR -> 非客户端

RR 在反射路由的群集列表中填充与该客户端关联的群集 ID。

将从非客户端路由器的路由反射到客户端路由器时

非客户端 -> RR ->客户端

RR 在反射路由的群集列表中填充与该客户端关联的群集 ID。

将从客户端路由器的路由反射到不同群集中的另一个客户端路由器时

client1 -> RR -> client2(不同群集)

RR 在将 群集 ID 反映给 client2 之前,先填写群集列表中与 client1 关联的群集 ID。未添加与客户端 2 关联的群集 ID。

将路由从客户端路由器反射到位于不同自治系统中的非客户端路由器时。

例如,如果配置了第 2 层 RR 和 2 个 BGP 组(一个用于 RR 客户端,另一个用于第 1 层 RR),并且要反映从一个自治系统到另一个自治系统的路由。

客户端 -> RR -> 非客户端(不同AS)

在将路由反映到非客户端设备之前,RR 不会使用群集 ID 填充群集列表,因为群集 ID 特定于一个自治系统。

示例:配置属于两个不同集群的路由反射器

此示例说明如何配置属于两个不同群集的路由反射器 (RR)。这不是一个常见的情况,但在某些情况下可能很有用。

要求

配置设备接口和内部网关协议 (IGP)。有关包含接口和 IGP 配置的 RR 设置示例,请参阅 示例:配置路由反射器

概述

在此示例中,设备 RR1 是设备 R3 和设备 RR2 的路由反射器。路由反射器 RR1 分配了两个不同的群集 ID,一个是 RR1-R3 的 10.13.1.3,RR1-RR2 的 10.12.1.2。

设备 RR2 是设备 R4 的路由反射器。

考虑图 5

图 5:两个不同群集中 Network topology diagram with routers: R0 Non-client 192.168.16.1, RR1 192.168.20.1, RR2 192.168.40.1, R3 Client 192.168.48.1, R4 Client 192.168.32.1. R0 connects to RR1, RR1 connects to RR2 and R3, RR2 connects to R4.的路由反射器

此示例显示了设备 RR1 和设备 RR2 上的 BGP 配置。

配置

先决条件

在多个群集中配置 BGP 路由反射器之前,请确保所有 BGP 对等方之间存在 IP 可达性。在此示例中,内部网关协议 (IGP)(例如 OSPF 或 IS-IS)提供用于 IBGP 会话的环路接口之间的可达性。假定接口和 IGP 配置已就位,此处未显示。

过程

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层次结构级别的 [edit] CLI 中。

设备 RR1

设备 RR2

配置设备 RR1

分步程序

下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

要配置设备 RR1:

  1. 配置与设备 R3 的对等关系。

  2. 配置与设备 R0 的对等关系。

  3. 配置与设备 RR2 的对等关系。

结果

在配置模式下,输入 show protocols 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

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

配置设备 RR2

分步程序

下面的示例要求您在各个配置层级中进行导航。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

要配置设备 RR2:

  1. 配置与设备 R4 的对等关系。

  2. 配置与设备 RR1 的对等关系。

结果

在配置模式下,输入 show protocols 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

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

验证

确认配置工作正常。

检查为路由 10.3.3.3 播发的群集 ID

目的

验证 BGP 是否在配置的接口上运行,以及是否为每个邻接方地址建立了 BGP 会话。

行动

在操作模式下,输入命令 show route advertising-protocol bgp neighbor-address

意义

10.3.3.3/32 路由源自设备 RR1 的客户端对等方设备 R3。当此路由发送到 RR1 的客户端设备 RR2 时,路由附加了 10.13.1.3 群集 ID,即 RR1-R3 的群集 ID。

检查为路由 10.1.0.1 播发的群集 ID

目的

检查从设备 RR1 到设备 RR2 的路由播发。

行动

在操作模式下,输入命令 show route advertising-protocol bgp neighbor-address

意义

10.1.0.1/32 路由源自设备 RR1 的非客户端对等方设备 R0。将此路由发送至 RR1 的客户端设备 RR2 时,路由附加了 10.12.1.2 群集 ID,即 RR1-RR2 的群集 ID。

当向不同群集中的另一个客户端(设备 R4)播发时,设备 RR1 会保留设备 RR2 的入站群集 ID。

AS 边界路由器上的路由反射

在大多数部署中,BGP 路由反射器专门作为内部 BGP (IBGP) 路由器运行。但是,在某些网络设计中,路由反射器也可以充当自治系统边界路由器 (ASBR) 并维护外部 BGP (EBGP) 对等会话。

当 Junos OS 路由器同时执行这两个角色并从 EBGP 对等方接收路由时,如果路由器使用该 cluster 选项将路由播发至配置为路由反射器客户端的 IBGP 对等方,则需要特别注意事项。在这种情况下,Junos OS 在将路由反映到 IBGP 客户端时附加ORIGINATOR_ID和CLUSTER_LIST路径属性。

RFC 4456 定义了 BGP 路由反射,但对于通过 EBGP 获知并随后通过双角色 ASBR 和路由反射器反射到 IBGP 客户端的路由,其预期行为并未明确指定。在此场景中,Junos OS 会一致地应用路由反射属性,以防止路由环路,并在自治系统中保留确定性路径选择。

在 AS 边界路由器上部署路由反射时,请仔细考虑路由策略、路径选择和故障场景,以确保反射路由不会引入意外路由行为。

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。

发布
描述
15.1
从 Junos OS 15.1 版开始,该 no-install 语句消除了路由协议守护程序 (rpd) 与 Junos 系统中其他组件(如内核或分布式防火墙守护程序 (DFWD))之间的交互。
15.1
在 Junos OS 15.1 版之前的版本中,您可以通过使用拒绝从 BGP 获知的路由的转发表导出策略来减少不在流量转发路径中的路由反射器上的工作负载。