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配置位置 |
|---|---|---|
| 最大带宽 | 链路物理带宽,单位bps | interface 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上,推荐的做法是:
- 所有参与MPLS的接口都启用IGP,包括核心链路和Loopback。
- Loopback地址使用/32掩码,并在IGP中精确发布,不做聚合。
- 如果使用LDP,确保
ldp与isis或ospf在同一接口下同时启用。 - 如果使用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控制平面的信息依赖关系。可以看到,LDP和RSVP-TE虽然都是MPLS信令协议,但它们对IGP的依赖点不同:LDP依赖IGP的前缀可达性,RSVP-TE依赖IGP的TE扩展信息。在MX上部署时,必须同时满足这两类需求,否则会出现“LDP正常但TE隧道建不起来”或“TE隧道正常但LDP标签不分配”的割裂现象。
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业务。