您好,欢迎访问三七文档
第一部分,MPLS定位的思考MPLS是多协议标签交换的缩写,那么,MPLS在网络世界中是怎样的一种存在呢,即就是该如何定位MPLS多协议标签交换。首先,她仿佛是一堆协议,一个特殊的报文,从A到B,仿佛tcpip协议在网络层和传输层中的存在。她首先定义了一个标签,然后从一个标签迤逦拓展开来,在MPLS中,通过对标签进行分发(LDP协议),标签操作(交换,添加,移除),标签查找(LIB或LFIB完善并提供标签信息)和对一些特殊标签的定义,建立了一个宏伟的体系。在这个宏伟的体系之中,我们在此只会学习了解LDP标签分发协议的方方面面,现在就开始吧!第二部分,标签一MPLS标签是由32个比特组成,是有一个统一的标准结构,如下图,其可以被分为四个部分:标签:前20bit是标签位,但是前16比特是不可以随便定义的,他们都有特定的含义,具体什么含义我也不知道呀!试验用比特:即就是EXP,总共有3位,高位专用于服务质量QOS,服务质量是啥呢,其实就是利用一种方法使在相对于不太重要流量的基础上提高相对比较重要的流量的优先级以保证该流量的传输,那流量是啥呢?我想流量也就可以望文生义,只不过流是数据流而已,并且在有限带宽的网络上有目的的流动栈底位:只有一位,用来表示本标签是不是栈底标签,如果是,则该位置1,否则,该位为0,TTL:有8位,叫做生存周期,和IP报文中的TTL功能上是一样一样的,没经过一跳,改值就会减1,主要为了防止路由环路。在MPLS体系中,一个报文顶部可能会添加不止一个标签,并且标签数目无上限,如果有多个标签,哈哈,就会深刻体会到一个东西的存在,就是标签栈,标签栈:就是一堆标签的有序集合,先来都走(先贴上的标签,最后剥离),除了栈底标签的标签栈栈底位为1以外,其他标签栈栈底位都为0.在一个MPLS报文中,标签栈通常被放在二层报文头之后,三层报文头(被传输协议头部)之前。第三部分,标签转发关于标签交换路由器(LSR),标签交换路径(LSP)和等价转发类(FEC)概念不再解释,在这里直接跨过,来到标签转发面前。MPLS结合了第二层交换和第三层交换的功能,将二三层交换有机结合起来。在标签转发时,基本可以分为两个部分。第一是在网络边沿路由器LER上,对报文三层路由、IP报头的分析来确定FEC,和标签交换路径(LSP),并标记报文(分配标签)。第二实在网络核心的LSR采用基于标签的滴二层交换,主要是对标签的操作。典型的标签转发过程如下:1.所有的LSR(标签转发路由器)启用传统路由协议在LSR中建立路由表2.由LDP结合IP路由表来建立LSP3.ingressLER(入口标记边缘路由器)接收IP报文,分析IP报头并对应到FEC,再给IP包加上标签,根据标签转发表中的lsp将已经带标签的报文发送到相应的出接口。4.LSR收到带有标签的报文,并分析标签,根据标签查找LSP,替换标签,送到相应的出接口。5.循环上步............6.倒数第二跳,LSR收到带有标签的报文,经过分析,查找标签转发库,发现对应的标签为隐式空标签或显式空标签,则弹出标签,发送IP报文到最后一步。7.在最后EgressLER上执行三层路由转发。/***************************************************************************************/**保留标签标签值为0--15的标签都是保留标签,LSR通常不能使用这些标签来转发报文(不能手动设定),每一个保留的标签都有一个特定的功能,比如标签0是显式空标签,标签是3表示隐式空标签,标签是1表示路由器报警标签,标签是14表示OAM报警标签。**隐式空标签或显式空标签:隐式空标签属于保留标签,出栈LSP不想为某个FEC分配标签的时候,可以分配给隐式空标签,该标签使得上游LSP执行标签移除操作。在倒数第二跳的情况下尤其有用。显式空标签:由于在倒数第二跳使用隐式空标签的话,会导致整个标签都被移除,那么标签里的QOS信息就会丢失,然而,显示空标签的标签值为0,不可能在LIFB中查找,所以可以将信息带给吓一跳LSR。**关于倒数第二跳的遐想在带标签报文在LSP中进行流动的时候,每经历一个LSP,就会经历一次报文操作,比如:添加,移除,交换当报文走到倒数第二跳的时候,这时候,LSR对报文进行必要的操作将报文发送给最后的LSR,最后的LSR收到报文之后,首先进行LFIB查询,查询到该标签需要移除,然后移除标签,在对报文进行三层路由查找并转发。在这个过程中,进行了两次查找,浪费资源。于是将这种情况称之为倒数第二跳。解决这种方案的方法就是,让出站LSR告诉倒数第二跳,不要传递代标签的报文给自己,入站LSR使用隐式空标签来告知倒数第二台路由器,他不在发送正常的标签,而是使用标签3来代替,其结果就是出站LSR只会收到IP报文。/************************************************************************************/第四部分LDP协议LDP协议是标签分发协议,即就是在MPLS网络中为转发等价类(FEC)分发标签捆绑,要让报文在MPLS网络中进行标签交换路径传输的话,所有的LSR都必须运行某种标签分发协议和标签捆绑交换,在所有的LSR都为每一个转发等价类分配了特定的标签以后,报文就可以在LSP上转发了。转发的过程是:首先在每一台LSR上查找LFIB(来确定标签的移除、交换、添加),然后处理报文标签,并发送出接口。LDP协议有四大主要功能:1.运行LDP的LSR发现2.会话的建立和维护3.标签映射通告4.使用通知来进行管理当两台LSR都运行了LDP,并他们之间共享一条或多条链路的时候,它们之间可以通过hello报文进行发现对方,然后通过TCP协议建立会话,LDP就在这两个对等体之间通告标签映射消息。在LDP协议中,LDP的协议报文除了hello报文基于UDP之外,其他报文都是基于TCP的LDP的UDP头部:version:16比特,LDP版本号,版本号为1.PDU长度:16比特,值为LDPUDP头部以后的数据部分的长度LDPID:48比特,前32比特为LSRID,后16BIT为标记空间标志,全局空间为0,局部空间为1/*************************************************************************/**全局标签空间和局部标签空间全局标签空间表示LSR为特定目的的FEC指定唯一的标签,局部标签空间表示LSR在每个接口上为特定的FEC制定唯一的标签,在桢模式的链路上为全局标签空间,在信元模式的链路上为局部标签空间。**/**********************************************************************************/LDP消息格式:U:这一位为0时,表示可以识别的消息,为1时表示不可以识别的消息MessageType:根据这几位来识别不同的消息MessageLength:表示数据部分的长度MessageID:消息标识如上图:根据不同的功能,LDP协议中总共有四类消息1.Discoverymessages(发现消息)hello消息,在启用LDP协议的链路上反复发送该消息2.Sessionmessages(会话消息)nitialization消息KeepAlive消息,建立和维护LDP会话3.Advertisementmessages(标签分发消息)AddressmessageAddressWithdrawmessageLabelrequestmessageLabelmappingmessageLabelwithdrawmessageLabelreleasemessageLabelabortrequestmessage用来请求,通告,撤销标签绑定。4.Notificationmessages(错误通知消息)Notification消息,用来提示在LDP对等体之间的重要事件1)LDP的LSR发现1.互发hello消息hello消息中包含着LDP-ID和TransportAddress,双方将会使用TransportAddress来建立LDP会话,收到hello消息后在进一步比较TransportAddress,来确定谁作为主动方发起TCP连接,TransportAddress大的一方作为主动方发起连接2)LDP会话的建立和维护1.TCP连接完成后由LSR-B发送Initialization消息来协商参数,包括:LDP协议版本、Label分发方式、HoldTime、接收者的LSR-ID等。2.如果接收Initialization的LSR-A发觉对方的参数自己不能接受,则发送Notification消息结束会话:否则的话由LSR-A回应Initialization消息同时也发KeepAlive消息,两个消息可以在一个报文中同时携带。/*******************************************************************************************************/**如果LDP邻居都认可了会话参数,那么他们就保持着之前的TCP会话,反之,他们会重新尝试他们之间建立的LDP会话,但是会有一个值进行约束,如果本次失败那么下一次间隔时间会呈指数倍增长。*****************************************************************************************************/3)标签映射通告通告标签映射和标签捆绑是LDP的主要任务,在MPLS体系中,有三种不同的模式可以供LSR使用;下游主动(UD)与下游被动(DOD)模式无限制的标签保留(LLR)和受限制的标签保留(CLR)模式独立的LSP控制和非独立的LSP控制/****************************************************************************/上游和下游LSR:如图所示:A为B的上游LSR,C为B的下游LSR/******************************************************************************/下游主动模式(DU):下游LSR如果运行在DU模式,则会根据某一触发策略主动通过Labelmappingmessage向上游邻居LSR分发标签受限制的标签保留(CLR)模式下游主动模式(DOD)如果工作在DOD模式下,只有在接收到上游LDP邻居的Labelrequestmessage(标签请求消息)后才会回应一个Labelmappingmessage(标签映射报文)无限制的标签保留(LLR)又叫自由的标签保留模式,在收到标签通告后,不生成LSP但是会在标签绑定表里存储,并且LSP向上游通告其他标签时也不会占用这些标签,这样,在这种模式下自由的标签保留模式能应对快速的网络拓扑变化,但是浪费标签,多有不生成LSP的标签都要保留。受限制的标签保留模式(CLR)收到的无用标签不会存放在标签绑定表里,在通告上游LSP时才会自由使用这些标签。缺点是,应对网络拓扑比较慢独立的LSP控制如果LSP运行独立运行方式,并且运行DU的话,就会自主的向上游通告标签,不会受制于上游是否发送标签请求,如果分发运行DOD的话,在下游接收到请求的话,会直接发送标签映射报文,不会等待最终下游回复了之后再回复。非独立的LSP控制又叫有序的LSP控制,如果工作在DU模式,则会在收到上游标签请求报文时再回复标签映射报文。否则不会回复。
本文标题:LDP协议基础
链接地址:https://www.777doc.com/doc-2883746 .html