MPLS交换路由器的设计与实现( 二 )


2. MPLS路由器的结构
MPLS路由器采用高速交换、分布式转发和集中式治理相结合 。当前路由器设计采用的主流结构由接口卡、交换结构和CPU卡组成 。CPU卡的主要功能是运行路由协议(BGP、OSPF或RIP)和MPLS信令(LDP/CR-LDP),负责各接口卡上的路由表、FIB表以及ILM表的更新以及同步,同时它还完成接纳控制、资源治理以及某些设备治理功能 。接口卡完成物理层处理、MAC层处理、IP层处理,主要包括MPLS分类、业务分类以及排队和调度功能 。
图2给出的是MPLS交换路由器的概念模型,由以下主要组件组成:CR-LDP/LDP、MPLS分类器、业务分类器、地址分类器、接纳控制、资源治理和队列治理器等 。各模块主要功能如下:
LDP/CR-LD:产生和处理LDP/CR-LDP消息;
MPLS分类器:为进入的分组分类,并为相应的分组执行标签的操作,如压栈、弹栈和标签交换;
业务分类器:根据标签、入接口以及MPLS头中的CoS对分组进行业务分类,并把分组与相应的队列关联起来;
接纳控制:检查CR-LDP中携带的流量参数,并判定该路由器是否有足够的资源来满足所需的QoS要求;
资源治理:治理资源信息以及队列的参数,主要包括带宽和缓存等;
队列治理器:治理队列中的分组,完成分组的调度,使其获得相应的服务 。
二、 标签交换路由器的设计
1. MPLS标签交换以及流量处理
MPLS标签交换以及流量处理主要在接口卡上完成,本节介绍接口卡具体功能,我们在此不讨论物理层和MAC层的处理 。如图3所示,当MPLS路由器接收到一个分组后,它执行如下的操作:
(1)MPLS分类器首先判定接收到的分组是带标签的还是不带标签的 。假如携带了标签,MPLS分类器就通过查询ILM表得到相应的标签,然后对分组执行标签交换 。假如未携带标签,则查询FIB表,若其对应的LSP存在,就与携带标签一样处理 。否则,分组被发送到地址分类器 。
(2)地址分类器根据路由表对分组执行第三层转发 。
 (3)假如分组的下一跳就是自己,分组就被送到端口分类器中,然后根据端口号送往相应的上层应用处理程序,如LDP/CR-LDP、OSPF、BGP等 。否则,就根据查询的结果进入队列治理器进行排队,等候服务 。
(4)当业务分类器接收到来自MPLS分类器的分组后,查找ERB表得到相应的ServiceID,ServiceID指示了分组应该被怎么排队 。然后根据ServiceID以及输出接口信息,分组被发送到相应的队列中,并得到相应QoS的服务 。来自地址分类器的分组就直接发送到相应输出接口的最低优先级队列进行排队 。
从以上分组转发的过程我们看到,分组处理时需要以下4个表:
FIB表只有在入口LSR上保存该表,它记录了FEC到标签的映射信息;
 ILM表每个LSR上都保存该表,它记录了已建立的LSP的信息,为携带标签的分组进行标签交换提供信息,它主要包括入/出标签和入/出接口;
ERB表主要维护分组的排队信息,为不同等级的业务提供不同QoS的保证;
 路由表与传统的路由表相同,由路由协议维护,主要完成第三层转发信息的存储 。
2. 资源预留
接纳控制和资源治理器组件是为了实现资源治理而设计的 。资源治理器负责为队列治理器创建和维护队列提供参数信息并且负责资源信息的治理(如资源表) 。
图4所示为MPLS路由器对资源预留消息的处理过程 。当LDP/CR-LDP组件接收到CR-LDP的Request消息时,它调用接纳控制来检查路由器是否有足够的资源 。假如有,接纳控制模块通过更新资源表来预留资源,然后LDP的Request消息被发送到下一个节点 。

推荐阅读