科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道MPLS (多协议标识交换)技术浅解

MPLS (多协议标识交换)技术浅解

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

MPLS 技术是为了解决日益增长的大型网络所面临的一系列问题,而产生的新技术。一些路由器分析数据包的报头信息,并不只决定数据包的下一跳,而是根据数据包所携带“优先级”或者“服务类别”。

作者:中国IT实验室 2007年9月11日

关键字: MPLS 路由器 CISCO

  • 评论
  • 分享微博
  • 分享邮件

1 概述

MPLS 技术是为了解决日益增长的大型网络所面临的一系列问题,而产生的新技术。MPLS的最大特点就是简化传输的一系列过程,从而大大的提高网络的传输效率。目前Mpls技术已经被众多网络厂商所接受,即将成为新的标准。简言之,MPLS之所以能高效率完成传输,是因为它对数据包处理时可以同时完成layer 2 和layer3 的功能。用固定长的标记来表示ip 包头部信息。

在传统的ip网络中,layer3 ip包包头包含着数据包的路由信息,路由器根据layer3 ip包头的信息来独立完成数据包的路由(hop by hop routing)如图1.1。而在Mpls网络中,将一个固定的长度的标识分配FEC( Fowarding Equivalence Classes)。这个标识将跟随着数据包传递到下一跳。在路由的过程中,具有MPLS功能的路由器(LSR)将不再分析IP数据包头的信息,而是根据由数据包所携带的标识来决定路由。

图1.1 传统的ip 网络路由图

2. MPLS 基础

在本章主要介绍MPLS的基础概念。

2.1MPLS术语:

1)标记交换路由器(LSR):根据预算交换表交换标记包的核心设备。这个设备可以是交换机也可以是路由器。

2)标记(LABLE):一个报头,LSR用它来传送包。报头格式取决于网络特性。在路由网络中,标记是一个分离的,32比特报头。在ATM网络中,此标记被置于虚通路标识器(VPI)/虚通道标识器(VCI)的信头中。在核心部分,LSRs只读取标记,而不是网络层包头。MPLS可伸缩性的一个关键是标记只在交换信息的两个设备之间有意义。标记的长度是固定的,用来标识特定的FEC标识符。通常情况下,根据网络层的目的地址将数据包分配给某个FEC。如果Ru和Rd 都是LSR(label switching router),假设数据包由Ru发送到Rd ,Ru将标记绑订L到特定的FEC f。在这样的情况下标记L 作为Ru的“出标记”代表FEC f,同时标记L 作为Rd的“入标记” 代表FEC f。

3)边界标记交换路由器(Edge LSR):边界设备完成初始的包处理和分类,并且应用第一个标记。这个设备可以是一个路由器,也可以是一个有路由功能的交换机。

4)标记交换路径(LSP):路径是由在两个端点的所有被指定的标记所决定。一个LSP可以是动态的,也可以是静态的。动态LSP是利用路由信息自动提供的;静态LSP是被明确指定的。

5)标记虚电路(LVC):一个“一跳下一跳”的连接在ATM传输层被建立用以实现一个LSP。不同于ATM虚电路的是,LVC不是端到端的被执行,也不浪费带宽。

6)标记分配协议(LDP):即通信标记和他们在LSRs间的意义。它在边界指定标记,核心设备根据路由协议(如:OSPF,IS-IS,EIGRP RIP or BGP)建立LSPs。

首先分隔实体将数据包映射到FEC“forwarding equivalence classes"然后将每一个FEC映射到下一跳。

所以根据有关的前面步骤,不同的数据包映射到相同的FEC是不被区分的。所有的数据包将属于特定的FEC,并且根据路径传送到特定的节点上。

传统的Ip Forwarding 中,一般的路由器会如果两个数据包具有相同的address prefix,认为它们属于同一个FEC。在传统的网络中,当数据包经过网络,每一跳后路由器都会重新检查数据包映射到特定的FEC的情况。

而在MPLS网络重,特定的数据包分配给FEC只进行一次。映射到FEC的数据包都被分配有一个固定长度数值的label.当数据传送到下一跳,这个固定长度的label将跟随到数据包一起发送.

因而在频繁的数据传送过程中, MPLS网络中的设备将不会分析数据包的layer信息.而是根据包上的标记决定下一跳.当数据包到达下一跳时,旧的标记将被新的标记所取代.

在MPLS前传的算法中,

一旦数据包进入网络后,入路由器将数据包分配给特定的FEC。 一切决定数据传送只是决定于标识。例如;不同数据包到达不同路由器端口可能会被分配到不FEC。在传统的网络的数据前传中,决定数据前传信息只能是数据包头信息。一个数据进入网络后特定的路由器可以被标识为不同的标记,并不需要同样的数据包进入到不同的路由器。由此前传是可以由入路由器轻松设置。在传统的网络中的前方向传不能由入路由器决定。

可以想象在网络中,决定到数据包到FEC的映射变得越来越复杂。对于路由器没有任何影响只是前传已经标识的数据包。

有时,我们希望数据根据特定的路由传递,而不是根据特定的动态路由算法决定数据如何传递。要完成此项功能,既需要数据包携带路由信息(“源路由”)。在MPLS网络中,标记可以被用来代表路由,所以在并不需要数据包携带特定的路由信息。

一些路由器分析数据包的报头信息,并不只决定数据包的下一跳,而是根据数据包所携带“优先级”或者“服务类别”。它们可以应用于不同的服务质量。

在mpls网络中并不完全允许优先级和服务质量。在这种情况里,可以由将标记和FEC结合表示数据优先级和服务质量。

MPLS代表多协议标记交换,多协议因为他可以应用于多协议中。

标记

标记是固定长度的标识用来指定FEC.标记。标记通常用来表示分配给数据包的FEC.

通常的情况下,将数据包分配给特定FEC是基于网络层的地址。然而,标记却不将地址进行编码。如果Ru和Rd是lsr

并且要将数据包由Ru发送到Rd。若数据包是FEC F的成员,Ru便将标记L标识数据包。在标识数据包的前提条件是数据包是FEC F的成员。由此Ru和Rd完成了标记L 和FEC绑订并且将数据将Ru发送到Rd.我们称标记L是Ru的出标记用来代表FEC F,标记L是Rd的入标记用来代表FEC F.

2.2 upstream 和downstream LSR

假设数据包从Ru发送到Rd,在这种情况下我们指定Ru 为upstream LSR,Rd为downstream LSR。

第二讲

2.3标记的分配与分布

在MPLS网络中,将标记L绑订到特定FEC F是由Downstream LSR决定的。同时Downstream LSR 会将绑订的信息通知Upstream LSR。因此标记是被Downstream分配的,并且标记绑订的方向是由Downstream到Upstream。若LSR是根据此机制而设计的,那么标记就必须保证在某个数值范围内。

2.4标记分布协议(LDP)

标记分布协议是指一个LSR将自身标记和FEC的绑订信息通知其他的LSR的过程,由此机制交换不同的标记和FEC绑订信息。我们称交换标记和FEC的绑订信息的两个LSR互为分配等同体。我们称两个分配等同体之间是“标记分布的临近”。

标记分布协议是包括两个标记分配等同体之间学习其他的LSR的一系列过程。在实际的MPLS网络中我们并不假定只有一种标记分布协议,事实上不同的标记分布协议已经被标准化。

2.5 Unsolicited Downstream 与 Downstream-on-Demand

在MPLS网络结构中允许一个LSR明确发出请求给下一跳的FEC,将标记绑订到那个FEC。我们称这样的情况为“downstream-on-demand”标记分布。

同样在MPLS网络结构中LSR也会发出不明确的请求的信息。我们称这样的情况为“unsolicited downstream”标记分布。在实际情况中,MPLS网络设备可能支持“unsolicited downstream”标记分布技术,也可能支持“downstream-on-demand”标记分布技术,还可能同时支持这两种技术。到底采用那种技术,还是要取决于它们在实际中的应用。在这里值的一提是,这些技术的使用是需要upstream LSR 和downstream LSR这两个标记分布等同体,对这些技术同时的支持。

2.6 标记保持模式

在MPLS网络中尽管LSR Rd 不是LSR Ru的下一跳,Ru也可能收到来自Rd将标记绑订到特定FEC的信息。这时 Ru会跟踪这个标记绑订,或是丢弃这个标记绑订的能力。

若Rd是Ru的下一跳后,Ru会使用这个标记绑订。如果Rd在Ru丢弃标记绑订后,而成为Ru的下一跳,新的标记绑订需要重新申请。在MPLS网络中“自由的标记保持模式”会一直保持标记绑订而不管路由是否被重新被更新过。“保守的标记保持模式”会根据路由的变化迅速对标记绑订做出相应的调整。

2. 9标记的堆栈

在前面的内容里,我们探讨的只是单个的标记的操作。但是实际的应用中携带标记的数据包总是包含若干个标记。MPLS将这样的标记包组织成“先进后出”堆栈。

2.10 NHLFE ( The Next Hop Label Forwarding Entry)

NHLFE ( The Next Hop Label Forwarding Entry)是用来向前传递标识包的实体。它包含如下信息:

1. 标识包的下一跳

2. 在标识堆栈中执行的操作如下:

a) 用一个新的标识代替堆栈顶部的标识。

b) 弹出堆栈中的标识。

c) 用一个新的标识代替堆栈顶部的标识,并将这个新的标识压入这个堆栈。

d) 数据链路层使用这种封装来传送数据包。

e) 在传送数据包时使用这种方法对堆栈编码。

值得一体是,数据包的“下一跳”可能是LSR本身自己。在这种情况,LSR需要将堆栈顶部的标识弹出,然后将数据包“发送”给自己。

2.11 Incoming Label Map (ILM)

“Incoming Label Map”(ILM)是将入标识与NHLFE一一对应。这种机制只是在数据包传送时使用。如果LIM将某一个标识映射到包含多个对象的NHLFE,在数据包发送前必须选择一个对象与之对应。在选择特定的对象与之映射的内容,已经超出了本文档的范围。

2.12 FEC-to-NHLFE Map (FTN)

“FEC-to-NHLFE”(FTN)是将FEC与NHLFE一一对应。这种机制只是在传送未标识的数据包时才使用。如果LIM将某一个标识映射到包含多个对象的NHLFE,在数据包发送前必须选择一个特定的对象与之对应。在选择特定的对象与之映射的内容,已经超出了本文档的范围。

2.13 标识交换

标识交换是使用如下的过程来传送数据包。在传送标识的数据包时,LSR首先检查堆栈顶部的标识,使用LIM将标识映射到NHLFE。根据NHLFE的信息,LSR会决定将

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章