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会决定将数据包传送到那儿。
若传送未标识的数据包时,LSR首先分析数据包中网络层的信息来决定数据的FEC。将FTN映射到NHLFE。根据NHLFE的信息,LSR会决定将数据包传送到那儿。
LSp的下一跳
LSP的下一跳是由NHLFH的实体选择的,主要目的是为了传送数据包。在这里值得一提的是lsp的下一跳与路由协议中的下一跳是有区别的,路由协议中的下一跳是由路由算
标记的范围
LSR Rd可能会将标记L1绑订到FEC F,并且将这种绑订信息分布等同体Ru1.Rd也可能标记L2绑订到FEC F,并且将这种绑订信息分布到等同体Ru2.标记L1和L2是否相同,是决定于自身的结构。但是Rd必须被告之,标记L是由Ru1和Ru2发送的。
当Ru1和Ru2都作为Rd等同体时,并且只有Ru1和Ru2都通过点对点接口与Rd连接。LSR会会针对每个接口规定标记的范围。在一般的情况下标记的分配都时针对每个平台的。假如LSR Rd通过两个点到点的接口连接LSR Ru ,那么Rd 可能会将标记L到FEC F1分配给Ru,或者将标记L到FEC F2分配给Rd。并且当Ru通过两个特定的接口,将数据包发送Rd。此时FEC F1和FEC F2不相同的。
标记交换路径(LSP),LSP ingress LSP egress
标记交换路径是指某个数据包经过一系列的路由器有如下特性。
1 路由器R1 LSP ingress是指将特定的标记压入数据包的堆栈,其深度位于堆栈的m.
2 数据包由i到n依次发送。
3在数据发
4对于i(1
2.15不正确的入标识
下面让我们设想一下,假如一个LSR根据入标识接收到标识包,但是这个标识包却未绑订任何信息。这时LSR会试图认为这个标识刚刚被卸掉,并且将它作为未标识的IP数据包。但是在这样处理中,会导致环路的生成。
第三讲
2.16 LSP的控制:有序(ordered )与独立(Independent)
大部分的FEC是由动态的路由算法根据地址的前缀分配的。建立这样的FEC可以通过如下两种方法来完成:有序(ordered)或者独立(Independent)。
在独立的LSP控制中,每个LSR会独立地决定将标识绑订到某个FEC并将这种绑订信息分配到标识分配的等同体。在传统的IP网络中采用这种控制方法;每一个节点会独立根据路由算法决定如何处理数据包。
在有序的LSP控制中,LSR会将标识绑订到egressLSR的FEC,并且在这时LSR已经从下一跳收到了绑订到这个FEC的标识。在网络中要想保证数据的流量根据一些特性只从特定的路径穿越,决必须使用有序的控制。
在MPLS网络中,有序的控制和独立控制可以被同时使用。总而言之在MPLS网络中使用那种控制方法,要根据的情况来决定。无论使用那种控制方法都不会影响到标识分布的机制。
2.17路由选择
路由选择是指为特定的FEC选择LSR的过程。MPLS网络中支持两种不同的路由选择方法:1 hop by hop 路由方法 2 eXPlicit 路由方法
在hop by hop 路由方法中,每一个节点会独立为FEC选择下一跳的路由。这是现今IP网络中采用的路由机制。
在explicit 路由方法中,每一个节点并不独立为FEC选择下一跳的路由,而是使用入LSR和出LSR根据LSP一次选定几个LSR作为路由。假如LSR根据LSP一次指定全部的路由信息,我们称这样的路由方法为“strictly”explicit路由方法。假如LSR根据LSP一次只指定部分的路由信息,我们称这样的路由方法为“loosely”explicit 路由方法。在explicit路由方法中需要一次性指定分配这条路由的全部标记,但是它不需要根据IP层的信息来如何决定路由的选定。这样的路由的机制,就会使得explicit 路由方法比交换ip 路由信息的路由方法有更高的效率。
2.18最大存活时间(TTL)
在传统的IP网络中,在每个数据包的头部会携带”Time To Live”(TTL)的数值。当数据包穿越路由器会将TTL数值减一。若数据包未到达目的地,而TTL数值已经减为0。这时网络便会丢弃这个数据包。TTL机制会可以有效地防止由错误而导致的环路和路由算法慢收敛。但有时TTL还会被用于其他的功能,例如“traceroute”功能。
在MPLS网络里,TTL的操作是取决于MPLS网络“shim”头部所携带的标识值或者在L2层所携带的标识值。假如标识值被编码到位于数据链路层和网络层之间的SHIM里。首先shim从网络层的TTL编码段得到TTL的初始值,每经过LSR一跳便会TTL的值减一,并将这值复制到网络层的TTL编码段,得到更新后TTL值。
假如标记值被编码到数据链路层,标识包会被在第二层交换和传递,但是在数据链路层(如 ATM)并没有TTL字段。这时在每经过一个LSR后就不能将TTL减一。我们称这样的由一系列LSR组成的LSP segment 为“non-TTL LSP segment”。
有时在一些非凡情况TTL会被终止的。例如当某一个标识包到达non-TTL LSP segment后,在标识包中的TTL值会被丢弃。
2.19环路的控制
在前面的章节已经提到,在non-TTL LSP segment里并没有定义TTL,所以就不能使用TTL机制防止环路的生成。因此在防止环路的问题上,会依靠于LSR的硬件设备。让我们设想一下,假如一个ATM交换设备通过使用VPI/VCI技术来完成MPLS的功能,并在这个ATM交换设备能为进入这个交换机所有信元提供一个相当大的缓冲,这时这个缓冲就会缓解由环路所产生的负面效应。如若不能提供这个缓冲便不能缓解由环路所产生的负面效应。
2.20 标记的编码
为了将标记与数据包一同发送出去,我们需要将存放标记的堆栈进行编码。在MPLS网络中,一般的设备会支持几种不同的编码技术。但在具体使用那种编码技术还需要具体实际应用。
2.21 将ATM交换机作为LSRS
MPLS工作机理有些相似ATM的“label swapping”机制。ATM交换机使用入端口和入VPI/VCI作为在“cross-connect”索引,从而得到出端口和出VPI/VCI。由此传统的交换机可以将标记直接编码到数据包的字段中,便可以通过对该传统交换机升级到LSR。 如下是将标记编码到ATM信元的三种方法。
1SVC编码
将堆栈顶部的标识编码到VPI/VCI字段。这样的机制可以被用在任何网络。使用这种编码技术,每个LSP可以被认为一个ATM SVC,而标识分布协议成为ATM“信令”协议。使用这种编码技术ATM-LSR不用在标识堆栈中,执行“Push”和“POP”操作。
2SVP编码
将堆栈顶部的标识编码到VPI字段,假如这个VCI可以被使用并且将堆栈中第二个标识编码到这个VCI字段。这样的编码方法比第一中编码性能要优越,在这样的编码技术中可以答应使用ATM “VP-SWITCHING”。使用这种编码技术,LSP可以被认为SVPs。尽管这种编码技术优于第一种编码技术,在实际应用中这种编码技术并不适用所有网络环境(例如ATM的Virtual Path)。
3 SVP多点编码
将堆栈顶部的标识编码到VPI字段,将堆栈中第二个标识编码到某些VCI字段,并且将其他的VCI作为LSP的入标识。假如采用这种编码技术,可以使得传统的ATM VP交换机具有将多个携带不同VCI值的数据包对应到同一个VP,即实现multipoint-to-point Vps功能。
2.22隧道技术
在网络应用中,路由器Ru有时会将数据包发送到与其不相临的路由器Rd。由这样的实际使用,产生了隧道技术。隧道技术是指将网络层的目的地址包装到数据包中,由此在彼此不相临的路由器之间生成一个“隧道”,在这里我们称由隧道处理的数据包为隧道数据包。
1 hop-by-hop Routed 隧道
Hop-by-hop Routed 隧道是指隧道数据包通过hop-by-hop传送的方式。并指定Ru 为Hop-by-hop Routed隧道的“传送点”, Rd为Hop-by-hop Routed隧道的“接收点”。
2 Explicitly Routed 隧道
Explicitly Routed隧道是指隧道数据包通过特定的路径传送的方式。并指定Ru 为Explicitly Routed隧道的“传送点”, Rd为Explicitly Routed隧道的“接收点”。
3 LSP隧道
LSP隧道技术作为前两种隧道技术很好的补充,它使用的是标记交换而不是网络层的信息来完成隧道数据包的封装。LSP隧道可能会由〈R1,…Rn〉LSR组成。我们称R1为LSP隧道的“传送点”,Rn为LSP隧道的“接收点”。在LSP隧道中是由LSP隧道传送的数据包组成FEC,并且每个LSP隧道中的LSR将标记分布给这个FEC。首先LSP隧道的“传送点”将标记压入堆栈中,然后将这个标识的数据包传送到LSP隧道的下一跳。最后由LSP隧道中LSR将标记从堆栈中弹出。在LSP隧道中“接收点”并不能决定从隧道接收的数据包。
三 MPLS 的优点
MPLS的最大的优点便是它是标准化的交换技术。目前已被众多的网络厂商所接收。现在MPLS已经被众多的厂商看作下一代的网络交换技术,目前Bay和Fore 等产商已经推出了基于MPLS网络产品。MPLS较传统的网络产品有以下的优点:
a) 所支持的Explicit 路由技术
Explicit 路由技术是MPLS 网络技术的要害部分。Explicit 路由技较传统的IP的Source 路由技术有更高的效率。同时Explicit 路由技术还提供还其他的附加技术如前面所提到隧道技术,可以轻松承载各种业务如IPX。
b) 更好地支持虚拟专网(VPN)
目前所提出VPN解决方案,大部分都是基于在租用线路上使用加密算法来保证其安全和可靠性。而MPLS可以轻松地将不同业务分隔开来(即便在MPLS网络内部),从而能轻松地构筑VPN。
c) 多种协议和多连接的支持。
在MPLS网络中,标记交换并不指定由特定的网络层来完成。如在MPLS网络可以支持IP和IPX两中网络协议。
d) 域内路由
MPLS标记交换为将MPLS网络视为内部域,将传统的网络分隔开来。可以将传统接入MPLS边缘设备(类似于MPOA的应用)。从而大大的提高网络的可升级性。
·许多公司只有内部的IP地址。IPV4规定网络的地址必须唯一。MPLS 技术可以将内部的IP地址,在MPLS域封装成唯一标识数据包。
Ennovate Envoy 1600的性能可以保证VPN实现。
·Virtual Routers. 独一无二的 “virtual Router”技术通过支持多forwarding tables技术,有效解决VPN private address 的难题。这些forwarding tables 技术将不同企业的地址段分隔开。同样在网络的核心部分,通过使用不同传输技术(ATM,frame VCs ,IP 隧道技术,或者MPLS 标记),也将不同地址段的地址分隔开来。VPN的用户便可以通过integral Network Address Translation(NAT)技术轻松访问外部地址。
·服务质量。同样高性能的Ennovate Envoy 1600具有支持不同的服务质量能力。可以承载不同业务(如 声音,图象,和数据)
·Secure VPN Membership 协议。功能如下
动态将那个节点连入那个VPN
认证服务保证VPN的安全性
动态分配IP隧道和其他路径以及分配不同VPN之间的虚拟连接。