基本概念

在MPLS详细转发过程中涉及的相关概念如下:

  • Tunnel ID为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。
  • NHLFE下一跳标签转发表项NHLFE(Next Hop Label Forwarding Entry)用于指导MPLS报文的转发。NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。FEC到一组NHLFE的映射称为FTN(FEC-to-NHLFE)。通过查看FIB表中Tunnel ID值不为0x0的表项,能够获得FTN的详细信息。FTN只在Ingress存在。
  • ILM入标签到一组下一跳标签转发表项的映射称为入标签映射ILM(Incoming Label Map)。ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。ILM在Transit节点的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。

详细转发过程

MPLS详细转发过程

MPLS详细转发过程如所示。

当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。

  • 如果Tunnel ID值为0x0,则进入正常的IP转发流程。
  • 如果Tunnel ID值不为0x0,则进入MPLS转发流程。

在MPLS转发过程中,FIB、ILM和NHLFE表项是通过Tunnel ID关联的。

  • Ingress的处理:通过查询FIB表和NHLFE表指导报文的转发。
  1. 查看FIB表,根据目的IP地址找到对应的Tunnel ID。
  2. 根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。
  3. 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。
  4. 在IP报文中压入出标签,并根据QoS策略处理EXP,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。
  • Transit的处理:通过查询ILM表和NHLFE表指导MPLS报文的转发。
  1. 根据MPLS的标签值查看对应的ILM表,可以得到Tunnel ID。
  2. 根据ILM表的Tunnel ID找到对应的NHLFE表项。
  3. 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。
  4. MPLS报文的处理方式根据不同的标签值而不同。
  • 如果标签值>=16,则用新标签替换MPLS报文中的旧标签,同时处理EXP和TTL,然后将替换完标签的MPLS报文发送给下一跳。
  • 如果标签值为3,则直接弹出标签,同时处理EXP和TTL,然后进行IP转发或下一层标签转发。
  • Egress的处理:通过查询ILM表指导MPLS报文的转发或查询路由表指导IP报文转发。
  • 如果Egress收到IP报文,则查看路由表,进行IP转发。
  • 如果Egress收到MPLS报文,则查看ILM表获得标签操作类型,同时处理EXP和TTL。
  • 如果标签中的栈底标识S=1,表明该标签是栈底标签,直接进行IP转发。
  • 如果标签中的栈底标识S=0,表明还有下一层标签,继续进行下一层标签转发。