LSP 路由器
LSP 中的路由器
LSP 中的每个路由器执行以下功能之一:
入口路由器 — LSP 开头的路由器。此路由器使用 MPLS 第 2 层 帧封装 IP 数据包,并将其转发到路径中的下一个路由器。每个 LSP 只能有一个入口路由器。
出口路由器 — LSP 末端的路由器。此路由器移除 MPLS 封装,从而将其从 MPLS 数据包转换为 IP 数据包,并使用 IP 转发表中的信息将数据包转发到最终目的地。每个 LSP 只能有一台出口路由器。LSP 中的入口路由器和出口路由器不能是同一个路由器。
中转路由器 — LSP 中入口路由器和出口路由器之间的任何中间路由器。中转路由器将收到的 MPLS 数据包转发到 MPLS 路径中的下一个路由器。一个 LSP 可以包含零个或多个中转路由器,单个 LSP 中最多可容纳 253 台中转路由器。
单个路由器可以是多个 LSP 的一部分。它可以是一个或多个 LSP 的入口或出口路由器,也可以是一个或多个 LSP 中的中转路由器。每个路由器支持的功能取决于您的网络设计。
为 LSP 配置入口和出口路由器地址
以下部分介绍如何指定 LSP 入口和出口路由器的地址:
为 LSP 配置入口路由器地址
本地路由器始终被视为入口路由器,这是 LSP 的开头。软件会自动确定用于到达 LSP 中的下一个路由器的正确传出接口和 IP 地址。
默认情况下,路由器 ID 被选为入口路由器的地址。要覆盖源地址的自动选择,请在语句中 from 指定源地址:
from address;
您可以在以下层级包含此语句:
[edit protocols mpls label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
LSP 使用的传出接口不受您配置的 源地址的影响。
为 LSP 配置出口路由器地址
配置 LSP 时,必须通过包含以下 to 语句来指定出口路由器的地址:
to address;
您可以在以下层级包含此语句:
[edit protocols mpls label-switched-path lsp-name][edit protocols mpls static-label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
设置信号 LSP 时, to 语句是唯一必需的语句。所有其他语句都是可选的。
LSP建立后,出口路由器的地址将作为主机路由安装在路由表中。然后,BGP 可以使用此路由转发流量。
要让软件通过 LSP 发送 BGP 流量,出口路由器的地址与 BGP 下一跃点的地址相同。您可以将出口路由器的地址指定为路由器的任何一个接口地址或 BGP 路由器 ID。如果指定不同的地址,即使该地址位于同一路由器上,也不会通过 LSP 发送 BGP 流量。
要确定 BGP 下一跃点的地址,请使用命令 show route detail 。要确定 LSP 的目标地址,请使用命令 show mpls lsp 。要确定路由是否通过了 LSP,请使用 show route or show route forwarding-table 命令。在最后两个命令的输出中, label-switched-path 路由中包含的 or push 关键字表示它已通过 LSP。此外,还可以使用命令 traceroute 跟踪路由指向的实际路径。这是路由是否已通过 LSP 的另一个指示。
您还可以通过定义设置路由下一跃点地址的 BGP 导入策略过滤器来操作 BGP 下一跃点的地址。
防止将出口路由器地址添加到路由表
您必须为所有 LSP 使用该to语句配置地址。此地址始终作为前缀安装/32在 inet.3 或 inet.0 路由表中。您可以通过包含语no-install-to-address句来防止将使用语句配置to的出口路由器地址添加到 inet.3 和 inet.0 路由表中。
不在 inet.3 和 inet.0 路由表中安装 to 语句地址的部分原因包括:
允许将受限最短路径优先 (CSPF) RSVP LSP 映射到用于辅助环路地址的流量。如果配置 RSVP 隧道(包括语
no-install-to-address句),然后稍后再配置策略install pfx/ <active>,则可以执行以下操作:验证 LSP 设置是否正确,而不会影响流量。
以增量步骤将流量映射到 LSP。
故障排除完成后,通过移除
no-install-to-address该语句,将流量映射到目标环路地址(BGP 下一跃点)。
防止 CCC 连接丢失 IP 流量。当 LSP 确定自己不属于某个连接时,它会在 inet.3 路由表中安装使用语句指定的
to地址。然后,IP 流量被转发到 CCC 远程端点,这可能会导致某些类型的 PIC 发生故障。
要防止使用该 to 语句配置的出口路由器地址添加到 inet.3 和 inet.0 路由表中,请包含以下 no-install-to-address 语句:
no-install-to-address;
您可以在以下层级包含此语句:
[edit protocols mpls label-switched-path lsp-name][edit protocols mpls static-label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
为 MPLS 信号 LSP 配置入口路由器
MPLS 信号标签交换路径 (LSP) 从特定入口路由器运行到特定出口路由器。对于基本的 MPLS 信令 LSP 功能,您必须配置入口路由器,但不必配置任何其他路由器。
要配置信号 LSP,请在入口路由器上执行以下任务:
创建命名路径
要配置信号 LSP,必须先在入口路由器上创建一个或多个命名路径。对于每条路径,您可以指定路径中的部分或全部中转路由器,也可以将其留空。
每个路径名最多可包含 32 个字符,并可包含字母、数字、句点和连字符。该名称在入口路由器中必须是唯一的。创建命名路径后,您可以将命名路径与 or secondary 语句一起使用primary,以在层次结构级别配置 [edit protocols mpls label-switched-path label-path-name] LSP。您可以在任意数量的 LSP 上指定相同的命名路径。
要确定 LSP 是否与 RSVP 会话中的主路径或辅助路径相关联,请发出命令 show rsvp session detail 。
要创建空路径,请通过包含以下形式的 path 语句来创建命名路径。这种形式的 path 语句为空,表示接受入口路由器和出口路由器之间的任何路径。实际上,所使用的路径往往与基于目标的尽力而为流量所遵循的路径相同。
path path-name;
您可以在以下层级包含此语句:
[edit protocols mpls][edit logical-systems logical-system-name protocols mpls]
要创建在路径中指定部分或全部传输路由器的路径,请采用以下形式的 path 语句,为每个传输路由器指定一个地址:
path path-name { (address | hostname) <strict | loose>; }
您可以在以下层级包含此语句:
[edit protocols mpls][edit logical-systems logical-system-name protocols mpls]
在这种形式的 path 语句中,您可以指定一个或多个中转路由器地址。指定入口或出口路由器是可选的。您可以指定每个传输路由器的地址或主机名,但如果其类型为 loose,则无需列出每个传输路由器。按顺序指定地址,从入口路由器(可选)或第一个中转路由器开始,沿路径依次一直到出口路由器(可选)或出口路由器之前的路由器。每个路由器跃点只需指定一个地址。如果为同一路由器指定多个地址,则仅使用第一个地址;附加地址将被忽略并截断。
对于每个路由器地址,您可以指定类型,可以是以下类型之一:
strict—(默认)从上一个路由器到此路由器的路由是直接路径,不能包含任何其他路由器。如果是接口地址,则address此路由器还将确保传入接口是指定的接口。当前一个路由器与此路由器之间存在并行链路时,确保传入接口是指定的接口非常重要。它还确保可以基于每个链路实施路由。对于严格地址,您必须确保正在配置的路由器之前的路由器与该路由器直接连接。地址可以是环路接口地址,在这种情况下,不检查传入接口。
loose— 从上一个路由器到此路由器的路由不必是直接路径,可以包括其他路由器,并且可以在任何接口上接收。地址可以是任意接口地址或环路接口的地址。
示例:创建命名路径
配置路径 to-hastings,以指定从入口路由器到出口路由器10.14.1.1的完整严格路径,通过 、 10.13.1.110.12.1.1和 10.11.1.1,按此顺序排列。除了指定的路由器外,不能有任何中间路由器。但是,与出口路由器之间10.11.1.1可以存在中间路由器,因为语句中path未特别列出出口路由器。要在出口之前阻止中间路由器,请将出口路由器配置为最后一个路由器,类型。strict
[edit protocols mpls]
path to-hastings {
10.14.1.1 strict;
10.13.1.1 strict;
10.12.1.1 strict;
10.11.1.1 strict;
}
创建路径 alt-hastings,以允许路由器 10.14.1.1 和 10.11.1.1之间任意数量的中间路由器。此外,允许在出口路由器之间 10.11.1.1 使用中间路由器。
[edit protocols mpls]
path alt-hastings {
10.14.1.1 strict;
10.11.1.1 loose;
}
使用命运共享配置备用备份路径
可以创建一个信息数据库,约束最短路径优先 (CSPF) 用于计算一个或多个备份路径,以防主路径变得不稳定。该数据库描述了网络元素(例如路由器和链路)之间的关系。因为这些网络元素有着相同的命运,所以这种关系被称为命运共享。
您可以配置备用路径,尽可能减少共享链路的数量和具有主路径的光纤路径,以确保在光纤被切断时,丢失的数据量最小,并且到目标的路径仍然存在。
为了使备用路径以最佳方式工作,它不得与主路径共享链路或物理光纤路径。这样可以确保单点故障不会同时影响主路径和备份路径。
以下章节介绍如何配置命运共享及其对 CSPF 的影响,并提供命运共享配置示例:
配置命运共享
要配置命运共享,请包含以下 fate-sharing 语句:
fate-sharing { group group-name { cost value; from address <to address>; } }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
每个命运共享组必须有一个名称,最长可达 32 个字符,并且可以包含字母、数字、句点 (.) 和连字符 (-)。您最多可以定义 512 个组。
命运共享组包含三种类型的对象:
点对点链路 — 由链路两端的 IP 地址标识。未编号的点对点链路通常通过从其他接口借用 IP 地址来识别。秩序并不重要;
from 10.1.3.4 to 10.1.3.5并from 10.1.3.5 to 10.1.3.4具有相同的含义。非点对点链路 — 包括 LAN 接口(如千兆以太网接口)或非广播多路访问 (NBMA) 接口(如异步传输模式 [ATM] 或帧中继)上的链路。您可以通过这些链路的单独接口地址来识别它们。例如,如果 LAN 接口
192.168.200.0/24连接了四台路由器,则每个路由器链路都将单独标识:from 192.168.200.1; # LAN interface of router 1 from 192.168.200.2; # LAN interface of router 2 from 192.168.200.3; # LAN interface of router 3 from 192.168.200.4; # LAN interface of router 4
您可以按任意顺序列出地址。
路由器节点 — 由其配置的路由器 ID 标识。
组中的所有对象都有某些相似之处。例如,您可以为共享相同光纤导管的所有光纤、共享相同光纤的所有光纤通道、连接到同一 LAN 交换机的所有链路、共享相同电源的所有设备等定义一个组。所有对象都被视为 /32 主机地址。
要使组有意义,它应至少包含两个对象。您可以使用零个或一个对象配置组;在处理过程中将忽略这些组。
一个对象可以位于任意数量的组中,一个组可以包含任意数量的对象。每个组都有一个可配置的成本,该成本表示该组对 CSPF 计算的影响级别。成本越高,备份路径与主路径共享组中任何对象的可能性就越小。成本可与流量工程指标直接比较。默认情况下,成本为 1。在 CSPF 的下一次重新优化之前,更改命运共享数据库不会影响已建立的 LSP。命运共享数据库确实会影响快速重新路由计算。
对 CSPF 的影响
当 CSPF 计算 LSP 的主路径(或主路径不活动时的辅助路径)时,它会忽略命运共享信息。您总是希望为主路径找到最佳路径(最低 IGP 成本)。
当 CSPF 在(同一 LSP 的)主路径处于活动状态时计算辅助路径时,会发生以下情况:
CSPF 标识与主路径关联的所有命运共享组。CSPF 通过识别主路径遍历的所有链路和节点,并编译包含至少一个链路或节点的组列表来实现这一点。CSPF 会忽略搜索中的入口和出口节点。
CSPF 根据编译的组列表检查流量工程数据库中的每个链路。如果链路是组的成员,则链路的成本将乘以组的成本。如果一个链路是多个组的成员,则所有组成本将加在一起。
CSPF 对流量工程数据库中的每个节点(入口和出口节点除外)执行检查。同样,一个节点可以属于多个组,因此成本是累加的。
路由器使用调整后的拓扑执行常规 CSPF 计算。
与绕过 LSP 共享命运时对 CSPF 的影响
当通过链路保护或链路节点保护启用命运共享时,CSPF 在计算绕过 LSP 路径时将按如下方式运行:
CSPF 标识与主 LSP 路径关联的命运共享组。CSPF 通过识别旁路试图保护的直接下游链路和直接下游节点来实现这一点。CSPF 编译包含直接下游链路和直接下游节点的组列表。
CSPF 根据编译的组列表检查流量工程数据库中的每个链路(从入口节点到直接下游节点)。如果链路是组的成员,则链路的成本将乘以组的成本。
CSPF 识别不在命运共享路径中的下游链路。
当有可行的备选方案可用时,此计算可防止旁路使用与主 LSP 路径相同的物理链路。
示例:配置命运共享
配置命运共享组 east 和 west.因为没有对象,所以 west 在处理过程中会忽略它。
[edit routing-options]
fate-sharing {
group east {
cost 20; # Optional, default value is 1
from 10.1.3.4 to 10.1.3.5; # A point-to-point link
from 192.168.200.1; # LAN interface
from 192.168.200.2; # LAN interface
from 192.168.200.3; # LAN interface
from 192.168.200.4; # LAN interface
from 10.168.1.220; # Router ID of a router node
from 10.168.1.221; # Router ID of a router node
}
group west {
.....
}
}
为 MPLS 信号 LSP 配置中间路由器和出口路由器
要在应参与 MPLS 的所有 MPLS 路由器上配置信号 LSP,需要在这些路由器上启用 MPLS 和 RSVP。
配置入口路由器和出口路由器之间的连接
入口路由器可能会多次尝试使用主路径连接和重新连接到出口路由器。您可以控制入口路由器尝试使用主路径建立连接的频率,以及它在重试尝试之间的等待时间。
重试计时器用于配置入口路由器在尝试使用主路径再次连接到出口路由器之前等待的时间。默认重试时间为 30 秒。时间可以从 1 到 600 秒。要修改此值,请包含以下语 retry-timer 句:
retry-timer seconds;
您可以在以下层级配置此语句:
[edit protocols mpls label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
默认情况下,入口路由器尝试使用主路径建立或重新建立与出口路由器的连接的次数没有限制。要限制尝试次数,请包含以下 retry-limit 语句:
retry-limit number;
您可以在以下层级配置此语句:
[edit protocols mpls label-switched-path lsp-name][edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
限制可以是最大 10,000 的值。超过重试限制时,不再尝试建立路径连接。此时,需要进行干预才能重新启动主路径。
如果设置重试限制,则每次成功创建主路径时,重试限制都会重置为 1。
对 LSP 执行 Ping 操作
以下部分介绍如何使用命令 ping mpls 确认 LSP 功能。
- 对 MPLS LSP 执行 Ping 操作
- Ping 点对多点 LSP
- ping MPLS LSP 的端点地址
- 对 CCC LSP 进行 Ping 操作
- Ping 3 层 VPN
- 支持基于 RFC 4379 的 LSP ping 和 traceroute 命令
对 MPLS LSP 执行 Ping 操作
您可以对特定 LSP 使用 Ping 命令。回显请求通过 LSP 作为 MPLS 数据包发送。有效负载是转发到 127/8 范围内的地址(默认为 127.0.0.1,此地址可配置)和端口 8503 的用户数据报协议 (UDP) 数据包。用于构建和发送此信息作为 MPLS 数据包的标签和接口信息与标准 LSP 流量相同。
当回显请求到达出口节点时,接收方会检查数据包的内容,并使用 UDP 发送包含正确返回值的回复。发送回显请求的路由器在超时 2 秒后等待接收回显回复(您无法配置此值)。
您必须在远程路由器上的层次结构级别配置 [edit protocols mpls] MPLS,以便能够对终止于该位置的 LSP 使用 Ping。即使您只打算对 LDP 转发同等类 (FEC) 执行 ping 操作,也必须配置 MPLS。
要对 MPLS LSP ping mpls <count count> <ldp <fec>> <rsvp <exp forwarding-class> <lsp-name>> 使用 Ping 命令。要对辅助 MPLS LSP ping mpls <count count> <rsvp <lsp-name>> standby path-name 使用 Ping 命令。有关此命令的详细说明,请参阅 CLI 资源管理器。
路由实例中不支持该 ping mpls 命令。
主实例支持自 ping,但基于 VLAN 的 LSP 或 CCC 中使用的 LSP 不支持。将为每个 LSP 显示该消息,并降低配置的可读性。
Ping 点对多点 LSP
要对点对多点 LSP 执行 ping 命令,请使用 ping mpls rsvp lsp-name multipoint or ping mpls rsvp egress address 命令。该 ping mpls rsvp lsp-name multipoint 命令返回所有出口路由器标识符的列表以及点对多点 LSP 出口路由器的当前状态。该 ping mpls rsvp lsp-name multipoint egress address 命令返回指定出口路由器的当前状态。
ping MPLS LSP 的端点地址
要确定两个提供商边缘 (PE) 路由器之间的 LSP 是否已启动并正在运行,可以 ping LSP 的端点地址。要对 MPLS LSP 端点 ping mpls lsp-end-point address ping 命令。此命令告诉您哪种类型的 LSP(RSVP 或 LDP)在指定的地址终止,以及该 LSP 是开机还是关机。
有关此命令的详细说明,请参阅 CLI 资源管理器。
对 CCC LSP 进行 Ping 操作
您可以对特定的 CCC LSP 使用 Ping 命令。CCC LSP ping 命令与用于 MPLS LSP 的命令相同。您使用的命令是 ping mpls <count count> <rsvp <lsp-name>>。您还可以使用命令 ping mpls <count count> <rsvp <lsp-name>> standby path-name 对辅助备用 CCC LSP 使用 Ping 命令。
有关此命令的详细说明,请参阅 CLI 资源管理器。
Ping 3 层 VPN
您可以使用类似的命令 ping mpls l3vpn vpn-name prefix prefix <count count>,对第 3 层 VPN 执行 ping 命令。有关此命令的更多信息,请参阅适用于 路由设备的 Junos OS VPN 库 和 CLI 资源管理器。
支持基于 RFC 4379 的 LSP ping 和 traceroute 命令
Junos OS 支持 LSP 和基于 RFC 4379 的命令,可检测多协议标签交换 (MPLS) 数据平面故障。traceroute ping
LSP ping 和 traceroute 基于 RFC 4379 的命令尝试依靠 MPLS TTL 到期来跟踪 LSP 所采取的路径。LSP 可以采用从入口到出口的多条路径。等价多路径 (ECMP) 尤其会遇到这种情况。LSP traceroute 命令可以跟踪到 LSP 节点的所有可能路径。