4. IGP与MPLS协同部署

在Juniper MX的MPLS承载网中,IGP不只是“把路由算出来”的工具,它同时承担着为MPLS提供可达性、为RSVP-TE提供路径信息、为LDP提供下一跳解析的三重职责。如果IGP与MPLS的协同设计不到位,典型症状是:LDP会话建立但FEC无法映射、RSVP-TE隧道能建但路径不最优、或者主备路径切换后流量黑洞。本节围绕OSPF/IS-IS扩展、流量工程扩展、链路度量与MPLS可达性设计四个关键点展开。

一、IGP扩展:让IGP“携带”MPLS所需的信息

OSPF和IS-IS本身是纯IP路由协议,要让它们服务于MPLS,必须通过扩展TLV携带额外信息。在Juniper MX上,最核心的扩展有三类:

  • 流量工程扩展:OSPF使用Opaque LSA(Type 10),IS-IS使用TLV 22(Extended IS Reachability)。它们携带链路的最大带宽、最大可预留带宽、当前预留带宽、管理组(Admin Group)和TE度量。没有这些信息,CSPF就无法计算显式路径。
  • 路由器ID与TE Router ID:OSPF用Router ID,IS-IS用Traffic Engineering Router ID TLV(TLV 134)。RSVP-TE建立LSP时,路径上的每一跳必须能解析到TE Router ID对应的地址,否则Path消息无法逐跳转发。
  • 前缀与标签关联:LDP需要IGP提供到下一跳的精确路由。如果IGP只发布聚合路由,而LDP的FEC是明细前缀,就会出现“有路由但无标签”的情况。

在MX上启用TE扩展的典型配置如下(以IS-IS为例):

protocols {
    isis {
        level 1 disable;
        level 2 {
            wide-metrics-only;
            traffic-engineering;
        }
        interface ge-0/0/0.0 {
            level 2 {
                metric 100;
            }
        }
    }
}

其中wide-metrics-only是必须的,因为窄度量只有6位,无法承载TE所需的带宽和度量信息。OSPF侧则需要在接口下启用traffic-engineering,并确保Opaque LSA不被过滤。

二、流量工程扩展:CSPF的“输入数据”从哪来

RSVP-TE建立LSP时,CSPF需要知道每条链路的可用资源。这些资源不是RSVP自己发现的,而是IGP通过TE扩展泛洪出来的。具体来说,每条链路会携带以下参数:

参数含义MX配置位置
最大带宽链路物理带宽,单位bpsinterface bandwidth
最大可预留带宽RSVP可预留的上限subscription-factor
当前预留带宽已建立LSP占用的带宽动态计算
管理组链路颜色,用于亲和性约束admin-group
TE度量CSPF计算路径的权重te-metric

一个常见的工程问题是:IGP度量与TE度量不一致。IGP度量用于普通IP转发,TE度量用于CSPF计算。如果两者混用,可能导致RSVP-TE路径与IGP最短路径不一致,进而影响LDP与RSVP的共存。建议在MX上显式配置te-metric,使其与IGP度量保持独立,便于分别优化。

三、链路度量设计:不是“越小越好”

链路度量直接决定IGP最短路径树,进而决定LDP的下一跳和RSVP-TE的默认路径。在MX承载网中,度量设计通常遵循以下原则:

  • 核心链路度量小于接入链路:确保流量优先走核心,避免绕行。
  • 对称设计:A到B的度量与B到A的度量应一致,否则RSVP-TE的返回路径可能不对称。
  • 预留TE度量余量:TE度量可以比IGP度量更细,用于区分同代价链路。例如两条核心链路IGP度量都是10,但TE度量分别为10和20,CSPF会优先选10的那条。
  • 避免“度量陷阱”:如果某条链路IGP度量很小但带宽不足,LDP会把大量流量引过去,造成拥塞。此时应通过TE度量或管理组将其排除在CSPF首选路径之外。

在MX上,IS-IS的度量配置在接口下,OSPF则通过metric命令。注意:IS-IS wide metric支持24位,OSPF metric是16位,跨协议迁移时需要重新规划量级。

四、MPLS可达性设计:LDP与RSVP的“地基”

MPLS可达性包含两层含义:一是IGP必须发布所有LSR的Loopback地址,因为LDP和RSVP都用Loopback作为Router ID;二是IGP必须发布链路地址,以便LDP的下一跳解析。在MX上,推荐的做法是:

  1. 所有参与MPLS的接口都启用IGP,包括核心链路和Loopback。
  2. Loopback地址使用/32掩码,并在IGP中精确发布,不做聚合。
  3. 如果使用LDP,确保ldp与isis或ospf在同一接口下同时启用。
  4. 如果使用RSVP-TE,确保TE Router ID与Loopback地址一致,避免Path消息找不到下一跳。

一个典型的故障场景是:LDP会话Up,但show ldp database中只有本地FEC,没有远端FEC。原因往往是IGP没有发布远端Loopback的/32路由,或者该路由被策略过滤。此时应检查show route protocol isis或show route protocol ospf,确认远端Loopback是否在路由表中。

IGP与MPLS协同:信息流与依赖关系 IGP域(OSPF/IS-IS) MX-A Loopback 10.0.0.1/32 MX-B Loopback 10.0.0.2/32 MX-C Loopback 10.0.0.3/32 IGP metric 10 TE metric 10 IGP metric 10 TE metric 20 TE扩展泛洪: 最大带宽 / 可预留带宽 / 管理组 / TE度量 / TE Router ID OSPF Opaque LSA Type 10 | IS-IS TLV 22 + TLV 134 MPLS控制平面 LDP • 依赖IGP发布/32 Loopback路由 • 下一跳由IGP最短路径决定 • FEC必须与IGP前缀精确匹配 ✗ 聚合路由会导致标签缺失 RSVP-TE • CSPF输入来自IGP TE扩展 • TE Router ID必须可达 • 管理组/带宽约束由IGP泛洪 ✗ TE度量与IGP度量混用会路径异常

上图展示了IGP与MPLS控制平面的信息依赖关系。可以看到,LDP和RSVP-TE虽然都是MPLS信令协议,但它们对IGP的依赖点不同:LDP依赖IGP的前缀可达性,RSVP-TE依赖IGP的TE扩展信息。在MX上部署时,必须同时满足这两类需求,否则会出现“LDP正常但TE隧道建不起来”或“TE隧道正常但LDP标签不分配”的割裂现象。

工程建议:在MX上启用MPLS前,先用show isis database detail或show ospf database opaque-area确认TE扩展TLV已泛洪;再用show route protocol isis确认所有Loopback /32路由存在。这两步是MPLS可达性设计的最小检查集。

最后需要强调:IGP与MPLS的协同不是“配完就完”,而是一个持续校验的过程。链路度量调整、TE带宽预留变化、新增节点Loopback发布,都会影响LDP和RSVP的行为。建议在变更后依次检查IGP邻居、TE数据库、LDP会话和RSVP会话状态,确保四者一致。只有IGP、TE扩展、度量设计和MPLS可达性四者对齐,MX承载网才能稳定地同时承载LDP和RSVP-TE业务。