• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    MPLS QoS实现介绍

    作者:  |  上传时间:2011-04-22  |  关键字:网络大爬虫4-QoS专题

    文/陶豆

    1.前言

    MPLS,即多协议标签交换(Multiprotocol Label Switching),它使用标签转发替代了传统的路由转发,路由功能强大、灵活,可以满足各种新应用对网络的要求,而且其核心技术可扩展到多种网络协议(IPv6、IPX等)。目前这种技术被广泛地应用于大规模网络的组建,在MPLS网络中实现服务质量(QoS)也就成为必须考虑的问题。

    2.MPLS QoS实现介绍

    对于网络业务来说,服务质量(QoS)包括传输的带宽、传送的时延、数据的丢包率等,根据网络对应用的控制能力的不同,可以把网络QoS能力分为以下三种等级:尽力而为的服务、区分服务、保证服务。

    2.1 保证服务(IntServ)

    保证服务是通过信令(signal)来完成的,应用程序首先通知网络它自己的流量参数和需要的特定服务质量请求,包括带宽、时延等,应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后,才开始发送报文,同时应用程序发出的报文应该控制在流量参数描述的范围以内。负责完成保证服务的信令为RSVP(Resource Reservation Protocol,资源预留协议),它通知路由器应用程序的QoS需求。

    在MPLS中,InteServ的实现过程也是类似的,下面详细说明:

    在上图的环境中,LSR1、LSR2、LSR3之间为MPLS网络。如果LSR1想建立一条到LSR3的预留路径,它就会经过LSR2向LSR3发送一个RSVP的PATH消息。LSR3收到这个RSVP PATH消息后,就从它的标签池中分配一个标签(7),并向LSR2发出一条RESV消息,消息携带分配的标签(7)。同时LSR3在自己的LFIB中指定该标签(7)为输入标签。LSR2收到这个RESV消息后,在LFIB中将该标签(7)作为输出标签,同时它还会分配一个新标签(3)作为输入标签,并将该标签(3)随RESV消息发送给LSR1。如此这样,随着各节点对携带标签的RESV消息的处理,沿着RESV路由建立起一条LSP,每台LSR可以把QoS资源和LSP建立关联。

    当LSR2从LSR1收到一个具有标签3的数据包时,它可以在LFIB中查询标签,并应用与这个LSP关联的所有QoS机制,而不需要检查IP或传送层包头。

    另外,还有一种方式实现保证服务,这种方式需要在MPLS QoS 网络入口处进行约束计算,然后发起携带显示路由的资源预留申请。如下图所示:

    [duxy1]

    如果希望沿着从LSR1到LSR3的路径建立起一个预留,LSR1就查询它的链路状态数据库,并在向节点LSR3发送一条PATH消息之前,选择一条到达LSR3的路径。这条路径将需要满足穿越所有链路的带宽需求限制,以支持这个预留,而且需要在中间节点上具有足够的缓冲空间,以适应预留数据流的突发。在获得这条路径后,LSR1就把一个显示路由对象插入到这条PATH消息中,确保LSP将会沿着选择的路径建立。这样的LSP被成为”保证带宽的LSP”。

    2.2 区分服务(DifferServ)

    IP QoS实现区分服务的方法是:在网络的边缘进行流量分类,将流量划分为多个优先级或多个服务类,如使用IP报文头的ToS(Type of service,服务类型)字段的前三位(即IP优先级)来标记报文,可以将报文最多分成23 = 8类;若使用DSCP(Differentiated Services Codepoint,区分服务编码点,ToS域的前6位),则最多可分成26 = 64类。在报文发送途径中的每一跳(HOP)通过检查报文的DSCP或ToS字段,确定该数据包要求的QoS,这种行为称为”每跳行为(Per-Hop Behavior,PHB)”。

    而在MPLS网络中,依靠标签转发的路由器可能不会检查IP报文头的内容,也就无法通过ToS或DSCP字段来进行流量分类。

    在MPLS报文头中,有一个3bit的扩展(exp)字段,这一字段被用来承载DiffServ信息。


    因此在MPLS网络中,流量分类主要通过如下两种方案实行:

    第一种解决方案适用于少于8个PHB的网络,映射直接进行:特定的DSCP对应特定的EXP组合,映射到特定的PHB中。转发时报文根据标签转发,而由EXP位决定PHB。EXP可以从承载在LSP中的IP数据包的DSCP或ToS拷贝,也可以由MPLS网络运营商设置。我们称这种从EXP位推导得出PHB的LSP为E-LSP。

    第二种解决方案适用于支持8个以上PHB的网络。在此EXP位不能单独承载所有的必要信息区分不同的PHB。MPLS报头中可用于该目的的唯一一个字段只有标签。在转发期间,标签决定数据包转发路径,并为其分配调度行为;而EXP位则携带分配给数据包的丢弃优先级信息,因此PHB由标签和EXP位来决定。由于标签与逐跳行为之间存在联系,因此当建立LSP信令时需要传输此类信息,这种使用标签来传输所需PHB信息的LSP被称为L-LSP。L-LSP可传输来自单一PHB的数据包,也可以传输采用相同调度政策.但丢弃优先级不同的多个PHB的数据包。

    按照这样的方法实现了流量分类后,流量整形、流量监管、拥塞避免等等QoS实现方法就和IP网络中的完全相同了。

    2.3区分服务的隧道化模式

    MPLS 网络实质上是为其承载的业务提供了一种隧道化服务,在RFC3270中,定义了三种MPLS区分服务的隧道化模式。第一种为管道模型(Pipe Model)。在该模式中,MPLS隧道的区分服务信息(即LSP区分服务信息,比如MPLS标签的EXP字段)与业务数据的区分服务信息(称为隧道化的区分服务信息,比如IP头的优先级字段)的操作是完全独立的。因此,业务数据的信息可以透明地从MPLS网络的一个站点传送到另一个站点。

    具体说来,管道模式以如下方式决定QoS行为并处理区分服务信息。

    在入站LSR上,LSP区分服务信息可以手工设置,也可以从隧道化的区分服务信息中获得。

    在转发路径中的LSR上,出站标签的LSP区分服务信息来自入站标签的LSP区分信息。

    在出站LSR上,依据LSP区分服务信息决定报文转发的QoS行为,但LSP区分服务信息不会复制到隧道化的区分服务信息中去。

    第二种模型是管道模型的一个变种,称为短管道模型(Short Pipe Model)。它与管道模型的区别在于:在出站LSR上,决定报文转发的QoS行为的依据是隧道化区分服务信息,而不是LSP区分服务信息。当然,与管道模型一样,LSP区分服务信息也不会复制到隧道化的区分服务信息中去。

    RFC3270描述的最后一种模型叫做统一模型(Uniform Model)。所谓统一是指LSP区分服务信息与隧道化区分服务信息一致,即最外层标签也包含了业务数据的QoS信息。这种模型的具体操作规则为:

    在入站LSR上,隧道化区分服务信息必须要复制到LSP区分服务信息中去。

    在转发路径中的LSR上,出站标签的LSP区分服务信息来自入站标签的LSP区分信息。

    在出站LSR上,LSP区分服务信息必须要复制到隧道化区分服务信息中去。

    在RFC3270中规定,管道模型是必须支持的模型。事实上,目前,主流厂商都通过QoS命令行的配置方式来支持三种模型的操作,可以看出,关键是通过控制LSP区分服务信息和隧道化区分服务的信息之间的映射,以在MPLS网络环境中实施与纯IP环境相类似的QoS手段。4MPLS QoS实现举例:

    在上面的MPLS VPN网络中:

    用户从一个CE2站点向另外一个CE4站点发送IP数据流。数据流被发送到了网络边缘的PE路由器后,根据IP报文头中的ToS或DSCP字段,数据流被分类并实现了IP网络中的QoS,如CAR等。然后报文被打上MPLS标签,标签中的exp字段可以从IP报文头中的ToS字段拷贝,也可以按照MPLS网络策略的配置,根据数据包的类型,输入接口等其他因素而被重新赋值。然后打标签的数据报文将被发送到MPLS网络中,网络中的P路由器可以根据MPLS报文头的exp字段对报文提供WFQ和WRED等QoS服务。而报文到达对端的PE4后,MPLS标签弹出,该报文在IP网络中再次根据IP报文头中的ToS(DSCP)分类实现IP QoS。


    [duxy1]这句话好像是对前面例子的说明,与后面例子关系不大,请确认。