本页内容
 

示例:配置路由策略以向内部对等方播发最佳外部路由

RFC 1771 中定义的 BGP 协议规范规定,BGP 对等体应向其内部对等方通告优先级更高的外部路径,即使该路径不是整体最佳路径(换句话说,即使最佳路径是内部路径)。实际上,部署的 BGP 实现不遵循此规则。偏离规范的原因如下:

  • 最大限度地减少广告信息量。BGP 根据可用路径的数量进行扩展。

  • 避免路由和转发环路。

但是,在几种情况下,RFC 1771 中指定的播发最佳外部路由的行为可能是有益的。限制路径信息并不总是可取的,因为路径分集可能有助于缩短还原时间。播发最佳外部路径还可以解决内部 BGP (IBGP) 路由振荡问题,如 RFC 3345, 边界网关协议 (BGP) 持久路由振荡条件中所述。

该 advertise-external 语句会修改 BGP 发言者的行为,以向 IBGP 对等方播发最佳外部路径,即使最佳整体路径是内部路径也是如此。

注意:

组级别和邻接方级别都支持该 advertise-external 语句。如果在邻接方级别配置该语句,则必须为组中的所有邻接方配置该语句。否则,该组会自动拆分为不同的组。

该 conditional 选项可限制设置 advertise-external 的行为,以便仅当路由选择过程达到评估多出口点识别器 (MED) 指标的点时,才会通告外部路由。因此,如果外部路由的 AS 路径比活动路径更差(更长),则不会对其进行播发。该 conditional 选项将外部路径播发限制为最佳外部路径和活动路径相等时,直到路由选择过程的 MED 步骤为止。请注意,无论是否配置了该 conditional 选项,用于选择最佳外部路径的标准都是相同的。

Junos OS 还支持配置与播发路由状态匹配的 BGP 导出策略。您可以匹配活动或非活动路由,如下所示:

仅当在导出策略的上下文中使用时,此限定符才匹配。当路由由可播发非活动路由(如 BGP)的协议播发时,state inactive匹配由于 and advertise-external 语句而advertise-inactive播发的路由。

例如,以下配置可用作针对内部对等方的 BGP 导出策略,以标记由于 advertise-external 使用用户定义社区的设置而播发的路由。接收路由器稍后可以使用该社区从转发表中过滤掉此类路由。此类机制可用于解决发送方未用于转发的播发路径可能导致转发环路的担忧。

要求

需要 Junos OS 9.3 或更高版本。

概述

此示例显示三个路由设备。设备 R2 与设备 R1 具有外部 BGP (EBGP) 连接。设备 R2 与设备 R3 具有 IBGP 连接。

设备 R1 播发 172.16.6.0/24。设备 R2 未在导入策略中为设备 R1 的路由设置本地优先级,因此 172.16.6.0/24 的默认本地优先级为 100。

设备 R3 播发 172.16.6.0/24,本地优先级为 200。

如果设备 R2 上未配置该 advertise-external 语句,则设备 R2 不会向设备 R3 播发 172.16.6.0/24。

在针对设备 R3 的会话上在设备 R2 上配置该 advertise-external 语句后,设备 R2 将向设备 R3 播发 172.16.6.0/24。

当在设备 R2 上针对设备 R3 的会话上配置 172.16.6.0/24 时 advertise-external conditional ,设备 R2 不会向设备 R3 播发 172.16.6.0/24。如果移除 then local-preference 200 设备 R3 上的设置并在设备 R2 上添加设置 path-selection as-path-ignore (从而使路径选择标准相等,直到路由选择过程的 MED 步骤),设备 R2 将向设备 R3 播发 172.16.6.0/24。

注意:

要在路由反射器上配置该 advertise-external 语句,您必须使用该 no-client-reflect 语句禁用群集内反射,并且客户端群集必须完全网状化,以防止发送冗余路由播发。

将路由设备配置为群集的路由反射器后,如果路由反射器播发的路由是从具有相同群集标识符的内部对等方接收的,或者两个对等方均未配置群集标识符,则路由反射器播发的路由被视为群集标识符。从属于另一个群集的内部对等方(即使用不同的群集标识符)接收的路由被视为外部路由。

拓扑结构

图 1 显示了示例网络。

图 1:用于外部广告 BGP Topology for advertise-external的 BGP 拓扑

CLI 快速配置 显示了图 1 中所有设备的配置。

#configuration148__policy-advertise-external-st 部分介绍了设备 R2 上的步骤。

配置

CLI 快速配置

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

设备 R1

设备 R2

设备 R3

过程

分步程序

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

要配置设备 R2:

  1. 配置设备接口。

  2. 配置 OSPF 或其他内部网关协议 (IGP)。

  3. 配置到设备 R1 的 EBGP 连接。

  4. 配置到设备 R3 的 IBGP 连接。

  5. 将该 advertise-external 语句添加到 IBGP 组对等会话。

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

结果

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

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

验证

确认配置工作正常。

验证 BGP 活动路径

目的

在设备 R2 上,确保 172.16.6.0/24 前缀位于路由表中,并具有预期的活动路径。

行动

意义

设备 R2 接收来自设备 R1 和设备 R3 的 172.16.6.0/24 路由。来自设备 R3 的路由是活动路径,由星号 (*) 指定。活动路径具有最高的本地优先级。即使两个路由的本地优先级相等,来自设备 R3 的路由仍将保持活动状态,因为它具有最短的 AS 路径。

验证外部路由通告

目的

在设备 R2 上,确保已向设备 R3 播发 172.16.6.0/24 路由。

行动

意义

设备 R2 正在向设备 R3 播发 172.16.6.0/24 路由。

验证设备 R3 上的路由

目的

确保 172.16.6.0/24 前缀位于设备 R3 的路由表中。

行动

意义

设备 R3 具有 172.16.6.0/24 的静态路由和 BGP 路由。

请注意,如果路由无法访问或下一跃点无法解析,则设备 R3 上将隐藏 BGP 路由。为了满足此要求,此示例在设备 R3 ()static route 0.0.0.0/0 next-hop 10.0.0.5 上包含静态默认路由。

试验条件选项

目的

查看该 conditional 选项在 BGP 路径选择算法环境中的工作原理。

行动

  1. 在设备 R2 上,添加该 conditional 选项。

  2. 在设备 R2 上,检查是否向设备 R3 播发了 172.16.6.0/24 路由。

    正如预期一样,不再对路由进行播发。您可能需要等待几秒钟才能看到此结果。

  3. 在设备 R3 上,停用策略 then local-preference 操作。

  4. 在设备 R2 上,确保两个路径的本地优先级相等。

  5. 在设备 R2 上,添加语 as-path-ignore 句。

  6. 在设备 R2 上,检查是否向设备 R3 播发了 172.16.6.0/24 路由。

    正如预期一样,路由现已播发,因为 AS 路径长度被忽略,并且本地优先级相等。