《MPLS在Cisco IOS上的配置》一1.9 信元模式MPLS

简介:

本节书摘来自异步社区《MPLS在Cisco IOS上的配置》一书中的第1章,第1.9节,作者 【美】Lancy Lobo, CCIE #4690 , Umesh Lakshman,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.9 信元模式MPLS

MPLS在Cisco IOS上的配置
当设备互联链路的封装协议是ATM时,用来传输数据的结构称为信元(Cell)。因此,ATM设备之间使用的MPLS机制应用在信元时,称为信元模式MPLS。如前所述,路由模式的ATM PVC也可以运行帧模式MPLS,本节不做讨论。

在信元模式MPLS网络中,核心网的LSR是ATM交换机,都基于ATM信元头的信息转发数据,这样的LSR称为ATM LSR。ATM交换机只执行数据层的转发功能,因此将ATM交换机作为ATM LSR时,必须增加控制层组件—LSC(Label Switch Controller,标签交换控制器)。LSC执行MPLS的控制层功能,例如标签分配和分发。某些型号的ATM LSR本身具备了MPLS控制层组件,因此不需要额外增加LSC。

如果ATM交换机与LSC共同组成ATM LSR,那么ATM交换机只执行控制层的转发功能1。因此,信元模式MPLS的标签必须能够写入ATM信元头,准确地说,是VPI/VCI字段。同时,ATM信元头与IP报文头之间还需要插入MPLS标签。这种机制使得数据层设备可以正确转发MPLS数据包。而控制层的数据包,例如路由协议和分发标签的协议所产生的数据包,则是由ATM LSR的控制层组件产生,并通过ATM LSR之间的控制VC(Control Virtual Circuit)实现互通。

信元模式MPLS的标签结构与帧模式MPLS的标签结构一致,如图1-6所示。为了保证ATM LSR可以根据标签值转发信元,ATM信元头的VPI/VCI需承载标签值。如图1-17所示,ATM LSR在ATM信元头和IP报文头之间插入MPLS标签。


1b8d35bedf165e599b19248797da28336bf45698

图1-18所示的信元模式MPLS网络由入向ATM E-LSR、核心ATM LSR和出向ATM E-LSR组成。ATM LSR之间的互联接口称作LC-ATM接口(Label Switching Controlled-ATM Interface,标签交换控制的ATM接口)。LC-ATM接口可以转发承载着客户流量的信元,也可以转发控制层的流量。默认配置下,转发控制层流量的控制VC是VPI/VCI 0/32。整合型的ATM LSR(本身具备的MPLS的控制层和数据层组件)与ATM E-LSR交换控制层信息,同时执行数据层的信元转发操作。如果ATM交换机和LSC组成ATM LSR,那么LSC与ATM E-LSR交换控制层信息,生成IP转发表、标签表和标签转发表;ATM交换机可以根据LSC的标签转发表信息执行信元转发操作。

如图1-18所示,相邻ATM LSR需要在控制层建立邻居关系,用来交换IGP路由信息和MPLS标签信息。为了在ATM交换机之间正确转发IP路由信息,所有ATM E-LSR和ATM LSR都建立了带内(in-band)的控制VC专门用来转发控制信息。默认配置下,控制VC使用VPI/VCI 0/32,并且使用AAL5协议(RFC2684)封装IP数据包。控制VC可以通过命令修改VPI/VCI,但是,为了确保ATM LSR可以正确交换控制层信息,所有ATM LSR都必须配置相同的VPI/VCI作为控制VC。


c565cfd0caa14602c93f63708f4c022b4e75045e

1.9.1 信元模式MPLS操作

在信元模式MPLS网络中,标签取代了VPI/VCI成为信元转发的依据。ATM LSR在ATM信元头和IP报文头之间插入标签或标签栈,此标签或标签栈的顶层标签值需要复制到VPI/VCI中。这种机制允许ATM交换机可以正确转发ATM信元,同时,直连的ATM LSR之间在控制VC上交换控制层数据包。

图1-19是信元模式MPLS网络,A1和A2是ATM LSR,R1和R2是ATM E-LSR,网络172.16.10.0/24是R1的直连网络。

信元模式MPLS的标签分配和分发操作,与帧模式MPLS很相似。下游ATM E-LSR R1为网络172.16.10.0分配本地标签,并向上游分发。A1和A2也执行此过程。信元模式MPLS和帧模式MPLS的主要区别,是信元模式MPLS不执行次末跳弹出和将标签值复制在VPI/VCI中。另外,在信元模式MPLS中,所有标签都在特定接口下有效;而帧模式MPLS的标签可以在LSR的全局范围内有效,也可以在特定接口下有效。

在图1-19中,假设所有ATM LSR都使用VPI 1,R1、A1、A2和R2分别为网络前缀172.16.10.0/24分配了本地标签L1、L2、L3和L4,那么ATM LSR的IP转发表、标签表和标签转发表的状态如图1-19所示。


f93e1477709552faf04bf6f1e26eeae4c4c62da1

信元模式MPLS的数据层转发过程如下。

1.R2 接收去往172.16.10.0/24的IP数据包,压出向标签1/L3,转发给下一跳A2。

2.A2 接收ATM信元,查询标签转发表,用出向标签1/L2替代标签1/L3,转发给A1。

3.A1 接收ATM信元,查询标签转发表,用出向标签1/L1替代标签1/L2,转发给R1。请读者注意,A1是次末跳LSR,但是不执行次末跳弹出,这是信元模式MPLS与帧模式MPLS的重要区别。R1直接弹出标签,将IP数据包转发至目的网络。

信元模式MPLS的数据层转发过程如图1-20所示。


59dde07c152c21370c2039bc9e3cbc14275268c0

1.9.2 信元模式MPLS的环路检测机制

在信元模式MPLS中,ATM信元头没有TTL,因此ATM信元无法像帧模式MPLS的IP数据包或MPLS数据包那样使用TTL来执行环路检测。LDP的功能是标签分配和分发,主要依靠3层路由协议实现防环功能。

在信元模式MPLS中,LDP具有两种环路检测机制,如前所述,LDP发送TLV格式的消息,因此防环机制也是通过TLV实现的。例如,RFC 3035介绍了路径矢量TLV,可以实现环路检测功能。如图1-21所示,LDP PDU由版本号、PDU长度、LDP标识和LDP消息组成。其中,LDP消息可以包含多个TLV,每个TLV都包括U比特、F比特、类型、长度和值。


e2b396bd9a92298c0d019c6af81c2905cb6b85b2

U(unknown)比特置1时,LSR忽略U比特所在的TLV,并且继续处理LDP消息中的其他TLV;如果置0,LSR忽略整个LDP消息,并向数据源发送错误通告消息。

F(forward)比特只有在U比特置1时才有意义,当F比特也置1时,那么LSP可以继续转发此LDP消息。

“类型”标识了“值”的含义。在信元模式MPLS中,LDP TLV只有两种类型,分别跳数(hop-count)和路径矢量(path vector),都用于环路检测。

长度标识了值的长度,单位是字节。

值是字符串,长度是字节的整数倍。

在信元模式MPLS的环路检测机制中,第一种TLV是跳数TLV,与标签一起被LDP分发到LDP对端LSR。跳数TLV的格式和分发过程如图1-22所示。

图1-22描述了跳数TLV的格式和操作过程。跳数TLV是可选的,在建立LDP会话的过程中,LSR可以协商是否需要使用跳数TLV。LSR可以通过跳数TLV计算出其到达目的网络所经过的跳数。在图1-22中,R1向A1分发本地标签1/L1与172.16.10.0/24的映射,同时携带了跳数TLV=1;A1接收LDP消息以后,向A2分发本地标签1/L2与172.16.10.0/24的映射,同时携带了跳数TLV=2;A2接收LDP消息以后,向R2分发本地标签1/L3与172.16.10.0/24的映射,同时携带了跳数TLV=3。因此,R2得知去往172.16.10.0/24需要经过3跳。


e8614c427572e9c035b5d3fa53574c5de68f16d9

在信元模式MPLS网络中,LDP执行环路检测所使用的第2种TLV是路径矢量TLV。对于熟悉BGP的读者来说,路径矢量TLV与BGP的AS PATH属性有相似之处。在BGP中,AS PATH属性包括了BGP路由所经过的所有AS号,因此可以实现BGP路由的环路检测。路径矢量TLV中包括了LDP请求消息或LDP更新消息所经过的逐跳LSR的LDP Router-id。如果LSR接收到LDP请求消息或LDP更新消息,发现路径矢量TLV中已经包括了自己的LDP Router-id,那么此LSR通过丢弃请求或更新消息的方式避免环路。路径矢量TLV的格式和操作过程如图1-23所示。

在图1-23中,R1、A1、A2、R2和A3的LDP Router-id分别是1、2、3、4和5。R1将其LDP Router-id 1放入路径矢量TLV,随同标签1/L1通过LDP分发给上游的ATM LSR A1。A1将其LDP Router-id 2后缀到路径矢量TLV中,随同标签1/L2通过LDP分发给上游的ATM LSR A2(为简化路径矢量TLV的描述,图1-23暂不考虑A1向A3的LDP分发)。A2将其LDP Router-id 3后缀到路径矢量TLV中,随同标签1/L3通过LDP分发给上游的ATM LSR R2。假设A3从A2接收路径矢量TLV,将其LDP Router-id 5后缀到路径矢量TLV中,通过LDP分发给A1。此时,A1发现路劲标签TLV中已经包含了LDP Router-id 2,因此A1拒绝接收此LDP分发。在信元模式MPLS中,虽然没有TTL机制来防止环路,但是跳数TLV可以设置最大跳数,而路径TLV可以防止产生环路。


a43cfc66425157997022256f89f430779d02b370

1.9.3 虚电路整合

在信元模式MPLS网络中,如果LSR接收了多个上游LSR对于同一个网络前缀的标签请求,那么,此 LSR 为每个上游 LSR 都生成映射此网络前缀的本地标签。因此,当ATM E-LSR的数量很多时,与其直连的核心ATM LSR需要维护的标签数量会迅速增加。相应的优化技术是ATM LSR生成全局范围有效的本地标签,即为每个上游LSR分发相同的标签。

在信元模式MPLS网络中,LSR减少标签数量的最常用技术是虚电路整合(VC-merge)。在虚电路整合中,一个LSR为每个网络前缀分配一个标签,其上游LSR经过此LSR向目的网络发送数据包时,都使用相同的出向标签。图1-24是在图1-19的网络中增加新的ATM E-LSR R3,直连到ATM LSR A2。当禁用虚电路整合时,针对网络前缀172.16.1.0/24,A2分别为上游LSR R2和R3分配本地标签1/L3和1/L5。经过LDP分发过程以后,R2和R3分别以1/L3和1/L5作为网络前缀172.16.1.0/24的出向标签。


0891c3d2bbc7cb0da8fe2051e882e28e939197c4

但是,信元模式MPLS网络开启了虚电路整合以后,R2和R3都使用1/L3作为网络前缀172.16.1.0/24的出向标签,因此虚电路整合可以减少ATM LSR需要维护的标签数量。

1.9.4 虚电路整合与信元交织

ATM LSR开启了虚电路整合以后,虽然可以减少ATM LSR需要维护的标签数量,但是也引入新问题—信元交织(Cell Interleave)。ATM LSR开启了虚电路整合以后,所有上游LSR都使用相同的出向标签向目的网络发送数据包。如果多个上游LSR同时向相同的目的网络发送ATM信元,那么ATM LSR无法识别这些ATM信元来自哪个上游LSR,因为这些ATM信元的VPI/VCI相同(标签相同)。来自不同上游LSR且具有相同VPI/VCI的ATM信元混合在一起,使得对端路由器无法将ATM信元承载的数据还原为IP数据包,称为“信元交织”。


e0906c8b944eded2cfa3bc8c803207e32a8ef16b

图1-26所示的信元模式MPLS网络禁用了虚电路整合,ATM LSR A2直连着ATM E-LSR R2和R3。A2为网络前缀172.16.1.0/24分配两个本地标签1/L3和1/L5。A2为了确定本地标签1/L3和1/L5所对应的出向标签,需要向A1发送标签请求。A2接收A1的标签1/L2以后,将本地标签1/L3和1/L5的出向标签都设置为1/L2。但是,A2无法向A1传递数据源的信息。因此,如果A1接收了VPI/VCI 1/L2的ATM信元,那么A1无法判断该ATM承载的数据来自R2或R3。

在某些情况下,ATM LSR之间只传递来自于某个数据源的ATM信元,而将来自于另一个数据源的ATM信元缓存起来。在被传递的ATM信元中,最后一个ATM信元的“帧结尾”比特位置1,即这些被传递的ATM信元可以还原为完整的IP数据包。然后,ATM LSR将缓存中的可以还原为完整IP数据包的ATM信元转发出去,这样就可以为另一个数据源提供数据转发服务。因此,这样解决方案可以继承虚电路整合的优势,但是当多个数据源同时向相同的网络发送数据时,ATM LSR的缓存机制会引入转发延迟。

如果ATM LSR没有缓存ATM信元的能力,那么ATM LSR需要禁用虚电路整合以避免信元交织及相关问题。


b15c13bc50d220ed0783614e8ab418564bd7a0a7

1 ATM交换机只能根据ATM信元头的信息转发数据包,无法解析ATM负荷中的信息。—译者注

相关文章
|
JSON iOS开发 开发者
uniapp配置ios的Universal Link和associate domains
uniapp配置ios的Universal Link和associate domains
|
12天前
|
设计模式 监控 前端开发
深入解析iOS中的并发编程模式
【4月更文挑战第20天】 在当今移动应用开发中,提升程序的响应性和性能是至关重要的。特别是在iOS平台上,合理利用多线程和并发编程技术可以显著改善用户体验。本文旨在探讨几种在iOS开发中广泛使用的并发编程模式,包括线程、GCD(Grand Central Dispatch)、Operation Queues以及异步设计模式等。通过对这些技术的深入分析与比较,我们不仅将揭示各自的优势和潜在缺陷,还会展示如何结合它们以解决实际开发中遇到的并发挑战。
|
13天前
|
调度 iOS开发 开发者
iOS 中的并发编程模式:理解 GCD 和 Operation Queues
【4月更文挑战第19天】 在现代 iOS 应用开发中,有效地管理线程和并发是至关重要的。为了确保用户界面的流畅性和后台任务的高效运行,开发者需要掌握并发编程技术。本文深入探讨了两种主要的并发模式:Grand Central Dispatch (GCD) 和 Operation Queues。我们将分析它们的工作原理,比较它们的特点,并通过实际代码示例说明如何在 iOS 应用中实现高效的并发处理。通过本文,读者将获得在 iOS 平台上进行多线程开发的实用知识,以及如何根据不同的应用场景选择最合适的并发工具。
|
2月前
|
移动开发 监控 小程序
mPaaS常见问题之uniapp ios端云打包的配置config文件如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
30 0
|
3月前
|
缓存 小程序 Android开发
mPaaS问题之iOS调用插件的时候提示没有配置mpaas. Config文件如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
64 1
|
9月前
|
网络协议 数据安全/隐私保护 iOS开发
Cisco设备的简介和IOS的备份、恢复、升级
在使用路由器、交换机的过程中,lOS的备份,恢复和升级是网络管理员的重要工作。
205 0
|
9月前
|
开发框架 移动开发 虚拟化
uniapp打包之配置MacOS虚拟机生成iOS打包证书
uniapp是一款跨端开发框架,可用于快速开发iOS、Android、H5等多端应用。本文将详细介绍如何实现uniapp开发的iOS应用打包。
172 0
|
10月前
|
开发工具 iOS开发 开发者
iOS 暗黑模式的适配总结
iOS 暗黑模式的适配总结
|
iOS开发
IOS 黑暗模式简单理解
IOS 黑暗模式简单理解
72 0