浅谈MPLS网络中LSP的建立和多层标签栈配置

时间:2011-08-29

  MPLS网络结构

  多协议标签交换(MPLS)是一种用于快速数据包交换和路由的体系,它为网络数据流量提供了目标、路由、转发和交换等能力。更特殊的是,它具有管理各种不同形式通信流的机制。MPLS 独立于第二和第三层协议,诸如 ATM 和 IP。它提供了一种方式,将 IP 地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。它是现有路由和交换协议的接口,如 IP、ATM、帧中继、资源预留协议(RSVP)、开放短路径优先(OSPF)等等。在 MPLS 中,数据传输发生在标签交换路径(LSP)上。LSP 是每一个沿着从源端到终端的路径上的结点的标签序列。现今使用着一些标签分发协议,如标签分发协议(LDP)、RSVP 或者建于路由协议之上的一些协议,如边界网关协议(BGP)及 OSPF。因为固定长度标签被插入每一个包或信元的开始处,并且可被硬件用来在两个链接间快速交换包,所以使数据的快速交换成为可能。

  MPLS网络的基本构成单元是标签交换路由器LSR(Label Switching Router),主要运行MPLS网络控制协议和第三层路由协议,并负责与其他LSR 交换路由信息来建立路由表,实现FEC 和IP 分组头的映射,建立FEC 和标签之间的绑定,分发标签绑定信息,建立和维护标签转发表等工作。

  主要完成连接MPLS 域和非MPLS 域以及不同MPLS网络域的功能,并实现对业务的分类、分发标签(作为出口LER)、剥去标签等。其中入口LER 叫Ingress,出口LER 叫Egress。位于区域内部的LSR 则称为LSR,LSR 可以是支持MPLS网络的路由器,也可以是支持MPLS网络标签交换的LSR,它提供标签分发、交换功能(Label Swapping)。

  ◆标记交换路径(LSP)

  ◆MPLS网络路由器 (LSR)

  ◆Ingress

  ◆Egress

  ◆MPLS网络边缘路由器(LER)

  LSP 的建立

  LSP 的建立其实就是将FEC 和标签进行绑定,并将这种绑定通告LSP 上相邻LSR的过程。这个过程是通过标签分发协议LDP 来实现的。LDP 规定了LSR 间的消息交互过程和消息结构,以及路由选择方式。

  MPLS网络支持LSP 隧道技术。在一条LSP 路径上,LSR Ru 和LSR Rd 互为上下游,但LSR Ru和LSR Rd之间的路径,可能并不是路由协议所提供路径的一部分,MPLS允许在LSR Ru 和LSR Rd 间建立一条新的LSP 路径,LSR Ru和LSR Rd 分别为这条LSP 的起点和终点。LSR Ru 和LSR Rd 间的LSP 就是LSP隧道,它避免了传统的网络层封装隧道。

  多层标签栈

  在MPLS网络中,分组可以携带多个标签,这些标签在分组中以“堆栈”的形式存在,对堆栈的操作按“后进先出”的原则,决定如何转发分组的标签始终是栈顶标签。标签入栈是指向输出分组中加入一个标签,使标签栈的深度加1,同时,分组的当前标签就变为此新加入的标签;标签出栈是指从分组中去掉一个标签,使标签栈的深度减1,同时,分组的当前标签将变为原来处于下一层的标签。

  在LSP 隧道中会使用多层标签栈。当分组在LSP 隧道中传送时,分组的标签就会有多层。在每一隧道的入口和出口处,要进行标签栈的入栈和出栈操作,每发生入栈操作,标签就会增加一层。MPLS网络对标签栈的深度没有限制。标签栈按照“后进先出”方式组织标签,MPLS网络从栈顶开始处理标签。若一个分组的标签栈深度为m,则位于栈底的标签为1 级标签,位于栈顶的标签为m 级标签。未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。

  标签报文的转发

  在Ingress,将进入网络的分组根据其特征划分成转发等价类FEC。一般根据IP 地址前缀或者主机地址来划分FEC。属于相同FEC 的分组在MPLS网络区域中将经过同的路径(即LSP)。LSR 对到来的FEC 分组分配一个短而定长的标签,然后从相应的接口转发出去。

  在LSP 沿途的LSR 上,都已建立了输入/输出标签的映射表(该表的元素叫下一跳标签转发条目,简称NHLFE,Next Hop Label Forwarding Entry)。对于接收到的标签分组,LSR 只需根据标签从表中找到相应的NHLFE,并用新的标签来替换原Comware V3 操作手册(MPLS网络)。

  来的标签,然后,对标签分组进行转发,这个过程叫输入标签映射ILM(IncomingLabel Map)。MPLS网络入口处指定特定分组的FEC,后续P路由器只需简单的转发即可,比常规的网络层转发要简单得多,转发速度得以提高。

  TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给初的发送者。

  TTL处理:标签化分组时必须将原IP 分组中的TTL 值拷贝到标签中的TTL 域。LSR 在转发标签化分组时,要对栈顶标签的TTL 域作减一操作。标签出栈时,再将栈顶的TTL 值拷贝回IP 分组或下层标签。但是,当LSP 穿越由ATM-LSR 或FR-LSR 构成的非TTL LSP 段时,域内的LSR无法处理TTL 域。这时,需要在进入非TTL LSP 段时对TTL 进行统一处理,即性减去反映该非TTL LSP 段长度的值。

  ICMP Need Frag 差错报文回送

  在MPLS网络中,当报文的长度超过了路由器出接口所设置的MTU 值时,若想使报文顺利的传输,需要将MPLS网络报文的标签剥去,对IP 报文进行分片,然后分别为每一个分片都封装原有的标签后进行传输。ICMP协议是一种面向无连接的协议,用于传输出错控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP提供一致易懂的出错信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据报。但是ICMP的功能是问题而不是纠正错误,纠正错误的任务由发送方完成。

  出接口的MTU 将被填入ICMP 报文中,如果设备上配置了mtu label-including 命令,在生成报文的时候,应将报文中的出接口MTU字段减去MPLS 标签长度(可能有多层标签)。文后回送ICMP 差错报文的方式有所不同,下面将分别介绍。

  PE 设备的处理方式

  PE1 收到CE1 发来的报文,报文目的地址为CE2,且该报文携带不可分片标记。PE1 将对此报文进行转发处理,封装MPLS 标签,生成MPLS 报文后进行转发。Comware V3 操作手册(MPLS)。此时如果报文的长度超过了出接口的MTU 时,PE1 会给CE1 回送ICMP Unreach报文,并丢弃源报文。

  P设备的处理方式

  P1 收到一份MPLS 报文需要进行标签交换,该报文为CE1 发往CE2 的报文,携带不可分片标记。完成标签交换后,如果发现报文的长度超过了出接口的MTU,此时,由于P1 设备上可能没有到CE1 的路由,P1 会将MPLS网络报文中封装的IP 报文取出,根据这个IP报文生成ICMP Unreach 报文,然后重新封装标签发往PE2 方向。



  
上一篇:对比四种短距离无线监控解决方案的性能
下一篇:简述耐克森的超七类技术成功实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料