MPLS 流量工程配置
MPLS 和流量工程
流量工程允许您控制数据包所遵循的路径,绕过使用路由表的标准路由模型。流量工程将流量从拥塞链路移动到自动计算的基于目标的最短路径不会选择的备用链路。借助流量工程,您可以:
更有效地利用昂贵的远距离光纤。
控制在发生单个或多个故障时如何重新路由流量。
按路径对关键流量和常规流量进行分类。
流量工程设计的核心是基于在路由器之间构建标签交换路径 (LSP)。LSP 是面向连接的,类似于帧中继或 ATM 中的虚拟电路。LSP 并不可靠:进入 LSP 的数据包没有传递保证,但可以享受优惠待遇。LSP 也类似于单向隧道,因为进入路径的数据包被封装在一个信封中,并在整个路径上进行交换,而不会被中间节点触及。LSP 提供对数据包在网络中转发方式的精细控制。为了提供可靠性,LSP 可以使用一组主路径和辅助路径。
只能为 BGP 流量(其目标在自治系统 (AS) 之外的流量)配置 LSP。在这种情况下,AS 中的流量不受 LSP 存在的影响。也可以为 BGP 和内部网关协议 (IGP) 流量配置 LSP;因此,AS 内部和 AS 间流量都受 LSP 影响。
MPLS 流量工程和信令协议概述
流量工程有助于实现高效可靠的网络运维,同时优化网络资源和流量性能。流量工程提供了将流量从内部网关协议 (IGP) 选择的最短路径移动到网络中可能不太拥塞的物理路径的能力。为了支持流量工程,除了源路由之外,网络还必须执行以下操作:
通过考虑所有约束(如带宽和管理要求)在源位置计算路径。
计算路径后,在整个网络中分发有关网络拓扑和链路属性的信息。
预留网络资源并修改链路属性。
当传输流量通过 IP 网络路由时,MPLS 通常用于设计其通道。尽管通过传输网络的确切路径对于流量的发送方或接收方都无关紧要,但网络管理员通常希望在某些源地址和目标地址对之间更有效地路由流量。通过向每个数据包添加带有特定路由指令的短标签,MPLS 通过网络将数据包从一个路由器切换到另一个路由器,而不是基于下一跃点查找转发数据包。生成的路由称为标签交换路径 (LSP)。LSP 控制流量通过网络的通道并加快流量转发速度。
您可以手动创建 LSP,也可以通过使用信令协议创建 LSP。信令协议在 MPLS 环境中用于为通过传输网络的流量建立 LSP。Junos OS 支持两种信令协议 - LDP 和资源预留协议 (RSVP)。
MPLS 信息流工程使用以下组件:
用于数据包转发的 MPLS LSP
IGP 扩展,用于分发有关网络拓扑和链路属性的信息
用于路径计算和路径选择的约束最短路径优先 (CSPF)
RSVP 扩展,用于建立沿路径的转发状态并沿路径保留资源
Junos OS 还支持跨不同 OSPF 区域的流量工程。
流量工程能力
将流量映射到现有物理拓扑的任务称为 流量工程。流量工程提供了将流量从内部网关协议 (IGP) 选择的最短路径转移到网络中可能不太拥塞的物理路径的能力。
流量工程提供执行以下操作的功能:
绕过网络中已知瓶颈或拥塞点路由主路径。
精确控制当主路径面临单个或多个故障时如何重新路由流量。
通过确保网络的子集不会被过度利用,而沿潜在备用路径的其他网络子集未得到充分利用,从而更有效地利用可用聚合带宽和长距离光纤。
最大限度提高运营效率。
通过最大限度地减少数据包丢失、最大限度地减少长时间的拥塞和最大化吞吐量,增强网络面向流量的性能特征。
增强支持多服务 Internet 所需的网络统计绑定性能特征(如损耗率、延迟变化和传输延迟)。
为 LSP 配置流量工程
配置 LSP 时,将在入口路由器中安装朝向出口路由器的主机路由(32 位掩码);主机路由的地址是 LSP 的目标地址。bgp
默认情况下,层次结构级别的语句[edit protocols mpls]
选项traffic engineering
处于启用状态(您也可以显式配置该bgp
选项),仅允许 BGP 在其路由计算中使用 LSP。其他 traffic-engineering
语句选项允许您在主路由实例中更改此行为。此功能不适用于特定路由实例。此外,一次只能启用其中一个 traffic-engineering
语句选项(bgp
、 bgp-igp
、 bgp-igp-both-ribs
或 mpls-forwarding
)。
启用或禁用任何 traffic-engineering
语句选项会导致删除所有 MPLS 路由,然后将其重新插入路由表中。
您可以配置 OSPF 和信息流工程,以在汇总链路状态通告 (LSA) 中通告 LSP 指标,如一节 在摘要 LSA 中通告 LSP 指标中所述。
以下部分介绍如何为 LSP 配置流量工程:
使用 LSP 进行 BGP 和 IGP 流量转发
您可以通过添加 bgp-igp
语句选项 traffic-engineering
,将 BGP 和 IGP 配置为使用 LSP 转发发往出口路由器的流量。该 bgp-igp
选项会将所有 inet.3 路由移动到 inet.0 路由表。
在入口路由器上,包含 bgp-igp
语句的选项 traffic-engineering
:
traffic-engineering bgp-igp;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
注:bgp-igp
不能为 VPN 配置语句的选项traffic-engineering
)。VPN 要求路由位于 inet.3 路由表中。
在虚拟专用网络中使用 LSP 进行转发
VPN 要求路由保留在 inet.3 路由表中才能正常运行。对于 VPN,请配置 bgp-igp-both-ribs
语句的选项 traffic-engineering
以使 BGP 和 IGP 使用 LSP 转发发往出口路由器的流量。该 bgp-igp-both-ribs
选项在 inet.0 路由表(对于 IPv4 单播路由)和 inet.3 路由表(对于 MPLS 路径信息)中安装入口路由。
在入口路由器上,包括以下 traffic-engineering bgp-igp-both-ribs
语句:
traffic-engineering bgp-igp-both-ribs;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
使用该 bgp-igp-both-ribs
语句时,来自 inet.3 表的路由将复制到 inet.0 表中。复制的路由是 LDP 信号或 RSVP 信号,并且优先级可能低于 inet.0 中的其他路由。优先级较差的路由更有可能被选为活动路由。这可能是一个问题,因为路由策略仅作用于活动路由。若要防止此问题,请改用 mpls-forwarding
该选项。
选择具有数值最低偏好值的 LSP 作为首选路由。
例如:
user@host# show protocols mpls label-switched-path lsp1 { to 192.168.4.4; preference 1000; } label-switched-path lsp2 { to 192.168.4.4; preference 1001; } user@host# run show route table inet.3 inet.3: 2 destinations, 3 routes (2 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.168.4.4/32 *[RSVP/1000/1] 00:17:23, metric 30 > to 192.168.2.18 via ge-0/0/1.0, label-switched-path lsp1 to 192.168.5.5 via ge-0/0/2.0, label-switched-path Bypass->192.168.2.18->192.168.3.3 [RSVP/1001/1] 00:17:23, metric 30 > to 192.168.2.18 via ge-0/0/1.0, label-switched-path lsp2 to 192.168.5.5 via ge-0/0/2.0, label-switched-path Bypass->192.168.2.18->192.168.3.3
优先级值为 1000 的 LSP 更胜一筹,因此优先于优先级值为 1001 的 LSP。
使用 RSVP 和 LDP 路由进行转发,但不进行路由选择
如果为语句配置 bgp-igp
traffic-engineering
or bgp-igp-both-ribs
选项,则高优先级 LSP 可以取代 inet.0 路由表中的 IGP 路由。IGP 路由可能不再重新分发,因为它们不再是活动路由。
如果为语句配置traffic-engineering
选项mpls-forwarding
,LSP 将用于转发,但从路由选择中排除。这些路由将同时添加到 inet.0 和 inet.3 路由表中。选择活动路由时,inet.0 路由表中的 LSP 优先级 较低 。但是,inet.3 路由表中的 LSP 具有正常的优先级,因此用于选择转发下一跃点。
激活该mpls-forwarding
选项时,状态为ForwardingOnly
首选的路由作为转发,即使其优先级低于当前活动路由的优先级。要检查路由的状态,请执行 show route detail
命令。
要使用 LSP 进行转发,但从路由选择中排除它们,请包含 mpls-forwarding
以下语句的选项 traffic-engineering
:
traffic-engineering mpls-forwarding;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
配置该 mpls-forwarding
选项时,IGP 快捷方式路由仅复制到 inet.0 路由表。
bgp-igp-both-ribs
与选项不同,该mpls-forwarding
选项允许您使用 LDP 信号和 RSVP 信号路由进行转发,并使 BGP 和 IGP 路由保持活动状态以进行路由,以便路由策略可以对其执行操作。
例如,假设路由器正在运行 BGP,并且它的 BGP 路由为 10.10.10.1/32,需要将其发送到另一个 BGP 扬声器。如果您使用该 bgp-igp-both-ribs
选项,并且您的路由器也有到 10.10.10.1 的标签交换路径 (LSP),则 10.10.10.1 的 MPLS 路由将在 inet.0 路由表中变为活动状态。这可以防止路由器将 10.10.10.1 路由播发到其他 BGP 路由器。另一方面,如果使用 mpls-forwarding
选项而不是 bgp-igp-both-ribs
选项,则 10.10.10.1/32 BGP 路由将播发至其他 BGP 发言人,并且 LSP 仍用于将流量转发到 10.10.10.1 目标。
在摘要 LSA 中通告 LSP 指标
您可以将 MPLS 和 OSPF 配置为将 LSP 视为链路。此配置允许网络中的其他路由器使用此 LSP。要实现此目标,您需要配置 MPLS 和 OSPF 流量工程,以便在汇总 LSA 中通告 LSP 指标。
对于 MPLS,请包含 traffic-engineering bgp-igp
和 label-switched-path
语句:
traffic-engineering bgp-igp; label-switched-path lsp-name { to address; }
您可以在以下层次结构级别包含这些语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
对于 OSPF,请包含以下 lsp-metric-into-summary
语句:
lsp-metric-into-summary;
您可以在以下层次结构级别包含此语句:
[edit protocols ospf traffic-engineering shortcuts]
[edit logical-systems logical-system-name protocols ospf traffic-engineering shortcuts]
有关 OSPF 信息流工程的详细信息,请参阅 适用于路由设备的 Junos OS 路由协议库。
启用区域间流量工程
Junos OS 可以跨多个 OSPF 区域发出连续的流量工程 LSP 信号。LSP 信令必须使用嵌套或连续信令来完成,如 RFC 4206, 具有通用多协议标签交换 (GMPLS) 流量工程 (TE) 的标签交换路径 (LSP) 层次结构中所述。但是,连续信令支持仅限于基本信令。连续信令不支持再优化。
下面介绍了一些区域间流量工程功能:
当使用 CSPF 在入口路由器上配置松散跳跃区域边界路由器 (ABR) 以在 OSPF 区域内进行显式路由对象 (ERO) 计算时,可以启用区域间流量工程。ERO 扩展在 ABR 上完成。
启用 CSPF 后,可以启用区域间流量工程,但不在入口路由器上的 LSP 配置中指定 ABR(可以自动指定 ABR)。
只要类类型映射跨多个区域是统一的,就支持差异服务 (DiffServ) 流量工程。
要启用区域间流量工程,请在每个 LSP 传输路由器的配置中包含以下 expand-loose-hop
语句:
expand-loose-hop;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
为 LSP 启用 AS 间流量工程
通常,满足以下条件的 LSP 可以进行流量工程:
LSP 的两端位于同一 OSPF 区域或同一 IS-IS 级别。
LSP 的两端位于同一自治系统 (AS) 内的不同 OSPF 区域中。不支持以不同 IS-IS 级别结尾的 LSP。
显式路径 LSP 的两端位于不同的 OSPF AS 中,自治系统边界路由器 (ASBR) 静态配置为显式路径 LSP 上支持的松散跃点。有关更多信息,请参阅 配置显式路径 LSP。
如果 LSP 上没有静态定义的 ASBR,则无法在一个路由域或 AS 与另一个路由域之间进行流量工程。但是,当 AS 处于单个服务提供商的控制之下时,在某些情况量工程 LSP 可能会跨越 AS 并动态发现链接它们的 OSPF ASBR(此功能不支持 IS-IS)。
只要满足特定网络要求、不适用任何限制条件,并且 OSPF 被动模式配置了 EBGP,就可以进行 AS 间流量工程 LSP。以下各节提供了详细信息:
AS 间流量工程要求
AS 间流量工程 LSP 的正确建立和运行取决于以下网络要求,必须满足所有这些要求:
所有 AS 都在单个服务提供商的控制之下。
OSPF 用作每个 AS 内的路由协议,EBGP 用作 AS 之间的路由协议。
ASBR 信息在每个 AS 中都可用。
EBGP 路由信息由 OSPF 分发,每个 AS 内都部署了 IBGP 全网状网络。
传输 LSP 不是 在 AS 间链路上配置的 ,而是在每个 AS 上的入口点和出口点 ASBR 之间配置的。
不同 AS 中的 ASBR 之间的 EBGP 链路是直接链路,必须配置为 OSPF 下的被动流量工程链路。远程链路地址本身(而非环路或任何其他链路地址)用作此被动链路的远程节点标识符。有关 OSPF 被动信息流工程模式配置的详细信息,请参见 配置 OSPF 被动 TE 模式。
此外,用于 OSPF 被动流量工程链路远程节点的地址必须与用于 EBGP 链路的地址相同。有关 OSPF 和 BGP 的一般信息,请参阅 适用于路由设备的 Junos OS 路由协议库。
AS 间流量工程限制
AS 间流量工程 LSP 仅支持 LSP 分层或嵌套信令。仅支持点对点 LSP(不支持点对多点)。
此外,还存在以下限制。即使满足上述要求,这些条件中的任何一个都足以使 AS 间流量工程 LSP 无法运行。
不支持使用多跃点 BGP。
不支持使用防止 BGP 路由在 AS 内部已知的监管器或拓扑。
不支持 EBGP 对等方之间的 LAN 上有多个 ASBR。仅支持 EBGP 对等方之间的 LAN 上有一个 ASBR(LAN 上可以存在其他 ASBR,但不能播发)。
不支持隐藏 ASBR 信息或阻止 ASBR 信息在 AS 内分发的路由反射器或策略。
不支持双向 LSP(从流量工程的角度来看,LSP 是单向的)。
不支持同时具有指向同一目标的 AS 间和 AS 内路径的拓扑。
此外,AS 间流量工程不支持所有 LSP 的常规功能:
不支持管理员组链接颜色。
不支持辅助备用。
不支持重新优化。
不支持转发路由器上的曲柄。
不支持多路径计算。
不支持正常重启。
这些 AS 间流量工程 LSP 的限制或不受支持的功能列表并不详尽。
配置 OSPF 被动 TE 模式
通常,内部路由协议(如 OSPF)不会在 AS 之间的链路上运行。但是,要使 AS 间流量工程正常运行,必须在 AS 内部提供有关 AS 间链路的信息,特别是远程接口上的地址。此信息通常不包含在 EBGP 可访问性消息或 OSPF 路由通告中。
要在 AS 中泛洪此链路地址信息并使其可用于流量工程计算,您必须在每个 AS 间接口上为流量工程配置 OSPF 被动模式。您还必须提供远程地址,以便 OSPF 分发并包含在信息流工程数据库中。
要在 AS 间接口上为流量工程配置 OSPF 被动模式,请在层次结构级别包含 passive
链路 [edit protocols ospf area area-id interface interface-name]
语句:
passive { traffic-engineering { remote-node-id ip-address; /* IP address at far end of inter-AS link */ } }
必须在路由器上正确配置 OSPF。以下示例将 AS 间链路 so-1/1/0
配置为使用 AS 内的 OSPF 分发信息流工程信息。远程 IP 地址为 192.168.207.2
。
[edit protocols ospf area 0.0.0.0] interface so-1/1/0 { unit 0 { passive { traffic-engineering { remote-node-id 192.168.207.2; } } } }
数据包转发组件
Junos 信息流工程架构的数据包转发组件是 MPLS,它负责引导 IP 数据包流沿网络上的预定路径。此路径称为标签交换路径 (LSP)。LSP 是单工的;也就是说,流量沿一个方向从前端(入口)路由器流向尾端(出口)路由器。双工流量需要两个 LSP:一个 LSP 用于在每个方向上传输流量。LSP 由一个或多个标签交换跃点串联而成,允许数据包在 MPLS 域中从一个路由器转发到另一个路由器。
当入口路由器收到 IP 数据包时,它会将 MPLS 标头添加到数据包中,并将其转发到 LSP 中的下一个路由器。标记的数据包由每个路由器沿 LSP 转发,直到到达 LSP 的尾端(出口路由器)。此时,将移除 MPLS 报头,并根据 IP 目标地址等第 3 层信息转发数据包。此方案的价值在于,LSP 的物理路径不限于 IGP 选择的到达目标 IP 地址的最短路径。
基于标签交换的数据包转发
每个路由器上的数据包转发过程都基于标签交换的概念。此概念类似于永久虚拟电路 (PVC) 中每个异步传输模式 (ATM) 交换机上发生的情况。每个 MPLS 数据包都有一个 4 字节封装标头,其中包含一个 20 位固定长度的标签字段。当包含标签的数据包到达路由器时,路由器会检查标签并将其作为索引复制到其 MPLS 转发表。转发表中的每个条目都包含一个接口入站标签对,该标签对映射到一组转发信息,这些信息应用于到达具有相同入站标签的特定接口的所有数据包。
数据包如何遍历 MPLS 主干网
本节介绍 IP 数据包在遍历 MPLS 骨干网络时的处理方式。
在 MPLS 主干网的入口边缘,IP 报头由入口路由器检查。根据此分析,对数据包进行分类、分配标签、封装在 MPLS 标头中,然后转发到 LSP 中的下一跃点。MPLS 在将 IP 数据包分配给 LSP 的方式上提供了高度的灵活性。例如,在 Junos 流量工程实施中,到达入口路由器且注定要通过同一出口路由器退出 MPLS 域的所有数据包都将沿同一 LSP 转发。
数据包开始遍历 LSP 后,每个路由器都使用该标签做出转发决策。MPLS 转发决策独立于原始 IP 报头:传入接口和标签用作 MPLS 转发表中的查找密钥。旧标签将替换为新标签,数据包将转发到 LSP 上的下一跃点。在 LSP 中的每个路由器上重复此过程,直到数据包到达出口路由器。
当数据包到达出口路由器时,标签将被删除,数据包将退出 MPLS 域。然后,根据 IP 路由协议计算的传统最短路径,根据数据包原始 IP 报头中包含的目标 IP 地址转发数据包。
信息分发组件
流量工程需要详细了解网络拓扑以及有关网络负载的动态信息。为了实现信息分发组件,定义了对 IGP 的简单扩展。链路属性作为每个路由器链路状态通告的一部分包含在内。IS-IS 扩展包括新类型长度值 (TLV) 的定义,而 OSPF 扩展则使用不透明链路状态通告 (LSA) 实现。链路状态 IGP 使用的标准泛洪算法可确保将链路属性分发到路由域中的所有路由器。要添加到 IGP 链路状态通告的一些信息流工程扩展包括最大链路带宽、最大保留链路带宽、当前带宽预留和链路着色。
每个路由器都在专用流量工程数据库中维护网络链路属性和拓扑信息。信息流工程数据库专门用于计算在物理拓扑中放置 LSP 的显式路径。维护一个单独的数据库,以便后续的信息流工程计算独立于 IGP 和 IGP 的链路状态数据库。同时,IGP 无需修改即可继续运行,根据路由器链路状态数据库中包含的信息执行传统的最短路径计算。
路径选择组件
在 IGP 泛洪网络链路属性和拓扑信息并将其放置在流量工程数据库中后,每个入口路由器都使用流量工程数据库来计算其自己的一组 LSP 跨路由域的路径。每个 LSP 的路径可以由严格或松散显式路由表示。显式路由是预配置的路由器序列,应是 LSP 物理路径的一部分。如果入口路由器指定了 LSP 中的所有路由器,则称 LSP 由严格的显式路由标识。如果入口路由器仅指定 LSP 中的某些路由器,则 LSP 被描述为松散显式路由。对严格和松散显式路由的支持允许尽可能为路径选择过程提供广泛的自由度,但在必要时进行约束。
入口路由器通过将约束最短路径优先 (CSPF) 算法应用于流量工程数据库中的信息来确定每个 LSP 的物理路径。CSPF 是一种最短路径优先算法,经过修改后,可在计算网络中的最短路径时考虑特定限制。CSPF 算法的输入包括:
从 IGP 获知并在信息流工程数据库中维护的拓扑链路状态信息
与 IGP 扩展携带并存储在流量工程数据库中的网络资源状态(如总链路带宽、保留链路带宽、可用链路带宽和链路颜色)关联的属性
支持通过用户配置获取的建议 LSP 的流量所需的管理属性(例如带宽要求、最大跃点数和管理策略要求)
当 CSPF 考虑新 LSP 的每个候选节点和链路时,它会根据资源可用性或选择组件是否违反用户策略约束来接受或拒绝特定路径组件。CSPF 计算的输出是由一系列路由器地址组成的显式路由,该地址提供通过满足约束的网络的最短路径。然后将此显式路由传递到信令组件,该组件在沿 LSP 的路由器中建立转发状态。
信令组件
在信令组件实际建立LSP之前,不知道它是否可行。负责建立 LSP 状态和分发标签的信令组件依赖于 RSVP 的许多扩展:
显式路由对象允许 RSVP 路径消息遍历独立于传统最短路径 IP 路由的显式路由器序列。显式路由可以是严格路由,也可以是松散路由。
标签请求对象允许 RSVP 路径消息请求中间路由器为其正在建立的 LSP 提供标签绑定。
Label 对象允许 RSVP 支持标签的分发,而无需更改其现有机制。由于 RSVP Resv 消息遵循与 RSVP 路径消息相反的路径,因此 Label 对象支持将标签从下游节点分发到上游节点。
离线路径规划与分析
尽管在线路径计算减少了管理工作量,但仍需要离线规划和分析工具来优化全球流量工程。在线计算考虑了资源限制,一次计算一个 LSP。这种方法的挑战在于它不是确定性的。LSP 的计算顺序在确定每个 LSP 在网络中的物理路径方面起着至关重要的作用。与在流程后期计算的 LSP 相比,在流程早期计算的 LSP 具有更多的可用资源,因为先前计算的 LSP 会消耗网络资源。如果 LSP 的计算顺序发生更改,则生成的 LSP 物理路径集也会更改。
离线规划和分析工具同时检查每个链路的资源约束和每个 LSP 的要求。尽管脱机方法可能需要几个小时才能完成,但它会执行全局计算,比较每个计算的结果,然后为整个网络选择最佳解决方案。离线计算的输出是一组 LSP,用于优化网络资源的利用率。离线计算完成后,可以按任意顺序建立 LSP,因为每个 LSP 都是根据全局优化解决方案的规则安装的。
灵活的 LSP 计算和配置
流量工程涉及将流量映射到物理拓扑。您可以使用基于约束的路由在线确定路径。无论物理路径是如何计算的,转发状态都是通过 RSVP 安装在网络上的。
Junos OS 支持以下方式路由和配置 LSP:
您可以计算 LSP 脱机的完整路径,并使用必要的静态转发状态单独配置 LSP 中的每个路由器。这类似于某些互联网服务提供商 (ISP) 配置其 IP over ATM 核心的方式。
您可以计算 LSP 脱机的完整路径,并使用完整路径静态配置入口路由器。然后,入口路由器使用 RSVP 作为动态信令协议,在沿 LSP 的每个路由器中安装转发状态。
您可以依靠基于约束的路由来执行动态在线 LSP 计算。您可以为每个 LSP 配置约束;然后,网络本身确定最能满足这些约束的路径。具体来说,入口路由器根据约束计算整个 LSP,然后通过网络启动信令。
您可以计算 LSP 脱机的部分路径,并使用路径中的路由器子集静态配置入口路由器;然后,您可以允许在线计算以确定完整路径。
例如,考虑一个包含横跨美国的两条东西向路径的拓扑:一个在北部通过芝加哥,一个在南部通过达拉斯。如果要在纽约的路由器和旧金山的路由器之间建立 LSP,可以将 LSP 的部分路径配置为包含达拉斯路由器的单个松散路由跃点。结果是沿南部路径路由的 LSP。入口路由器使用 CSPF 计算完整路径,使用 RSVP 沿 LSP 安装转发状态。
您可以不受任何限制地配置入口路由器。在这种情况下,将使用正常的 IGP 最短路径路由来确定 LSP 的路径。此配置在流量工程方面不提供任何价值。但是,这很容易,并且在需要虚拟专用网络 (VPN) 等服务的情况下可能很有用。
在所有这些情况下,您可以指定任意数量的 LSP 作为主 LSP 的备份,从而允许您组合多种配置方法。例如,您可以显式脱机计算主路径,将辅助路径设置为基于约束,并使第三路径不受约束。如果路由主 LSP 的电路发生故障,入口路由器会注意到从下游路由器收到的错误通知或 RSVP 软状态信息过期的中断。然后,路由器将流量动态转发到热备用 LSP 或调用 RSVP 为新的备份 LSP 创建转发状态。
使用 BGP 的链路状态分布概述
- 内部网关协议的作用
- 内部网关协议的局限性
- 需要跨越链路状态分布
- 使用 BGP 作为解决方案
- 支持和不支持的功能
- 用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
- 使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点
- 使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI
内部网关协议的作用
内部网关协议 (IGP) 是一种协议类型,用于在自治系统 (AS) 内的设备之间交换路由信息。根据计算到达目标的最佳路径的方法,IGP 分为两类:
链路状态协议 — 使用组播地址和触发的路由更新,向所有路由器播发有关网络拓扑(直接连接的链路和这些链路的状态)的信息,直到运行链路状态协议的所有路由器都具有相同的互连信息。到达目标的最佳路径是根据最大延迟、最小可用带宽和资源类相关性等约束计算的。
OSPF 和 IS-IS 是链路状态协议的示例。
距离矢量协议 — 使用广播地址向直接连接的邻居播发完整的路由表信息。最佳路径是根据到目标网络的跃点数计算的。
RIP 是距离矢量协议的一个示例。
顾名思义,IGP 的作用是在给定路由域内部或内部提供路由连接。路由域是一组受公共管理控制的路由器,它们共享一个公共路由协议。AS 可以由多个路由域组成,其中 IGP 功能从相邻路由器通告和学习网络前缀(路由),以构建路由表,该路由表最终包含所有源的条目,通告给定前缀的可访问性。IGP 执行路由选择算法以选择本地路由器与每个目标之间的最佳路径,并在构成路由域的路由器之间提供完全连接。
除了播发内部网络可访问性之外,IGP 还经常用于通过称为路由重新分发的过程通告该 IGP 路由域外部的路由信息。路由重新分配是在不同的路由协议之间交换路由信息的过程,以便在需要 AS 内部连接时,将多个路由域连接在一起。
内部网关协议的局限性
虽然每个单独的 IGP 都有自己的优点和局限性,但一般来说,IGP 的最大限制是性能和可扩展性。
IGP 旨在处理出于流量工程目的获取和分发网络拓扑信息的任务。虽然此模型运行良好,但 IGP 在分发大型数据库时具有固有的扩展限制。IGP 可以自动检测邻居,通过这些邻居获取区域内网络拓扑信息。但是,链路状态数据库或流量工程数据库的范围为单个区域或 AS,从而限制了端到端流量工程等应用,限制了具有外部可见性以做出更好决策的好处。
对于标签交换网络,例如 MPLS 和通用 MPLS (GMPLS),大多数现有流量工程解决方案都在单个路由域中工作。当从入口节点到出口节点的路由离开入口节点的路由区域或 AS 时,这些解决方案不起作用。在这种情况下,由于整个网络中的完整路由信息不可用,路径计算问题变得复杂。这是因为,鉴于可扩展性限制和出于机密性考虑,服务提供商通常不会在路由区域或 AS 之外泄露路由信息。
需要跨越链路状态分布
IGP 的局限性之一是无法在单个区域或 AS 之外跨越链路状态分布。但是,让 IGP 获取的链路状态信息跨越多个区域或 AS 具有以下要求:
LSP 路径计算 — 此信息用于计算跨多个路由域(例如区域间 TE LSP)的 MPLS LSP 路径。
外部路径计算实体 — 应用层流量优化 (ALTO) 和路径计算元素 (PCE) 等外部路径计算实体根据网络拓扑和网络内连接的当前状态(包括流量工程信息)执行路径计算。此信息通常由网络内的 IGP 分发。
但是,由于外部路径计算实体无法从 IGP 中提取此信息,因此它们会执行网络监视以优化网络服务。
使用 BGP 作为解决方案
概述
为了满足跨多个域的跨越链路状态分布的需求,需要外部网关协议 (EGP) 从 IGP 区域收集链路状态和流量工程信息,与外部组件共享,并将其用于计算域间 MPLS LSP 的路径。
BGP 是一种标准化 EGP,用于在自治系统 (AS) 之间交换路由和可达性信息。BGP 是一种经过验证的协议,具有更好的扩展属性,因为它能够以可扩展的方式分发数百万个条目(例如,VPN 前缀)。BGP 是目前使用的唯一适合承载互联网上所有路由的路由协议。这主要是因为 BGP 在 TCP 上运行,可以利用 TCP 流控制。相比之下,内部网关协议 (IGP) 没有流量控制。当 IGP 具有过多的路由信息时,它们就会开始流失。当 BGP 的相邻发言者发送信息过快时,BGP 可以通过延迟 TCP 确认来限制邻居。
BGP 的另一个好处是,它使用类型、长度、值 (TLV) 元组和网络层可达性信息 (NLRI),无需更改底层协议即可提供看似无限的可扩展性。
链路状态信息跨域的分发使用策略进行管理,以保护服务提供商的利益。这需要使用策略控制拓扑分布。BGP 及其已实施的策略框架在域间路由分配中发挥了良好作用。在 Junos OS 中,BGP 完全由策略驱动。操作员必须显式配置要与邻接方对等,并显式接受进入 BGP 的路由。此外,路由策略用于过滤和修改路由信息。因此,路由策略提供对路由表的完全管理控制。
尽管在 AS 中,IGP-TE 和 BGP-TE 提供相同的信息集,但 BGP-TE 具有更好的扩展特性,继承自标准 BGP 协议。这使得 BGP-TE 更具扩展性,可获取多区域/多 AS 拓扑信息。
通过使用 BGP 作为解决方案,IGP 获取的信息将用于分发到 BGP 中。ISP 可以通过正常的 BGP 对等互连,有选择地向其他 ISP、服务提供商和内容分发网络 (CDN) 公开此信息。这允许聚合 IGP 跨多个区域和 AS 获取的信息,这样外部路径计算实体就可以通过被动侦听路由反射器来访问信息。
实施
在 Junos OS 中,IGP 将拓扑信息安装到称为信息流工程数据库的数据库中。信息流工程数据库包含聚合拓扑信息。要将 IGP 拓扑信息安装到信息流工程数据库中,请在和[edit protocols ospf traffic-engineering]
层次结构级别使用set igp-topology
[edit protocols isis traffic-engineering]
配置语句。使用 BGP 分发链路状态信息的机制包括将信息流工程数据库播发到 BGP-TE(导入)以及将条目从 BGP-TE 安装到信息流工程数据库(导出)的过程。
从 Junos OS 20.4R1 版开始,您可以将 IS-IS 信息流工程配置为除 IPv4 地址外,还将 IPv6 信息存储在信息流工程数据库 (TED) 中。BGP-LS 使用信息流工程数据库导入策略将此信息作为从信息流工程数据库分发到 lsdist.0 路由表的路由。这些路由作为具有 IPv6 路由器 ID 类型、长度和值 (TLV) 的网络层可达性信息 (NLRI) 播发到 BGP-TE 对等方。通过添加 IPv6 信息,您可以从获取信息流工程数据库中的完整网络拓扑中受益。
BGP-LS NLRI 和联盟 ID
从 Junos OS 23.1R1 版开始,当启用 BGP 联合时,Junos OS 将启用 BGP 链路状态 (BGP-LS) 网络层可达性信息 (NLRI),以在 TLV 512 中携带联合身份验证 ID。NLRI 携带联合身份验证 ID 以及 RFC 9086 中定义的 TLV 517 中的成员自治系统编号(AS 编号)。Junos OS 信息流工程数据库模块进行必要的更改,分别对 TLV 512 和 TLV 517 中的联合身份验证 ID 和成员 AS 编号进行编码,同时发起 BGP-LS NLRI(注入 lsdist.0 路由表)。在 Junos OS 23.1R1 之前的版本中,BGP-LS NLRI 仅携带 TLV 512 中的成员 AS 编号,联合 ID 未在 lsdist.0 路由表中编码。
流量工程数据库导入
要将信息流工程数据库播发至 BGP-TE,信息流工程数据库中的链路和节点条目将以路由的形式进行转换。然后,流量工程数据库代表相应的 IGP 将这些转换后的路由安装到名为 的用户 lsdist.0
可见路由表中,具体取决于路由策略。将条目从信息流工程数据库泄漏到 lsdist.0
的过程称为信息流工程数据库导入,如 所示 图 1。
有一些策略可以管理流量工程数据库导入过程。默认情况下,不会将任何条目从流量工程数据库泄漏到 lsdist.0
表中。
从 Junos OS 17.4R1 版开始,信息流工程数据库除了在 lsdist.0 路由表中安装 RSVP-TE 拓扑信息外,还会安装内部网关协议 (IGP) 拓扑信息,如 图 1所示。在 Junos OS 17.4R1 版之前,信息流工程数据库仅导出 RSVP-TE 拓扑信息。现在,您可以监控 IGP 和流量工程拓扑信息。BGP-LS 从 lsdist.0 读取 IGP 条目,并将这些条目播发至 BGP 对等方。要将 IGP 拓扑信息从 lsdist.0 导入到 BGP-LS 中,请在层次结构级别使用set bgp-ls
[edit protocols mpls traffic-engineering database import igp-topology]
配置语句。
信息流工程数据库导出
可以根据策略将 BGP 配置为从 lsdist.0
表中导出或通告路由。这对于 BGP 中的任何类型的路由来源都很常见。为了将 BGP-TE 播发到信息流工程数据库中,需要使用 BGP-TE 地址族和导出策略来配置 BGP,该策略可以选择路由以重新分发到 BGP 中。
然后,BGP 像任何其他 NLRI 一样传播这些路由。配置并协商了 BGP-TE 家族的 BGP 对等方接收 BGP-TE NLRI。BGP 以路由 lsdist.0
的形式将收到的 BGP-TE NRRI 存储在表中,该表与存储本地发起的 BGP-TE 路由的表相同。然后,将 BGP 安装的 lsdist.0
路由像任何其他路由一样分发到其他对等方。因此,标准路由选择过程适用于从多个扬声器接收的 BGP-TE NLRI。
为了实现域间 TE,中的 lsdist.0
路由通过策略泄漏到流量工程数据库中。此过程称为信息流工程数据库导出,如 图 1所示。
有一些策略可以管理流量工程数据库导出过程。默认情况下,不会将任何条目从 lsdist.0
表中泄漏到信息流工程数据库中。
从 Junos OS 22.4R1 版开始,您可以将源自分段路由协议的信息流工程 (TE) 策略分发到信息流工程数据库 (TED),并作为路由分发到 BGP 链路状态中。BGP 链路状态收集与 TE 策略相关的信息,以便外部控制器可以在域内和域间执行路径计算、重新优化和网络可视化等操作。
配置 set protocols source-packet-routing traffic-engineering database
以允许将分段路由 (SR) 策略存储在 TED 中。
对于 PCE 和 ALTO 等 SDN 应用,BGP-TE 通告的信息不会泄露到路由器的流量工程数据库中。在这种情况下,使用使用 BGP-TE 与路由器对等的外部服务器将拓扑信息向上移动到跨网络的天空/编排系统中。这些外部服务器可被视为 BGP-TE 使用者,它们接收 BGP-TE 路由,但不播发它们。
分配可信度值
将条目安装到信息流工程数据库中后,BGP-TE 获知的信息可用于 CSPF 路径计算。信息流工程数据库使用基于可信度值的协议首选项方案。具有较高可信度值的协议优先于具有较低可信度值的协议。BGP-TE 能够同时通告从多个协议获知的信息,因此,除了信息流工程数据库中 IGP 安装的条目外,还可以存在与多个协议对应的 BGP-TE 安装条目。信息流工程数据库导出组件为 BGP-TE 支持的每个协议创建信息流工程数据库协议和可信度级别。这些可信度值可在 CLI 中配置。
BGP-TE 协议的可信度顺序如下:
-
未知 - 80
-
OSPF—81
-
ISIS 级别 1—82
-
ISIS 级别 2—83
-
静态 - 84
-
直接 - 85
跨可信度路径计算
分配可信度值后,每个可信度级别将被视为一个单独的平面。“受约束的短路路径优先”算法从分配的最高可信度到最低可信度开始,在该可信度级别内找到路径。
对于 BGP-TE,必须计算跨可信度级别的路径来计算 AS 间路径。例如,在计算通过区域 1 的路径的区域 0 的设备上可以看到不同的可信度设置,因为区域 0 条目由 OSPF 安装,区域 1 条目由 BGP-TE 安装。
要启用跨可信度级别的路径计算,请在 、 [edit protocols mpls label-switched-path lsp-name]
和[edit protocols rsvp]
层次结构级别包含edit protocols mpls
cross-credibility-cspf
语句。在 [edit protocols rsvp]
层次结构级别,启用 cross-credibility-cspf
影响可以绕过 LSP 和传输中的松散跳跃扩展。
通过配置,可以使用 cross-credibility-cspf
“受约束的最短路径优先”算法跨可信度级别进行路径计算,其中约束不是在逐个可信度的基础上执行的,而是作为忽略分配的可信度值的单个约束来执行的。
BGP-TE NLRI 和 TLV
与其他 BGP 路由一样,BGP-TE NLRI 也可以通过使用 BGP-TE NLRI 的路由反射器进行分配。Junos OS 实现了对 BGP-TE 系列的路由反射支持。
以下是受支持的 NLRI 的列表:
-
链接 NLRI
-
节点 NLRI
-
IPv4 前缀 NLRI(接收和传播)
-
IPv6 前缀 NLRI(接收和传播)
-
TE 策略 NLRI
Junos OS 不支持上述 NRLI 的路由识别符形式。
以下是链接和节点 NLRI 中支持的字段列表:
-
协议 ID — NLRI 源自以下协议值:
-
ISIS-L1
-
ISIS-L2
-
OSPF
-
弹簧茶
-
-
标识符 - 此值可配置。默认情况下,标识符值设置为
0
。 -
本地/远程节点描述符 — 其中包括:
-
自治系统
-
BGP-LS 标识符 - 此值可配置。默认情况下,BGP-LS 标识符值设置为
0
-
区域 ID
-
IGP 路由器 ID
-
-
链接描述符(仅适用于链接 NLRI)— 这包括:
-
链路本地/远程标识符
-
IPv4 接口地址
-
IPv4 邻居地址
-
IPv6 邻居/接口地址 — IPv6 邻居和接口地址不是发起地址,而是仅在收到时存储和传播。
-
多拓扑 ID - 此值不是发起的,而是在收到时存储和传播的。
-
以下是受支持的LINK_STATE属性 TLV 的列表:
-
链接属性:
-
管理组
-
最大链路带宽
-
最大可预留带宽
-
未预留带宽
-
TE 默认指标
-
SRLG
-
以下 TLV,它们不是原始的,而是仅在收到时存储和传播的:
-
不透明链接属性
-
MPLS 协议掩码
-
度量
-
链路保护类型
-
链路名称属性
-
-
-
节点属性:
-
IPv4 路由器 ID
-
节点标志位 - 仅设置过载位。
-
以下 TLV,它们不是原始的,而是仅在收到时存储和传播的:
-
多拓扑
-
特定于 OSPF 的节点属性
-
不透明节点属性
-
节点名称
-
IS-IS 区域标识符
-
IPv6 路由器 ID
-
-
前缀属性 — 这些 TLV 的存储和传播方式与任何其他未知 TLV 一样。
-
支持和不支持的功能
Junos OS 通过使用 BGP 的链路状态分发支持以下功能:
多协议保证转发能力通告
节点和链路状态 BGP 和 BGP-TE NLRI 的传输和接收
BGP-TE NLRI 的不间断活动路由
策略
Junos OS 支持 not 以下使用 BGP 的链路状态分发功能:
聚合拓扑、链路或节点
BGP-TE NLRI 的路由识别符支持
多拓扑标识符
多实例标识符(不包括默认实例 ID 0)
链路和节点区域TLV的通告
MPLS 信令协议通告
导入具有重叠地址的节点和链路信息
用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
从 Junos OS 17.2R1 版开始,BGP 链路状态地址族得到扩展,可将源数据包路由网络 (SPRING) 拓扑信息分发到软件定义网络 (SDN) 控制器。BGP 通常从 IGP 学习链路状态信息,并将其分发给 BGP 对等方。除了 BGP 之外,如果控制器是 IGP 域的一部分,SDN 控制器还可以直接从 IGP 获取链路状态信息。但是,BGP 链路状态分布提供了一种可扩展的机制来导出拓扑信息。域间网络支持 SPRING 的 BGP 链路状态扩展。
网络中的源数据包路由 (SPRING)
SPRING 是一种控制平面架构,它使入口路由器能够通过网络中一组特定的节点和链路引导数据包,而无需依赖网络中的中间节点来决定它必须采用的实际路径。SPRING 与 IGP(如 IS-IS 和 OSPF)合作,用于广告网段。网段可以表示任何指令,拓扑或基于服务的指令。在 IGP 拓扑中,IGP 分段由链路状态路由协议通告。有两种类型的 IGP 分段:
Adjacency segment |
IGP 中两个节点之间特定邻接上的单跃点路径 |
Prefix segment |
根据 IGP 拓扑的状态,到前缀的多跳、等价、多路径感知最短路径 |
在 BGP 网络中启用 SPRING 输入后,BGP 链路状态地址族从 IGP 链路状态路由协议中学习 SPRING 信息,并以分段标识符 (SID) 的形式通告分段。BGP 链路状态地址族已扩展为将 SID 和其他与 SPRING 相关的信息传送到 BGP 对等方。路由反射器可以通过在数据包前置适当的隧道组合来引导数据包通过一组所需的节点和链路。此功能允许 BGP 链路状态地址族也向 BGP 对等方通告 SPRING 信息。
BGP 链路状态 SPRING 数据流
图 2 描述了 IS-IS 推送到流量工程数据库的 BGP 链路状态 SPRING 数据的数据流。
-
IGP 将 SPRING 属性推送到信息流工程数据库。
-
SPRING 功能和算法信息作为节点属性传递到流量工程数据库中。
-
相邻 SID 和 LAN 相邻 SID 信息作为链路属性进行传输。
-
前缀 SID 或节点 SID 信息作为前缀属性进行传输。
-
新属性集或对现有属性的更改会触发对信息流工程数据库的 IGP 更新(包含新数据)。
警告:如果在 IGP 级别禁用信息流工程,则不会将任何属性推送到信息流工程数据库。
-
BGP 信息流工程 NLRI 中的所有参数(包括链路、节点和前缀描述符)均派生自信息流工程数据库中的条目。
-
信息流工程数据库根据策略从 IGP 将路由条目导入路由表
lsdist.0
。 -
BGP 的默认策略是导出路由,只有 BGP 知道这些路由。您可以在路由表中为非 BGP 路由
lsdis.0
配置导出策略。此策略播发从信息流工程数据库中获知的条目。
支持的 BGP 链路状态属性和 TLV,以及 SPRING 不支持的 BGP 链路状态功能
带有 SPRING 的 BGP 链路状态支持在网络中发起、接收和传播的以下属性以及类型、长度和值 (TLV):
Node attributes
-
分段路由功能
-
分段路由算法
Link attributes
-
邻接-SID
-
LAN 邻接-SID
Prefix descriptors
-
IP 可访问性信息
Prefix attributes
-
前缀 SID
以下列表支持不是发起的,而是仅在网络中接收和传播的 TLV:
Prefix descriptors
-
多拓扑 ID
-
OSPF 路由类型
Prefix attributes
-
范围
-
绑定 SID
Junos OS 不支持带有 SPRING 扩展的 BGP 链路状态的以下功能:
-
IPv6 前缀发起
-
多拓扑标识符
-
SPRING 参数的信息流工程数据库导出
-
具有 tcpdump 的新 TLV(也不支持现有 TLV)。
-
SPRING over IPv6
使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点
下面是一个示例输出,用于验证使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点:
目的
验证 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@host> show route table lsdist.0 te-node-ip 10.7.7.7 extensive lsdist.0: 216 destinations, 216 routes (216 active, 0 holddown, 0 hidden) NODE { AS:65100 Area:0.0.0.1 IPv4:10.7.7.7 OSPF:0 }/1536 (1 entry, 1 announced) TSI: LINK-STATE attribute handle 0x61d5da0 *BGP Preference: 170/-101 Next hop type: Indirect, Next hop index: 0 Address: 0x61b07cc Next-hop reference count: 216 Source: 10.2.2.2 Protocol next hop: 10.2.2.2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 State:<Active Int Ext> Local AS: 65100 Peer AS: 65100 Age: 30:22 Metric2: 2 Validation State: unverified Task: BGP_65100.10.2.2.2 Announcement bits (1): 0-TED Export AS path: I Accepted Area border router: No External router: No Attached: No Overload: No SPRING-Capabilities: - SRGB block [Start: 900000, Range: 90000, Flags: 0x00] SPRING-Algorithms: - Algo: 0 Localpref: 100 Router ID: 10.2.2.2 Indirect next hops: 1 Protocol next hop: 10.2.2.2 Metric: 2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.11.1.2 via et-0/0/0.1 weight 0x1 Session Id: 0x143 10.2.2.2/32 Originating RIB: inet.0 Metric: 2 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.11.1.2 via et-0/0/0.1 Session Id: 143
意义
路由将显示在 lsdist.0 路由表中。
使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI
下面是一个示例输出,用于验证使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI:
目的
验证 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@host> show route table lsdist.0 te-ipv4-prefix-node-ip 10.7.7.7 extensive lsdist.0: 216 destinations, 216 routes (216 active, 0 holddown, 0 hidden) PREFIX { Node { AS:65100 Area:0.0.0.1 IPv4:10.7.7.7 } { IPv4:10.7.7.7/32 } OSPF:0 }/1536 (1 entry, 0 announced) *BGP Preference: 170/-101 Next hop type: Indirect, Next hop index: 0 Address: 0x61b07cc Next-hop reference count: 216 Source: 10.2.2.2 Protocol next hop: 10.2.2.2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 State: <Active Int Ext> Local AS: 65100 Peer AS: 65100 Age: 30:51 Metric2: 2 Validation State: unverified Task: BGP_65100.10.2.2.2 AS path: I Accepted Prefix Flags: 0x00, Prefix SID: 1007, Flags: 0x50, Algo: 0 Localpref: 65100 Router ID: 10.2.2.2 Indirect next hops: 1 Protocol next hop: 10.2.2.2 Metric: 2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.11.1.2 via et-0/0/0.1 weight 0x1 Session Id: 0x143 10.2.2.2/32 Originating RIB: inet.0 Metric: 2 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.11.1.2 via et-0/0/0.1 Session Id: 143
意义
路由将显示在 lsdist.0 路由表中。
示例:使用 BGP 配置链路状态分配
此示例说明如何将 BGP 配置为跨多个域传输链路状态信息,这些信息用于计算跨多个域的 MPLS LSP 的路径,例如区域间 TE LSP,并为外部路径计算实体(如 ALTO 和 PCE)提供可扩展和策略控制的方法,以获取网络拓扑。
要求
此示例使用以下硬件和软件组件:
-
四个路由器,可以是 M 系列、MX 系列或 T 系列路由器的组合
-
在所有路由器上运行的 Junos OS 14.2 或更高版本
准备工作:
-
配置设备接口。
-
配置设备的自治系统编号和路由器 ID。
-
配置以下协议:
-
RSVP
-
MPLS
-
BGP
-
IS-IS
-
OSPF
-
概述
从 Junos OS 14.2 版开始,引入了一种跨多个区域和自治系统 (AS) 分发拓扑信息的新机制,扩展 BGP 协议以传输链路状态信息,这些信息最初是使用 IGP 获取的。IGP 协议在分发大型数据库时具有扩展限制。BGP 不仅是用于传输多区域和多 AS 拓扑信息的更具可扩展性的工具,还提供了可用于多 AS 拓扑分布的策略控制。BGP 链路状态拓扑信息用于计算跨多个域(例如区域间 TE LSP)的 MPLS 标签交换路径 (LSP) 的路径,并为外部路径计算实体(如 ALTO 和 PCE)获取网络拓扑提供可扩展和策略控制的方法。
从 Junos OS 17.1R1 版开始,QFX10000 交换机都支持使用 BGP 分配链路状态。
拓扑学
在 中 图 3,路由器 R0 和 R1 以及路由器 R2 和 R3 属于不同的自治系统。路由器 R0 和 R1 运行 OSPF,路由器 R2 和 R3 运行 IS-IS。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到 [edit]
层级的 CLI 中,然后从配置模式进入 commit
。
R0
set interfaces ge-0/0/0 unit 0 family inet address 10.8.31.101/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.137/32 set routing-options router-id 10.255.105.137 set routing-options autonomous-system 65533 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database export policy accept-all set protocols mpls cross-credibility-cspf set protocols mpls label-switched-path to-R3-inter-as to 10.255.105.135 set protocols mpls label-switched-path to-R3-inter-as bandwidth 40m set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.137 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp neighbor 10.255.105.141 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept
R1
set interfaces ge-0/0/0 unit 0 family inet address 10.8.31.103/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.8.42.102/24 set interfaces ge-0/0/1 unit 0 family iso set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.141/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5501.8181 set routing-options router-id 10.255.105.141 set routing-options autonomous-system 65533 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.141 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp export nlri2bgp set protocols bgp group ibgp neighbor 10.255.105.137 set protocols bgp group ebgp type external set protocols bgp group ebgp family traffic-engineering unicast set protocols bgp group ebgp neighbor 10.8.42.104 local-address 10.8.42.102 set protocols bgp group ebgp neighbor 10.8.42.104 peer-as 65534 set protocols isis interface ge-0/0/1.0 passive remote-node-iso 0102.5502.4211 set protocols isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.104 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 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 passive traffic-engineering remote-node-id 10.8.42.104 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.139 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept set policy-options policy-statement nlri2bgp term 1 from family traffic-engineering set policy-options policy-statement nlri2bgp term 1 then accept
R2
set interfaces ge-0/0/0 unit 0 family inet address 10.8.64.104/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.8.42.104/24 set interfaces ge-0/0/1 unit 0 family iso set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.139/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5502.4211.00 set routing-options router-id 10.255.105.139 set routing-options autonomous-system 65534 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database import policy ted2nlri set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.139 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp export nlri2bgp set protocols bgp group ibgp neighbor 10.255.105.135 set protocols bgp group ebgp type external set protocols bgp group ebgp family traffic-engineering unicast set protocols bgp group ebgp export nlri2bgp set protocols bgp group ebgp peer-as 65533 set protocols bgp group ebgp neighbor 10.8.42.102 set protocols isis level 1 disable set protocols isis interface ge-0/0/0.0 set protocols isis interface ge-0/0/1.0 passive remote-node-iso 0102.5501.8181 set protocols isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.102 set protocols isis interface lo0.0 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.102 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.141 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept set policy-options policy-statement nlri2bgp term 1 from family traffic-engineering set policy-options policy-statement nlri2bgp term 1 then accept set policy-options policy-statement ted2nlri term 1 from protocol isis set policy-options policy-statement ted2nlri term 1 from protocol ospf set policy-options policy-statement ted2nlri term 1 then accept set policy-options policy-statement ted2nlri term 2 then reject
R3
set interfaces ge-0/0/0 unit 0 family inet address 10.8.64.106/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.135/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5502.4250 set routing-options router-id 10.255.105.135 set routing-options autonomous-system 65534 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database export policy accept-all set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.135 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp neighbor 10.255.105.139 set protocols isis interface ge-0/0/0.0 level 1 disable set protocols isis interface lo0.0 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置路由器 R1:
-
配置路由器 R1 接口。
[edit interfaces] user@R1# set ge-0/0/0 unit 0 family inet address 10.8.31.103/24 user@R1# set ge-0/0/0 unit 0 family iso user@R1# set ge-0/0/0 unit 0 family mpls user@R1# set ge-0/0/1 unit 0 family inet address 10.8.42.102/24 user@R1# set ge-0/0/1 unit 0 family iso user@R1# set ge-0/0/1 unit 0 family mpls user@R1# set lo0 unit 0 family inet address 10.255.105.141/32 user@R1# set lo0 unit 0 family iso address 47.0005.0102.5501.8181
-
配置路由器 R1 的路由器 ID 和自治系统。
[edit routing-options]
user@R1# set router-id 10.255.105.141 user@R1# set autonomous-system 65533 -
在路由器 R1 的所有接口(不包括管理接口)上启用 RSVP。
[edit protocols]
user@R1# set rsvp interface all user@R1# set rsvp interface fxp0.0 disable -
在路由器 R1 的所有接口(不包括管理接口)上启用 MPLS。
[edit protocols]
user@R1# set mpls interface all user@R1# set mpls interface fxp0.0 disable -
将路由器 R1 的 BGP 组配置为与路由器 R0 对等,并分配本地地址和邻居地址。
[edit protocols]
user@R1# set bgp group ibgp type internal user@R1# set bgp group ibgp local-address 10.255.105.141 user@R1# set bgp group ibgp neighbor 10.255.105.137 -
将 BGP-TE 信令网络层可达性信息 (NLRI) 包含在 ibgp BGP 组。
[edit protocols]
user@R1# set bgp group ibgp family traffic-engineering unicast -
在路由器 R1 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R1# set bgp group ibgp export nlri2bgp -
将路由器 R1 的 BGP 组配置为与路由器 R2 对等,并将本地地址和邻居自治系统分配给 ebgp BGP 组。
[edit protocols]
user@R1# set bgp group ebgp type external user@R1# set bgp group ebgp neighbor 10.8.42.104 local-address 10.8.42.102 user@R1# set bgp group ebgp neighbor 10.8.42.104 peer-as 65534 -
将 BGP-TE 信令 NLRI 加入 ebgp BGP 组。
[edit protocols]
user@R1# set bgp group ebgp family traffic-engineering unicast -
在 AS 间链路上启用被动信息流工程。
[edit protocols]
user@R1# set isis interface ge-0/0/1.0 passive remote-node-iso 0102.5502.4211 user@R1# set isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.104 -
在将路由器 R1 连接到路由器 R0 的接口上以及在路由器 R1 的环路接口上启用 OSPF,并启用流量工程功能。
[edit protocols]
user@R1# set ospf traffic-engineering user@R1# set ospf area 0.0.0.0 interface lo0.0 user@R1# set ospf area 0.0.0.0 interface ge-0/0/0.0 -
在 AS 间链路上启用被动信息流工程。
[edit protocols]
user@R1# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.104 user@R1# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.139 -
配置策略以接受来自 BGP-TE NLRI 的流量。
[edit policy-options]
user@R1# set policy-statement accept-all from family traffic-engineering user@R1# set policy-statement accept-all then accept user@R1# set policy-statement nlri2bgp term 1 from family traffic-engineering user@R1# set policy-statement nlri2bgp term 1 then accept
结果
在配置模式下,输入 show interfaces
、show routing-options
、show protocols
和 show policy-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@R1# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.8.31.103/24; } family iso; family mpls; } } ge-0/0/1 { unit 0 { family inet { address 10.8.42.102/24; } family iso; family mpls; } } lo0 { unit 0 { family inet { address 10.255.105.141/32; family iso { address 47.0005.0102.5501.8181:00; } } }
user@R1# show routing-options router-id 10.255.105.141; autonomous-system 65533;
user@R1# show protocols rsvp { interface all; interface fxp0.0 { disable; } } mpls { interface all; interface fxp0.0 { disable; } } bgp { group ibgp { type internal; local-address 10.255.105.141; family traffic-engineering { unicast; } export nlri2bgp; neighbor 10.255.105.137; } group ebgp { type external; family traffic-engineering { unicast; } neighbor 10.8.42.104 { local-address 10.8.42.102; peer-as 65534; } } } isis { interface ge-0/0/1.0 { passive { remote-node-iso 0102.5502.4211; remote-node-id 10.8.42.104; } } } ospf { traffic-engineering; area 0.0.0.0 { interface lo0.0; interface ge-0/0/0.0; interface ge-0/0/1.0 { passive { traffic-engineering { remote-node-id 10.8.42.104; remote-node-router-id 10.255.105.139; } } } } }
user@R1# show policy-options policy-statement accept-all { from family traffic-engineering; then accept; } policy-statement nlri2bgp { term 1 { from family traffic-engineering; then { accept; } } }
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置路由器 R2:
-
配置路由器 R2 接口。
[edit interfaces] user@R2# set ge-0/0/0 unit 0 family inet address 10.8.64.104/24 user@R2# set ge-0/0/0 unit 0 family iso user@R2# set ge-0/0/0 unit 0 family mpls user@R2# set ge-0/0/1 unit 0 family inet address 10.8.42.104/24 user@R2# set ge-0/0/1 unit 0 family iso user@R2# set ge-0/0/1 unit 0 family mpls user@R2# set lo0 unit 0 family inet address 10.255.105.139/32 user@R2# set lo0 unit 0 family iso address 47.0005.0102.5502.4211.00
-
配置路由器 R2 的路由器 ID 和自治系统。
[edit routing-options]
user@R2# set router-id 10.255.105.139 user@R2# set autonomous-system 65534 -
在路由器 R2 的所有接口(不包括管理接口)上启用 RSVP。
[edit routing-options]
user@R2# set rsvp interface all user@R2# set rsvp interface fxp0.0 disable -
在路由器 R2 的所有接口(不包括管理接口)上启用 MPLS。
[edit routing-options]
user@R2# set mpls interface all user@R2# set mpls interface fxp0.0 disable -
使用 ted2nlri 策略启用信息流工程数据库参数的导入。
[edit protocols]
user@R2# set mpls traffic-engineering database import policy ted2nlri -
将路由器 R2 的 BGP 组配置为与路由器 R3 对等,并分配本地地址和邻居地址。
[edit protocols]
user@R2# set bgp group ibgp type internal user@R2# set bgp group ibgp local-address 10.255.105.139 user@R2# set bgp group ibgp neighbor 10.255.105.135 -
将 BGP-TE 信令网络层可达性信息 (NLRI) 包含在 ibgp BGP 组。
[edit protocols]
user@R2# set bgp group ibgp family traffic-engineering unicast -
在路由器 R2 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R2# set bgp group ibgp export nlri2bgp -
配置路由器 R2 的 BGP 组,以便与路由器 R1 对等。
[edit protocols]
user@R2# set bgp group ebgp type external -
将 BGP-TE 信令 NLRI 加入 ebgp BGP 组。
[edit protocols]
user@R2# set bgp group ebgp family traffic-engineering unicast -
将本地地址和邻居自治系统分配给 ebgp BGP 组。
[edit protocols]
user@R2# set bgp group ebgp peer-as 65533 user@R2# set bgp group ebgp neighbor 10.8.42.102 -
在路由器 R2 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R2# set bgp group ebgp export nlri2bgp -
在连接路由器 R2 与路由器 R3 的接口以及路由器 R2 的环路接口上启用 IS-IS。
[edit protocols]
user@R2# set isis level 1 disable user@R2# set isis interface ge-0/0/0.0 user@R2# set isis interface lo0.0 -
在连接路由器 R2 和路由器 R1 的接口上仅启用 IS-IS 通告。
[edit protocols]
user@R2# set isis interface ge-0/0/1.0 passive remote-node-iso 0102.5501.8181 user@R2# set isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.102 -
在路由器 R2 上配置流量工程功能。
[edit protocols]
user@R2# set ospf traffic-engineering -
在连接路由器 R2 和路由器 R1 的接口上仅启用 OSPF 通告。
[edit protocols]
user@R2# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.102 user@R2# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.141 -
配置策略以接受来自 BGP-TE NLRI 的流量。
[edit policy-options]
user@R2# set policy-statement accept-all from family traffic-engineering user@R2# set policy-statement accept-all then accept user@R2# set policy-statement nlri2bgp term 1 from family traffic-engineering user@R2# set policy-statement nlri2bgp term 1 then accept user@R2# set policy-statement ted2nlri term 1 from protocol isis user@R2# set policy-statement ted2nlri term 1 from protocol ospf user@R2# set policy-statement ted2nlri term 1 then accept user@R2# set policy-statement ted2nlri term 2 then reject
结果
在配置模式下,输入 show interfaces
、show routing-options
、show protocols
和 show policy-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@R2# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.8.64.104/24; } family iso; family mpls; } } ge-0/0/1 { unit 0 { family inet { address 10.8.42.104/24; } family iso; family mpls; } } lo0 { unit 0 { family inet { address 10.255.105.139/32; family iso { address 47.0005.0102.5502.4211.00; } family iso; } }
user@R2# show routing-options router-id 10.255.105.139; autonomous-system 65534;
user@R2# show protocols rsvp { interface all; interface fxp0.0 { disable; } } mpls { traffic-engineering { database { import { policy ted2nlri; } } } interface all; interface fxp0.0 { disable; } } bgp { group ibgp { type internal; local-address 10.255.105.139; family traffic-engineering { unicast; } export nlri2bgp; neighbor 10.255.105.135; } group ebgp { type external; family traffic-engineering { unicast; } export nlri2bgp; peer-as 65533; neighbor 10.8.42.102; } } isis { level 1 disable; interface ge-0/0/0.0; interface ge-0/0/1.0 { passive { remote-node-iso 0102.5501.8181; remote-node-id 10.8.42.102; } } interface lo0.0; } ospf { traffic-engineering; area 0.0.0.0 { interface ge-0/0/1.0 { passive { traffic-engineering { remote-node-id 10.8.42.102; remote-node-router-id 10.255.105.141; } } } } }
user@R2# show policy-options policy-statement accept-all { from family traffic-engineering; then accept; } policy-statement nlri2bgp { term 1 { from family traffic-engineering; then { accept; } } } policy-statement ted2nlri { term 1 { from protocol [ isis ospf ]; then accept; } term 2 { then reject; } }
验证
验证配置是否正常工作。
验证 BGP 摘要状态
目的
验证 BGP 是否已启动并在路由器 R0 和 R1 上运行。
操作
在操作模式下,运行 show bgp summary
命令。
user@R0> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending lsdist.0 10 10 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.255.105.141 65533 20 14 0 79 5:18 Establ lsdist.0: 10/10/10/0
在操作模式下,运行 show bgp summary
命令。
user@R1> show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending lsdist.0 10 10 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.8.42.104 65534 24 17 0 70 6:43 Establ lsdist.0: 10/10/10/0 10.255.105.137 65533 15 23 0 79 6:19 Establ lsdist.0: 0/0/0/0
意义
路由器 R0 与路由器 R1 对等。
验证 MPLS LSP 状态
目的
验证路由器 R0 上 MPLS LSP 的状态。
操作
在操作模式下,运行 show mpls lsp
命令。
user@R0> show mpls lsp Ingress LSP: 1 sessions To From State Rt P ActivePath LSPname 10.255.105.135 10.255.105.137 Up 0 * to-R3-inter-as Total 1 displayed, Up 1, Down 0 Egress LSP: 0 sessions Total 0 displayed, Up 0, Down 0 Transit LSP: 0 sessions Total 0 displayed, Up 0, Down 0
意义
已建立从路由器 R0 到路由器 R3 的 MPLS LSP。
验证 lsdist.0 路由表条目
目的
验证路由器 R0、R1 和 R2 上的 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@R0> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:8.42.1.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:02:03, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10. 8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0
在操作模式下,运行 show route table lsdist.0
命令。
user@R1> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.42.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:02:19, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10.8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0
在操作模式下,运行 show route table lsdist.0
命令。
user@R2> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[IS-IS/18] 1d 00:24:39 Fictitious NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[OSPF/10] 1d 00:24:39 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.42.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:58 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:02:34 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10.8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[OSPF/10] 00:20:57 Fictitious
意义
路由将显示在 lsdist.0 路由表中。
验证信息流工程数据库条目
目的
验证路由器 R0 上的流量工程数据库条目。
操作
在操作模式下,运行 show ted database
命令。
user@R0> show ted database TED database: 5 ISIS nodes 5 INET nodes ID Type Age(s) LnkIn LnkOut Protocol 0102.5501.8168.00(10.255.105.137) Rtr 1046 1 1 OSPF(0.0.0.0) To: 10.8.31.101-1, Local: 10.8.31.101, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5501.8181.00 --- 1033 1 0 0102.5502.4211.00(10.255.105.139) Rtr 3519 2 3 Exported ISIS-L2(1) To: 0102.5502.4250.02, Local: 10.8.64.104, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 0102.5501.8181.00, Local: 10.8.42.104, Remote: 10.8.42.102 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol Exported OSPF(2) To: 10.255.105.141, Local: 10.8.42.104, Remote: 10.8.42.102 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5502.4250.00(10.255.105.135) Rtr 1033 1 1 Exported ISIS-L2(1) To: 0102.5502.4250.02, Local: 10.8.64.106, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5502.4250.02 Net 1033 2 2 Exported ISIS-L2(1) To: 0102.5502.4211.00(10.255.105.139), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 0102.5502.4250.00(10.255.105.135), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 10.8.31.101-1 Net 1046 2 2 OSPF(0.0.0.0) To: 0102.5501.8168.00(10.255.105.137), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 10.255.105.141, Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 10.255.105.141 Rtr 1045 2 2 OSPF(0.0.0.0) To: 0102.5502.4211.00(10.255.105.139), Local: 10.8.42.102, Remote: 10.8.42.104 Local interface index: 0, Remote interface index: 0 To: 10.8.31.101-1, Local: 10.8.31.103, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0
意义
路由将显示在流量工程数据库中。
使用 BGP 配置链路状态分配
通过扩展 BGP 协议以传输链路状态信息(最初是使用 IGP 获取的),可以跨多个区域和自治系统 (AS) 分发拓扑信息。IGP 协议在分发大型数据库时具有扩展限制。BGP 不仅是用于传输多区域和多 AS 拓扑信息的更具可扩展性的工具,还提供了可用于多 AS 拓扑分布的策略控制。BGP 链路状态拓扑信息用于计算跨多个域(如区域间 TE LSP)的 MPLS LSP 的路径,并为外部路径计算实体(如 ALTO 和 PCE)获取网络拓扑提供可扩展和策略控制的方法。
准备工作:
配置设备接口。
配置设备的路由器 ID 和自治系统编号。
配置以下协议:
RSVP
MPLS
IS-IS
OSPF
要使用 BGP 启用链路状态分配,请执行以下操作:
BGP 级传输平面概述
- BGP 级传输平面的优势
- BGP 级传输平面术语
- 了解 BGP 级传输平面
- BGP 类传输平面的 AS 内部实现
- BGP 类传输平面的 AS 间实现
- 具有底层彩色 SR-TE 隧道的 BGP 级传输 (BGP-CT) 概述
- BGP-CT 与底层彩色 SR-TE 隧道的优势
BGP 级传输平面的优势
-
网络切片 – 服务和传输层相互分离,通过跨多个域的端到端切片为网络切片和虚拟化奠定了基础,从而显著降低了资本支出。
- 域间互操作性 – 跨合作域扩展传输类部署,以便每个域中的不同传输信令协议互操作。协调每个域中可能正在使用的扩展社区命名空间之间的任何差异。
-
带回退的彩色分辨率 – 支持通过彩色隧道(RSVP、IS-IS 灵活算法)进行解析,并通过尽力而为隧道或任何其他彩色隧道提供灵活的回退选项。
- 服务质量 – 定制和优化网络以实现端到端 SLA 要求。
- 利用现有部署 – 支持部署良好的隧道协议(如 RSVP)以及新协议(如 IS-IS 灵活算法),从而保持投资回报率并降低运维支出。
BGP 级传输平面术语
本节概述了用于了解 BGP 级传输平面的常用术语。
-
服务节点 – 发送和接收服务路由(互联网和第 3 层 VPN)的入口提供商边缘 (PE) 设备。
-
边界节点 - 位于不同域(IGP 区域或 AS)连接点的设备。
-
传输节点 – 发送和接收 BGP 标记的单播 (LU) 路由的设备。
-
BGP-VPN–使用RFC4364机制构建的VPN。
-
路由目标 (RT) – 用于定义 VPN 成员资格的扩展社区类型。
-
路由识别符 (RD) – 用于区分路由所属的 VPN 或虚拟专用 LAN 服务 (VPLS) 的标识符。每个路由实例都必须具有与之关联的唯一路由识别符。
- 解析方案 – 用于解析提供回退的解析 RIB 中的协议下一跳地址 (PNH)。
他们根据映射社区将路由映射到系统中的不同传输 RIB。
-
服务族 – BGP 地址族,用于通告数据流量的路由,而不是隧道。
-
传输族 – 用于通告隧道的 BGP 地址族,而服务路由又使用这些隧道进行解析。
-
传输隧道 – 服务可以通过其放置流量的隧道,例如 GRE、UDP、LDP、RSVP、SR-TE、BGP-LU。
-
隧道域 – 一种网络域,其中包含服务节点和边界节点,置于单个管理控制之下,它们之间有隧道。通过使用标签将节点拼接在一起,可以创建跨越多个相邻隧道域的端到端隧道。
-
传输类 – 一组提供相同类型服务的传输隧道。
传输类 RT – 路由目标的新格式,用于标识特定的传输类。
路由目标的新格式,用于标识特定传输类。-
传输 RIB – 在服务节点和边界节点上,传输类具有用于保存其隧道路由的关联传输 RIB。
-
传输 RTI – 路由实例;传输 RIB 的容器,以及关联的传输类路由目标和路由识别符。
-
传输平面 - 导入相同传输类 RT 的传输 RTI 集。它们又被拼接在一起,使用类似于 AS 间选项 b 的机制跨越隧道域边界,以在边界节点 (nexthop-self) 交换标签,形成端到端传输平面。
-
映射社区 – 服务路由上的社区,通过传输类映射解析。
了解 BGP 级传输平面
您可以使用 BGP 级传输平面配置传输类,以便根据流量工程特征对 AS 内部网络中的一组传输隧道进行分类,并使用这些传输隧道将服务路由映射到所需的 SLA 和预期的回退。
BGP 级传输平面可以将这些隧道扩展到跨多个域(AS 或 IGP 区域)的域间网络,同时保留传输类。为此,您必须在边界节点和服务节点之间配置 BGP 级传输层 BGP 系列。
在 AS 间和 AS 内部实现中,都可以从服务和边界节点创建许多传输隧道(MPLS LSP、IS-IS 灵活算法、SR-TE)。LSP 可以在不同域中使用不同的信令协议进行信令,并且可以配置不同的流量工程特征(类或颜色)。传输隧道端点还充当服务端点,可以存在于与服务入口节点相同的隧道域中,也可以存在于相邻或不相邻的域中。您可以使用 BGP 级传输平面在单个域或跨多个域内通过具有特定流量工程特性的 LSP 重新分配服务。
BGP 级传输平面重用 BGP-VPN 技术,使隧道域保持松散耦合和协调。
- 网络层可达性信息 (NLRI) 是用于路径隐藏的 RD:TunnelEndpoint 。
- 路由目标指示 LSP 的传输等级,并将路由泄漏到目标设备上的相应传输 RIB。
- 每个传输隧道协议都会在 transport-class.inet.3 路由表中安装一个入口路由,将该隧道传输类建模为 VPN 路由目标,并在 transport-class.inet.3 transport-rib 路由表中收集相同传输类的 LSP。
-
此路由实例中的路由按照类似于 RFC-4364 的过程在 BGP 级传输平面(inet 传输)AFI-SAFI 中播发。
-
跨越 AS 间链路边界时,必须按照选项 b 过程拼接这些相邻域中的传输隧道。
同样,在跨 AS 内部区域时,必须按照 Option-b 过程拼接不同 TE 域中的传输隧道。
-
您可以定义解析方案,以在回退顺序中指定对各种传输类的意图。
- 您可以通过在这些传输类上承载映射社区来解析这些传输类上的服务路由和 BGP 类传输路由。
BGP 类传输家族与 BGP-LU 传输层家族一起运行。在运行 BGP-LU 的无缝 MPLS 网络中,满足 5G 严格的 SLA 要求是一项挑战,因为隧道的流量工程特性并不可知或跨域边界保留。BGP 级传输平面提供了操作简单且可扩展的方法,可以在无缝 MPLS 架构中通告远程环路的多条路径以及传输类信息。在 BGP 类转运家族路由中,不同的 SLA 路径使用传输路由目标扩展社区表示,该扩展社区带有传输类颜色。接收 BGP 路由器使用此传输路由目标将 BGP 类传输路由与相应的传输类相关联。重新播发 BGP 级传输路由时,MPLS 交换路由,互连相同传输类的 AS 内部隧道,从而形成保留传输类的端到端隧道。
BGP 类传输平面的 AS 内部实现
图 4 展示了一个网络拓扑,其中包含在 AS 内部域中实施 BGP 级传输平面的前后场景。设备 PE11 和 PE12 使用 RSVP LSP 作为传输隧道,所有传输隧道路由都安装在 inet.3 RIB 中。实施 BGP 级传输平面可使 RSVP 传输隧道具有类似于分段路由隧道的颜色感知能力。
要在 AS 内部设置中将传输隧道分类为 BGP 传输类,请执行以下操作:
- 在服务节点(入口 PE 设备)上定义传输类,例如金色和青铜色,并将颜色社区值分配给定义的传输类。
示例配置:
pe11# show routing-options route-distinguisher-id 172.16.1.1; transport-class { name gold { color 100; } name bronze { color 200;
- 将传输隧道关联到隧道入口节点上的特定传输类。
示例配置:
pe11# show protocols mpls label-switched-path toPE12-bronze { transport-class bronze; } label-switched-path toPE12-gold { transport-class gold; }
AS 内部 BGP 类传输平面功能:
- BGP 级传输为每个命名传输类(金色和青铜)创建预定义的传输 RIB,并从其颜色值(100 和 200)自动派生映射社区。
- 当 AS 内部传输路由与传输类关联时,由隧道协议填充在传输 RIB 中。
在此示例中,与传输类金牌(颜色 100)和传输类铜牌(颜色 200)关联的 RSVP LSP 路由分别安装在传输 RIB junos-rti-tc-<100>.inet.3 和 junos-rti-tc-<200>.inet.3 中。
- 服务节点(入口 PE)在预定义的分辨率 RIB 中将服务路由的扩展颜色社区(颜色:0:100 和颜色:0:200)与映射社区进行匹配,并在相应的传输 RIB(junos-rti-tc-<100>.inet.3 或 junos-rti-tc-<200>.inet.3)中解析协议下一跃点 (PNH)。
- BGP 路由通过承载 assiocaited 映射社区绑定到解析方案。
- 每个传输类会自动创建两个预定义的解析方案,并自动派生映射社区。
一种解析方案用于解析使用 Color:0:<val> 作为映射社区的服务路由。
另一种解析方案用于解析使用 Transport-Target:0:<val> 作为映射社区的传输路由。
- 如果使用预定义解析方案中列出的 RIB 无法解析服务路由 PNH,则可以回退到 inet.3 路由表。
- 您还可以在配置层次结构下 [edit routing-options resolution scheme] 使用用户定义的解析方案,配置不同颜色传输 RIB 之间的回退。
BGP 类传输平面的 AS 间实现
在 AS 间网络中,在所有服务节点或 PE 设备和边界节点(ABR 和 ASBR)上配置至少两个传输等级(金级和铜级)后,BGP-LU 将转换为 BGP 级传输网络。
要将传输隧道转换为 BGP 级传输:
- 在服务节点(入口 PE 设备)和边界节点(ABR 和 ASBR)定义传输类,例如,金色和溴化。
示例配置:
pe11# show routing-options route-distinguisher-id 172.16.1.1; transport-class { name gold { color 100; } name bronze { color 200;
- 将传输隧道关联到隧道入口节点(入口 PE、ABR 和 ASBR)上的特定传输类。
示例配置:
适用于回复 LSP
abr23# show protocols mpls label-switched-path toASBR21-bronze { transport-class bronze; } label-switched-path toASBR22-gold { transport-class gold;
对于 IS-IS 可不稳定算法
asbr13# show routing-options flex-algorithm 128 { … color 100; use-transport-class; } flex-algorithm 129 { … color 200; use-transport-class; }
- 为网络中的 BGP 类传输(inet 传输)和 BGP-LU(inet 标记-单播)启用新系列。
示例配置:
abr23# show protocols bgp group toAs2-RR27 { family inet { labeled-unicast { … } transport { … } cluster 172.16.2.3; neighbor 172.16.2.7; }
- 使用适当的扩展颜色社区通告来自出口 PE 设备的服务路由。
示例配置:
pe11# show policy-options policy-statement red term 1 { from { route-filter 192.168.3.3/32 exact; } then { community add map2gold; next-hop self; accept; } } term 2 { from { route-filter 192.168.33.33/32 exact; } then { community add map2bronze; next-hop self; accept; } } community map2bronze members color:0:200; community map2gold members color:0:100;
AS 间 BGP 级传输平面功能:
- BGP 级传输平面为每个命名传输类(金色和青铜)创建预定义的传输 RIB,并从其颜色值自动派生映射社区。
-
当与传输类关联时,AS 内部传输路由通过隧道协议填充在传输 RIB 中。
例如,与传输类金和铜相关的传输隧道路由分别安装在传输 RIB junos-rti-tc-<100>.inet.3 和 junos-rti-tc-<200>.inet.3 中。
- BGP 类传输平面在将传输隧道路由从每个传输 RIB 复制到 bgp.transport.3 路由表时,使用唯一的路由识别器和路由目标。
- 如果在 BGP 会话中协商了家族 inet 传输,则边界节点会将路由从 bgp.transport.3 路由表通告到其他域中的对等方。
- 接收边界节点将这些 bgp-ct 路由安装在 bgp.transport.3 路由表中,并根据传输路由目标将这些路由复制到相应的传输 RIB。
- 服务节点将服务路由中的颜色社区与解析方案中的映射社区进行匹配,并在相应的传输 RIB (junos-rti-tc-<100>.inet.3 或 junos-rti-tc-<200>.inet.3)中解析 PNH。
- 边界节点使用预定义的解析方案进行传输路由 PNH 解析。
- 预定义或用户定义的两种解析方案都支持服务路由 PNH 解析。预定义使用 inet.3 作为回退,用户定义的解析方案允许在解析 PNH 时按指定的顺序使用传输 RIB 列表。
- 如果使用用户定义解析方案中列出的 RIB 无法解析服务路由 PNH,则会丢弃路由。
具有底层彩色 SR-TE 隧道的 BGP 级传输 (BGP-CT) 概述
BGP-CT 与底层彩色 SR-TE 隧道的优势
- 解决未来随着网络的增长而可能出现的规模问题。
- 为使用不同技术的域提供互连。
- 将服务和传输层分离,从而形成完全分布式的网络。
- 通过适用于 SR-TE 的域内流量工程控制器提供独立的带宽管理。
不断发展的大型网络需要无缝的分段路由架构。从 Junos OS 21.2 R1 版开始,我们支持 BGP-CT,底层传输为彩色 SR-TE 隧道。BGP-CT 可以使用传输 RIB 解析服务路由并计算下一跃点。目前通过 BGP-CT 支持的服务也可以使用底层 SR-TE 彩色隧道进行路由解析。这些服务现在可以使用底层 SR-TE 彩色隧道,例如静态彩色隧道、BGP SR-TE、可编程 rpd 和 PCEP 彩色隧道。BGP-CT 使用下一跃点可访问性来解析所需传输类上的服务路由。
要在底层 SR-TE 彩色隧道上启用 BGP-CT 服务路由解析,请在层次结构级别包含 use-transport-class
该语句 [edit protocols source-packet-routing]
。
use-transport-class
启用语句在
以及[edit protocols source-packet-routing]
层次结构级别。auto-create
层次结构级别的语句[edit routing-options transport-class]
。- 对于具有此功能的彩色 SR-TE 隧道和仅
use-transport-class
彩色 SR-TE 隧道,我们不支持 RIB 组。
通过 RSVP PathErr 消息提高流量工程数据库的准确性
基于 RSVP 的流量工程的一个基本要素是流量工程数据库。信息流工程数据库包含参与流量工程的所有网络节点和链路的完整列表,以及每个链路可以包含的一组属性。(有关信息流工程数据库的详细信息,请参阅 受限路径 LSP 计算。最重要的链路属性之一是带宽。
随着 RSVP LSP 的建立和终止,链路上的带宽可用性会迅速变化。流量工程数据库可能会相对于实际网络产生不一致的情况。这些不一致无法通过提高 IGP 更新速率来解决。
链路可用性可以共享相同的不一致问题。不可用的链路可能会中断所有现有的 RSVP LSP。但是,网络可能不容易知道它的不可用。
配置语句 rsvp-error-hold-time
时,源节点(RSVP LSP 的入口)通过监控从下游节点传输的 PathErr 消息,从其 LSP 的故障中学习。来自 PathErr 消息的信息将合并到后续的 LSP 计算中,这可以提高 LSP 设置的准确性和速度。某些 PathErr 消息还用于更新信息流工程数据库带宽信息,从而减少信息流工程数据库与网络之间的不一致。
您可以使用语句 update-threshold
控制 IGP 更新的频率。请参阅 在接口上配置 RSVP 更新阈值。
本节讨论以下主题:
路径错误消息
PathErr 消息通过不同的代码和子代码编号报告各种问题。您可以在 RFC 2205 资源预留协议 (RSVP) 版本 1 功能规范 和 RFC 3209 RSVP-TE 中找到这些 PathErr 消息的完整列表:LSP 隧道的 RSVP 扩展。
配置该 rsvp-error-hold-time
语句时,将检查两类专门表示链路故障的 PathErr 消息:
此 LSP 的链路带宽较低:请求的带宽不可用 - 代码 1,子代码 2
这种类型的 PathErr 消息表示影响传输链路的所有 LSP 的全局问题。它们表示实际链路带宽低于 LSP 要求的带宽,并且流量工程数据库中的带宽信息可能被高估了。
收到此类错误时,本地流量工程数据库中的可用链路带宽会减少,从而影响所有未来的 LSP 计算。
此 LSP 的链接不可用:
准入控制失败 - 代码 1,除 2 之外的任何子代码
策略控制失败 — 代码 2
服务抢占 - 代码 12
路由问题 - 没有通向目的地的可用路由 - 代码 24,子代码 5
这些类型的 PathErr 消息通常与指定的 LSP 相关。此 LSP 的故障并不一定意味着其他 LSP 也可能失败。这些错误可能表示最大传输单元 (MTU) 问题、服务抢占(由操作员手动启动或由另一个具有更高优先级的 LSP 启动)、下一跃点链路已关闭、下一跃点邻接方已关闭,或者由于策略考虑而导致服务被拒绝。最好将此特定 LSP 路由到远离链路的位置。
识别问题链接
每条 PathErr 消息都包含发件人的 IP 地址。此信息将原封不动地传播到入口路由器。信息流工程数据库中的查找可以识别发起 PathErr 消息的节点。
每条 PathErr 消息都携带足够的信息来识别触发该消息的 RSVP 会话。如果这是中转路由器,则只需转发消息。如果此路由器是入口路由器(对于此 RSVP 会话),则它具有会话应遍历的所有节点和链路的完整列表。结合始发节点信息,可以唯一标识链路。
配置路由器以提高流量工程数据库的准确性
要提高信息流工程数据库的准确性,请配置语句 rsvp-error-hold-time
。配置此语句后,源节点(RSVP LSP 的入口)通过监控从下游节点传输的 PathErr 消息,从其 LSP 的故障中学习。来自 PathErr 消息的信息将合并到后续的 LSP 计算中,这可以提高 LSP 设置的准确性和速度。某些 PathErr 消息还用于更新信息流工程数据库带宽信息,从而减少信息流工程数据库与网络之间的不一致。
要配置 MPLS 应记住 RSVP PathErr 消息的时间长度并在 CSPF 计算中考虑这些消息,请包含以下 rsvp-error-hold-time
语句:
rsvp-error-hold-time seconds;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
时间可以是 1 到 240 秒之间的值。默认值为 25 秒。将值配置为 0 将禁用对 PathErr 消息的监视。
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。