MPLS技术实现原理

来源:James 时间:2022-01-21 09:16:18阅读:0

传统的IP数据转发是基于跳跃式的。每个转发数据的路由器都应该根据IP包头的目的地地址找到路由表,以获得下一个跳跃出口。这是一项繁琐而低效的工作,主要有两个原因:

1.有些路由查询必须多次查找路由表,这就是所谓的递归搜索;

2.由于路由匹配遵循最长匹配原则,几乎所有路由器的交换引擎都必须由软件实现,软件实现的交换引擎和ATM交换机上的硬件实现的交换引擎在效率上无法竞争。

如今,互联网应用的需求越来越大,对带宽和延迟的要求也越来越高。如何提高转发效率,各种路由器厂商都做了大量的改进工作,比如Cisco在路由器上提供CEF(CiscoExpressForwarding)功能,修改路由表搜索算法等等。然而,这些修复并不能完全解决当前互联网面临的问题。IP和ATM曾经是两种相互对立的技术,每个IP设备制造商和ATM设备制造商都试图互相吃饭,想IP统一世界,或者说ATM是独一无二的!但最终还是这两种技术的融合,即MPLS技术的诞生(Multi-Protocolllabellswitching)!MPLS技术结合,IP技术信令简单,ATM交换引擎高效!

MPLS技术实现原理

一、MPLS技术实现细节

1.标签结构

IP设备和ATM设备制造商实现MPLS技术是在各自原有的基础上进行的。对于IP设备制造商来说,它修改了原来IP包直接封装在二层链路帧中的规范,而是在二层和三层包头之间插入了一个标签(Label)。ATM设备制造商利用原来ATM交换机上的VPI/VCI概念,用Label代替VPI/CVI。当然,ATM交换机必须修改信令控制部分,并引入路由协议。ATM交换使用路由协议与其他设备交换三层路由信息。标签的结构如下:

20比特的LABEL字段用来表示标签值。因为标签是固定长度的,所以对于路由器来说,可以分析固定长度的标签来转发数据包,这是标签交换的最大优势。固定长度的标签意味着数据转发可以通过硬件实现,比必须通过软件实现的路由最长匹配转发效率高得多。3比特的EXP用于实现QOS;1比特S值用于表示标签栈是否到底。对于VPN、TE等应用,将在二、三层之间插入两个以上的标签,形成标签栈;8比特TTL值用于防止数据在线形成环路。这样一个完整的带标签的二层帧就成为以下形式:

在ATM信元模式下,信元的结构如下:

2.LSR设备的系统结构

通过修改,可以支持标签交换的路由器是LSR(LabelSwitchRouter),而支持MPLS功能的ATM交换机一般称为ATM-LSR。LSR设备的系统结构如下:

LSR的系统结构分为两部分:

1.控制平面(Controlplane)

该模块的功能是与其他LSR交换三层路由信息,从而建立路由表;与交换标签绑定路由的信息,以建立Label-Information-Table(LIB)标签信息表。同时,根据路由表和LIB生成Forwarding-Information-Table(FIB)表和Label-Forwarding-Information-Table(LFIB)表。控制平面通常被称为路由引擎模块。

2.数据平面(Dataplane)

数据平面的功能主要是根据控制平面生成的FIB表和LFIB表转发IP包和标签包。对于控制平面中使用的路由协议,可以使用以前的任何一种,如OSPF、RIP、BGP等。这些协议的主要功能是与其他设备交换路由信息,生成路由表。这是实现标签交换的基础。在控制平面中引入了一种新的协议——LDP。该协议的功能是为当地路由表中的每个路由条目生成当地标签,从而生成LIB表,然后将路由条目和当地标签的绑定通知给邻居LSR,同时帮助接收邻居LSR通知的路由条目和标签,放入LIB表中。最后,在网络路由收敛的情况下,参照路由表和LIB表的信息生成FIB表和LFIB表。

二、标签的分配和分发

根据以上描述,MPLS技术是IP技术和ATM技术的融合。在LSR和ATM-LSR上生成和分发标签有点不同。

1.包模式(PacketMode)下标签的分配和分发

在实现包模式的MPLS网络中,是下游LSR独立生成路由条目和标签的绑定,并主动分发出去。下图显示,所有LSR都启动了LDP协议。以LSR-B为例,它已经通过路由协议获得了网络X的路由。LSR-B一旦启动LDP协议,就会立即找到路由表。如果X网络的路由是通过IGP路由协议学习的,则在LIB表中为通向X网络的路由生成本地标签25。由于LSR-B与LSR-A、LSR-C、LSR-E形成了LDP邻居关系,下游LSR-B会主动向所有邻居发送X=25路由条目和标签的绑定。LSR-A、LSR-E、LSR-C会将路由条目和标签的绑定放入本地LIB表,然后结合本地路由表,在FIB表中生成与X网络相关的网址-&gt条目,在LFIB中生成与X网络相关的进入标签-&gt条目。所有LSR都是这样操作的。最终结果,整个MPLSR网络中的所有LSR都实现了路由表、LIB表、FIB表、LIB表和LFIB表的动态平衡。

若LSR-A接收到要去X网段的数据,由于LSR-A处于MPLS网络的边缘,必须查找FIB表,对接收到的IP包进行标签插入操作。对LSR-B而言,LSR-C纯粹是分析标签包,转换包头的标签,转发标签包。当数据到达LSR-D时,边缘LSR将去除标签包中的标签,然后转发恢复的IP包。

2.信元模式下的标签分配和分发

信元模式下,下游ATM-LSR接收到上游ATM-LSR标签绑定请求后,下游受控分配标签,被动地将标签分配到上游。上游LSR-A向ATM-LSR-B发起了对网络X的标签求情,ATM-LSR-B再向ATM-LSR-C发出请求,最后请求到达LSR-D,LSR-D生成本为X网络标签的1/37,并将该标签告诉ATM-LSR-C,C做同样的操作,从而一步一步地到达LSR-A。最终生成一个从A->B->C->D的LSP(LabellSwitch)。通过这种方式,A将IP数据包分割成带有标签的信元,通过ATM接口发送到B,然后B和C纯粹转发ATM信元,到D后将信元组合成IP数据包,发送到网络X。

这里需要强调的是,如果要建立一个以ATM交换机为核心的MPLS网络,那么在ATM网络的边缘必须设置一个路由器,因为ATM交换机只转发信元,不能处理用户数据IP包。上述当然也提到要在ATM交换机上实现MPLS功能,必须在ATM交换机的信令控制部分加入路由协议,而路由信息包往往是打在IP包里的,比如RIP、OSPF、BGP等路由协议。为了保证这些以IP包形式传递的路由信息能够在ATM交换机之间传递,ATM交换机采用了特殊的带外连接通道或带内管理VC。

3.BGP协议在MPLS网络中的特殊应用

上述LSR根据路由表分配标签时,只对从IGP协议中获得的路由条目进行分配标签。原因是什么?它具有特殊意义。

MPLS交换在整个TransitaS中启动。确保ISP2和LSR-Border2之间的网段发布到TransitaS内部的IGP路由协议中,对ISP1和LSR-Border2之间的网段也有同样的要求。前面说过,LSR是路由条目分配标签的时候,只有IGP学来的路由分配标签,而网络1.2.3.4发布到TransitaS内部的IGP路由协议中,Corder1可以在Border1处获得,并告诉它关于1.2.3.4网络的标签23。LSR-Border1和LSR-Border2之间形成IBGP邻居关系。通过BGP协议,LSR-Border2将从ISP2中学到的10.0.0.0/8路由告诉LSR-Border1,这条路由的下一个跳地址是1.2.3.4,这样LSR-Border1就可以要向网络发送10.0.0/8的数据,并首先将数据发送到1.2.3.4这个网络。1.2.3.4被绑定到标签23.4。因此,在生成FIB表时,还将标签23绑定到10.0.0.0/8的网段上。通过这种方式,如果有数据从ISP1穿越TransitaS到达ISP2,在Border1处将IP包插上23个标签,并将生成的标签包转发给Core1,Core1只需分析标签头进行标签包转发即可!因为TransitaS内部核心路由器不需要运行BGP协议,所以MPLS网络的核心路由器不会知道外部用户的路由,缩小了核心路由器的路由表,提高了搜索效率。众所周知,由于标签被贴上,IP包头不会在核心路由器上被分析,即使IP包头包含10.0.0.1等私有IP地址,也会因为只分析标签而被正常转发,这就是服务提供商提供VPN服务所追求的。这里当然必须重声说,LSP在整个TransitaS中不能断开,如果断开,标签包将恢复为IP包,而核心路由器不包含用户路由,最终导致数据包丢失。

BGP在MPLS网络中的作用为我们打开了VPN服务的便利之门,但我们也应该意识到VPN服务的两个基本要求是:

1.用户可以独立规划IP地址

二、安全很重要。

下图是两个VPN实例,PE1(PE=Provideredgedevice)分别连接CE1(CE=Customeredgedevice)和CE3,但CE1和CE3将IP地址相同的网段带到10.1.2.0/8,很明显,如果PE1路由器没有修改,PE1只能认为10.1.2.0/8的数据要么从S0出,要么从S1出,这样,要么CE1,要么CE3就更不能收到从PE1到10.1.2.0/8网段的数据。

如果BGP4协议没有修改,PE2和PE3发送PE1的10.1.0/8网络的路由更新是可比的。PE1最终会选择路由,认为PE2或PE3是将数据发送到10.1.1.0/8的必要路由器。这样,如果CE1带的10.1.2.0/8网段上的主机向10.1.1.0/8网段上的主机发送数据,可能会发送到CE4带的10.1.1.0/8网段上,造成数据泄露。因此,为了使LSR能够提供基于MPLS的VPN服务,有必要修改此类设备。

四、实现基于MPLS的VPN

VPN服务是很早就提出的概念,不过以前电信提供商提供VPN是在传输网上提供的覆盖型的VPN服务。电信运营商给用户出租线路,用户上层使用何种的路由协议、路由怎么走等等,这些电信运营商不管。这种租用线路来搭建VPN的好处是安全,但是价格昂贵,线路资源浪费严重。后来随着IP网络的全面铺开,电信服务提供商在竞争的压力下,不得不提供更加廉价的VPN服务,也就是三层VPN服务。通过提供给用户一个IP平台,用户通过IP Over IP的封装格式在公网上打隧道,同时也提供了加密等等的手段提供安全保障。这类VPN用户在目前的网络上数量还是相当巨大的!但是这类VPN服务因大量的加密工作、传统路由器根据IP包头的目的地址转发效率不高等等的原因不是非常令人满意。MPLS技术的出现和BGP协议的改进,让大家看到了另一种实现VPN的曙光。

1.MPLS/VPN系统结构

(1)PE路由器的改造和VRF的导入

为了区分PE路由器上发送的VPN用户路由是哪个本地接口,在PE路由器上创建了大量的虚拟路由器,每个虚拟路由器都有自己的路由表和转发表。这些路由表和转发表统称为VRF(VPNRoutingandForwarding)instances)。VRF定义了连接到PE路由器的VPN成员。VRF包括IP路由表、IP转发表(也成为CEF表)、使用CEF表的接口集、路由协议参数和路由导入导出规则等。VRF中与VPN业务相关的两个重要参数是RD(Routedistinguisher)和RT(Routedtarget)。RD和RT的长度是64比特。

有了虚拟路由器,可以隔离不同VPN用户之间的路由,解决不同VPN之间IP地址空间重叠的问题。

(2)发布MP-BGP协议VPN用户路由

正常的BGP4协议只能传递IPv4的路由。由于不同的VPN用户存在地址空间重叠的问题,BGP协议必须修改。BGP最大的优点是扩展性好,可以在原有的基础上定义新的属性,通过修改BGP将BGP4扩展为MP-BGP。当MP-IBGP邻居传递VPN用户路由时,可以标记RD,使VPN用户传来的IPv4路由转化为VPNv4路由,从而保证VPN用户的路由到达对端PE,使对端PE区分地址空间重叠但不同的VPN用户路由。例如:在PE1、PE2、PE3上分别配置VRF参数,其中VPN1用户的RD=6500:1、RT=100:1、VPN2用户的RD=6500:2、RT=100:2。所有VRF都可以同时导入导出所定义的RT。

以PE2为例,PE2从接口S0中获得CE4传来的10.1.0/8路由。PE2将该路由放置在与S0相关的VRF管辖的IP路由表中,并分配该路由的本地标签。请注意,该标签是当地唯一的。通过路由重新发布,将VRF管辖的IP路由表中的路由重新发布到BGP表中。此时,通过参考VRF表的RD和RT参数,将正常的IPv4路由转化为VPNv4路由,如10.1.0/8转化为6500:1:10.1.0/8,同时将导出(Export)的RT值和该路由的本地标签值等所有属性添加到该路由条目中。通过MP-IBGP对话,PE2将这条VPNv4路由发送到PE1处,PE1收到两条关于10.1.1.0/8的路由,其中一条是PE3发送的。由于RD的不同,这两条路由没有可比性。MP-BGP接受这两条路由后的后续工作是去掉VPN4路由带来的RD值,使其恢复IPv4路由原貌,并根据各VRF配置的允许导入(Import)的RT值。将IPv4倒入各VRF管辖的路由表和CEF表中,即带RT=100:1的10.1.0/8的路由倒入VRF1管辖的路由表和CEF表中,带RT=100:2的10.1.0/8的路由倒入VRF2管辖的路由表和CEF表中。然后,通过CE和PE之间的路由协议,PE将不同VRF管辖的路由表内容通知各自相连的CE。当前PE和CE之间只有四种路由协议可以支持BGP、OSPF、RIP2或静态路由。

以上配置显示了VPN在单个AS内部的配置。当然,VPN用户的每个接入点往往都有很大的区域跨度,所以往往涉及到跨AS提供VPN业务的需求。这种配置会更复杂,需要各种电信运营商的配合。MPLS是一种结合链路层和IP层优势的新技术。在MPLS网络上,不仅可以提供VPN业务,还可以开展QOS、TE、组播等业务。

微云网络&网络综合解决方案提供商帮助企业信息化建设、数字化转型和全球互联网。SD-WAN方案可以加速全球访问、SaaS访问、海外视频和海外分支网络,有效提高国际沟通效率,帮助中国企业开拓国际市场…热线:400-028-9798,欢迎来电咨询。

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/yzx/6292.html

TAG标签:MPLS

相关推荐

返回顶部