扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
一、引言
在网络性能仿真研究方面,OPNET公司作为世界最为成熟的网络仿真工具公司,为网络运营商和技术研究人员提供了先进的仿真工具软件和大量的各种仿真模型库。但在MPLS仿真模型方面,由于各种原因目前的标准模型库(OPNET 8.1A PL3)里面没有基于ATM的MPLS(ATM-MPLS)仿真模型。但是,OPNET的仿真工具OPNET MODELER为我们提供了开发自己模型的工具和方法。由于OPNET的设备模型都是非常复杂的,要实现ATM-MPLS模型涉及各方面的知识和问题。在工作中,我们进行了ATM-MPLS及其仿真模型设计研究,并利用OPNET工具和基于IP的MPLS (IP-MPLS)模型进行了ATM-MPLS模型的实现探索。设计完成的ATM-MPLS模型能够完成基本的ATM-MPLS功能和MPLS的VPN功能以及Diff_Serv功能等多种功能研究。
下面的部分将讨论有关ATM-MPLS模型整体设计的问题,不涉及具体细节。
二、设计基础
1. ATM-MPLS交换机结构
ATM-MPLS 交换机用OSPF、LDP等控制协议来取代ATM的PNNI、Q.2931等控制协议,同时采用ATM交换机的硬件来完成交换处理工作。ATM交换机硬件直接使用MPLS LDP分配的标签进行交换处理,使用OSPF完成路由选择和寻址处理。ATM-MPLS的LER结构如图 1。ATM-MPLS LSR结构相对LER来说没有FEC划分模块。
ATM-MPLS交换机中有多种实现方式,我们在研究ATM-MPLS交换模型的时候将实现下列情况的MPLS交换机的模型:
(1)使用于采用直接连接方式连接网络。不混合ATM;
(2)非MPLS包,通过默认VPI/VCI=0/32信元传送;
(3)选用LDP为控制信令;
(4)选用OSPF和BGP为路由协议;
(5)交换机不支持VC标签合并;
(6)MPLS包和非MPLS包都使用RFC2684中AAL5的NULL封装。
LDP信令模式运行模式情况如下:
(1)下游按需请求有序控制的标签分发方式;
(2)保守标签保持方式;
(3)支持ATM-MPLS中TTL处理机制;
(4)支持ATM-MPLS中分布路径向量环路检测机制。 2. IP-MPLS模型
OPNET中具有基于IP的MPLS标准模型(IP-MPLS模型)。它也是基于标签来完成交换的,而且在交换中只是标签有效,其它IP包的字段无效,这和ATM-MPLS交换是一致的。因此,在设计ATM-MPLS仿真模型中可以参考借用IP-MPLS仿真模型。IP-MPLS模型中有许多模块和模块下面的进程模型可以直接利用或者改进后用于ATM-MPLS模型当中。原来的IP-MPLS模型实际是一个非常复杂的设备模型,可以支持多种功能。在实现上面描述的ATM-MPLS模型时,只是需要其中的一部分模块和进程模型。图 2是要使用部分的IP-MPLS模型的整体模型内部拓扑。下面是设计中涉及到修改的模块功能介绍:
(1)IP模块:完成IP转发处理、ICMP处理等处理以及IP-MPLS中的MPLS标签交换处理的整个过程。这个模块是IP-MPLS模型的核心部分。它统一协调整个模型的运行,整个模型的全局数据也在这个模块模型中定义维护:接口表,路由转发表,标签空间,LSP的NHLFE表等。这些全局的数据结构定义为Ip_Rte_Module_Data类型的数据结构指针变量。通过在模块根进程(ip_dispatch)中实现为QP_level memory。本模块里面的所有进程可以直接访问,其他模块下面的进程通过OPNET的process registry技术来完成访问。
(2)LDP模块:完成基于IP的MPLS的控制信令功能。分配的标签结果和建立的LSP将被IP模块访问使用。
ATM-MPLS和IP-MPLS的最大不同点在于: 传送包格式不同;信令(LDP等)包传送处理方式不同;出入栈时的MPLS处理不同;LDP工作方式不同;TTL处理方式不同。
其中前面三者是关键,是关乎整体的,下面的模型设计描述中,将着重描述前面三者。
三、ATM-MPLS模型设计
1总体设计思想
在IP-MPLS模型基础上来实现ATM-MPLS模型时,可以充分利用OPNET的IP-MPLS模型中的MPLS处理功能和LDP标签分发功能。但同时由于ATM-MPLS和IP-MPLS在交换机硬件结构和协议工作模式以及MPLS实现上有所不同,在设计中需要总体上重新设计,使得满足前面叙述的ATM-MPLS交换机的情况。为了实现ATM-MPLS交换机模型,整体设计如下:
(1)使用IP-MPLS模型中ip包的模型(ip_dgram_v4)来模拟各种ATM信元,这样可以利用IP-MPLS中IP模块中的交换功能和MPLS处理功能。ATM-MPLS模型中IP数据包也使用ip_dgram_v4模型来模拟。到底仿真的是那一种包(IP)或者信元(ATM),使用ip_dgram_v4模型的中识别字段来标识。这就需要对包格式进行扩展并且动态修改包长度来使得实际长度符合信元或者IP包应该有的实际长度。LSR完成ATM信元标签交换时仍使用中MPLS Shim Header字段中的VPI/VCI值进行交换。各个字段含义在两种情况下各不相同。
(2)在ATM-MPLS中需要完成对到达的IP包或者MPLS包进行分段封装的功能,这就需要增加一个完成AAL5的分段封装以及组装功能的接口模块。考虑到充分利用IP-MPLS模型,特别是在IP模块中要集成IP处理和对ATM信元的MPLS处理和拓扑结构,在LER模型中还要对IP包进行MPLS处理,因此封装模块将被放在IP模块和收发模块之间。模块中可能传递上述描述的两种包模型,模块根据不同的包类型(由识别字段指出)进行不同的处理。
(3)在ATM-MPLS交换机中,对于LDP、路由信令包(LDP等)的传输和IP-MPLS很不相同,这里需要通过默认VPI/VCI(0/32)标签的ATM信元来传输,到下一个站需要进行重组。ATM-MPLS模型设计中,对于默认VPI/VCI的信元使用专门的包类型完成(由识别字段指出),它们和使用LDP分配VPI/VCI值的信元就是通过不同的包类型来区别的。
(4)IP模块原来只是完成IP包的转发处理和对IP的MPLS处理。现在,它要完成IP处理,对IP包的MPLS处理,对ATM信元的交换处理。其中MPLS处理在边缘LER处针对IP包工作,同时要完成针对ATM信元的出栈重组等处理;在中间LSR将针对ATM信元进行交换处理。这就需要修改IP模块内部IP处理进程和MPLS处理进程,使得它们符合ATM-MPLS的情况。
(5)由于两种MPLS中LDP的工作方式不同,因此需要修改LDP模块里面的进程模型,使得LDP的工作模式适合ATM-MPLS工作模式。但由于它的修改只是涉及LDP模块内部进程,而且不改的话不影响验证模型其它部分的设计。
(6)由于ATM-MPLS模型中LER和LSR要完成不同的工作,因此,在两种情况下,各个模块(特别是IP模块以及ATM-MPLS模块)执行的操作不同。但是它们都通过模块下面的相同进程完成,具体通过节点属性来控制不同代码段执行完成不同功能。这使用两种属性:ATM-MPLS-LSR和ATM-MPLS-LER。
2模型结构设计
基于上面的设计思想,ATM-MPLS LSR设计拓扑框图如图3所示。LER模型在节点层次上基本和LSR相同,不同点在于同时提供IP接口。IP接口通过将IP模块和收发模块直接相连。IP 模块下面的进程模型能够根据到达的不同包进行区别对待,对它们进行不同的处理。
在模型设计中,对实现ATM-MPLS模型中的关键模块(以及下面进程模型概况)设计情况如下:
(1)IP模块:基于IP-MPLS模型中的IP模块模型和进程模型开发,名称仍然为IP。它仍然维护着整个节点的运行,所有的节点接口数据,共享数据。在ATM-MPLS模型中,该模块和下面的进程模型改为同时实现IP层处理和对ATM信元的MPLS交换处理以及对IP包的MPLS处理功能。在新的模块模型设计中,关键要完成IP和MPLS处理的模块内部分离问题。
1)在完成IP层处理功能时,LER和LSR分别完成如下功能:
在LER节点中,完成IP层的整个转发处理功能,包括完成IP数据包接纳、转发、排队和丢弃等处理功能。IP模块读取IP数据包头中的目的地址信息和其它相关字段信息,通过查找路由表将数据包转发至相应接口模块,或者将从接口模块接收到的数据包转发至上层IP封装模块。
在LSR节点中,完成IP层的部分功能,主要是IP的数据包(主要是LDP等信令包)转发功能。完成信令包等到ATM接口的适配、转发功能,使得它们可以通过默认VPI/VCI信元进行传送。
2)在完成MPLS处理功能时,LER和LSR分别完成如下功能:
在LER节点中,这个模块完成MPLS层次的基本处理,比如FEC的划分,FEC到LSP的解析,以及NHFLE的创建和维护。通信中完成流量合约的检查,TTL的处理,以及用于ATM-MPLS的 标签入栈(这里预分配标签,然后通知ATM-MPLS模块中插入到ATM信元)处理,出栈处理,以及出栈时的重组处理。通信中的处理和IP-MPLS模型不同,需要对mpls-mgr进程修改。
在LSR节点中,这个模块中要完成MPLS层次的基本处理,比如FEC的划分,根据LDP模块情况完成FEC到LSP的解析,以及NHFLE的创建和维护。通信中完成ATM-MPLS信元的VPI/VCI交换功能。
3) 修改后模块模型,主要通过3种进程来实现:
ip_dispatch 进程:模块根进程,完成数据结构出初始化和整体维护 以及子进程的创建。
这里只需要修改一点使得能够同步ATM-MPLS模型中的进程的初始化和执行过程。
ip_rte_central_cpu: 完成IP的处理和转发功能。同时由于原来IP-MPLS中MPLS处理的包也需要经它转交到mpls_mgr进程,这里需要修改,使得适应对IP和MPLS两种处理分离的情况。这是一个关键点。
mpls_mgr:完成MPLS处理功能。在LER节点中,相对IP-MPLS模型增加对TTL的特殊处理,出入栈的处理方式改变,出栈的重组。这里是修改重点。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者