法律状态公告日
法律状态信息
法律状态
2016-09-21
未缴年费专利权终止 IPC(主分类):G06F12/08 授权公告日:20071017 终止日期:20150728 申请日:20030728
专利权的终止
2007-10-17
授权
授权
2006-05-03
实质审查的生效
实质审查的生效
2005-02-09
公开
公开
技术领域
本发明涉及虚拟专用网络技术,特别涉及基于二层的虚拟专用网业务介质访问控制地址收敛方法。
背景技术
运营商为用户提供专线服务已经有很长的历史了,现在的技术条件,已经实现了跨更大地域、采用更通用网络的服务提供手段。对于用户组建多点之间的虚拟网络的需求,有基于多协议标签交换(MPLS)网络的多点之间虚拟专用局域网服务(VPLS)。
VPLS实现的二层专用虚拟专用网络(L2VPN)业务,当隧道侧发生变动的时候,为了保证业务的快速恢复,需要将老的二层转发表项删除掉。在L2VPN的标准草案中,也已经讨论了更新二层转发这个问题。但是草案中讨论的实现方案要依靠生成树协议来发送介质访问控制(MAC)地址unlearning消息,并逐个传送,而且更深入的要求L2VPN实现分离的MAC地址学习机制。
在基于标签分发协议(LDP)方式的VPLS L2VPN中,数据平面在接收到用户侧的报文后,首先利用目的MAC查找单播MAC表,期望找到对应的表项,从表项中索引到对应的隧道索引。数据平面根据转发的报文学习到与L2VPN用户相关的MAC表项,从而在下次转发的过程中就不需要走广播流程,而直接查找单播MAC表索引到隧道,从而实现正确、有效的转发。如果发现没有找到目的MAC地址对应的MAC单播表,就首先将源MAC学习,然后走广播流程,该报文被广播到整个VPLS域内。
但是当隧道侧的出接口或者隧道本身发生使能或者去使能之后,原有的MAC表项很可能就不能够在使用了,就需要有个很好的方法进行删除。否则如果还按照原来的MAC表项进行转发的话,就很有可能导致业务不通或者索引到错误的隧道。目前的MAC表有老化机制,一段时间内没有报文索引到它,当老化定时器超时后就会被老化掉。但是MAC表的老化定时器一般情况下都比较长,S8016的规格是缺省值300秒,其他产品有可能更长。在网上真正应用的时候,最坏的情况是300秒老化时间内L2VPN业务都不通。这是用户所无法忍受的。
总之,现有技术中L2VPN的MAC表收敛存在以下缺点:
(1)收敛速度慢
(2)需要依靠第三方协议来实现
(3)对设备的处理能力有比较高的要求,即需要能够快速感应到组网的变化并且逐个传送这个消息。
发明内容
本发明的目的在于提供一种基于二层虚拟专用网络的介质访问控制地址快速收敛方法,以能够更简单、直接的实现介质访问控制(MAC)地址收敛。
本发明的技术方案:一种基于二层的虚拟专用网业务的介质访问控制地址收敛方法,该方法包括:
第一判断步骤,当隧道由不可传输状态变为可传输状态时,由虚拟专用网业务模块判断隧道的当前出接口与前次出接口是否一致;
收集步骤,在第一判断步骤的判断结果为不一致时,将所述的前次出接口的索引值添加到本地收集链表中;
第二判断步骤,当虚拟电路由不可传输状态变为可传输状态时,由虚拟专用网业务模块根据本地虚拟电路节点结构中的标识隧道的标签交换路占用标记(lsptoken)判断该虚拟电路的传输状态是否发生过变化;
第三判断步骤,在第二判断步骤的判断结果为发生过变化时,进一步判断该虚拟电路对应隧道的当前出接口与前次出接口是否一致;
删除步骤,在第三判断步骤的判断结果为不一致时,由相关模块根据本地收集链表中的信息下发删除对应介质访问控制地址消息,触发删除该介质访问控制地址。
根据上述方法:
在第一、第三判断步骤中,如果判断结果为一致,则进行其他正常处理流程。
在收集步骤中,将前次出接口的索引值添加到本地收集链表时先判断该链表中是否已存在所述前次出接口的索引值,如果存在则不再进行添加操作,否则申请一个新的节点,将所述索引值加入链表中。
所述标识隧道的标签交换路占用标记(lsptoken)在初始化时置为无效值。
在第二判断步骤的判断结果为未发生过变化时,则该虚拟电路向标签交换路径代理模块(即lspagt模块)申请一个标识隧道的标签交换路占用标记(lsptoken),并赋值到该虚拟电路对应的结构节点的相应变量中。
删除步骤包括下述步骤:
启动一定时器开始定时;
定时器超时后,将本地接口信息链表发送到二层接口管理模块(L2IF);
二层接口管理模块将链表中节点取出并下发到接口的微码,由接口的微码删除介质访问控制地址表。
本发明具有以下有益效果:
(1)实现简单;
只需要本机主要特性中增加相关的代码即可实现,与其他特性基本无关。
(2)不依靠其他协议进行信令的传送;
此方法不需要其他的辅助协议进行信令的传送,只要求本机自己实现相应的MAC地址删除即可,不需要其他设备的配合。
(3)收敛速度更快,业务恢复时间很快;
传统的方法需要信令经过多次传送,到达本机后再进行处理,所以收敛的时间较长。本专利提到的方法只需要本机进行操作,同样可以实现相同的功能。
(4)对其他的基本转发业务没有影响。
本专利提到的方法只与虚拟专用网业务相关,与基本的IP转发模块没有任何影响,不会影响到其他业务的转发性能。
附图说明
图1为服务提供者边界连接的示意图;
图2为基于二层的虚拟专用局域网模块的结构框图;
图3为隧道端口信息收集流程图;
图4为虚拟电路删除MAC表项流程图。
具体实施方式
参阅图1所示,设备PE(即服务提供者边界)通过光纤等物理介质连接,光纤等为设备间的物理通道,而虚拟隧道Tunnel是通过标签分发协议(LDP)在物理通道内构造出来传输通道。基于二层的虚拟专用网((Layer 2 VPN module,简称L2VPN)配置的虚拟电路(简称VC)就是包含在隧道Tunnel中,同样可以看做是一条条细小的隧道,报文就是通过这一条条小的隧道进行传输的。实际上对于各种设备的报文转发,简单来讲,就是从A端口接收到报文,对其进行分析、处理,然后通过B端口转发出去。为了实现这个目的,就需要根据报文的内在信息,在本地的某些表项中进行查找,这个表项就是报文的信息与接口的对应关系。也就是说,接收到报文之后,需要找到它应该从哪个端口再给发送出去。
可以看出来,VC能够实现传输的重要条件之一就是隧道Tunnel被使能,即隧道处于能够进行报文传输的状态。但是隧道Tunnel使能之后,VC也不一定能够传输数据,因为这还与其他的因素相关,比如接口状态、协议协商是否成功等等。因此,VC如果由不可传输状态变为可传输状态(UP)了,那么隧道Tunnel也必然是变为可传输状态(UP);反之,隧道处于可传输状态,VC不一定能够从不可传输状态变为可传输状态。
参阅图2所示,图中表示了基于二层的虚拟专用网模块(L2VPN)、二层接口管理模块(Layer 2 interface manage module,简称L2IF)和标签交换隧道代理模块(Label Switch Path Agent module,简称lspagt)的关系。
二层接口管理模块负责接口的管理,主要包括:接口数据结构的维护、接口索引的分配、接口状态的监控等等,通知其他模块进行MAC地址删除也是其负责功能其中之一。
标签交换隧道代理模块主要负责标识隧道的标签交换路径占用(简称lsptoken)索引的管理与分配、L2VPN表项的下发(下发到微码)等等。每配置一条VC连接,就需要向其申请一个lsptoken,lsptoken就是为了把上层的VC标识和微码中的VC隧道标识关联起来,是一个重要的关键字。所以,只要这个VC存在,它就会一直占用一个lsptoken,直到将VC删除为止。
对于本发明,L2VPN的介质访问控制(MAC)地址的快速收敛,是通过向二层接口管理模块发送针对某个特定端口MAC地址的删除消息,二层接口管理模块采用向微码的接口发送删除消息而实现的。L2VPN负责收集在隧道变化后的相关接口与槽位信息,并存入本地专门用于收集此信息的链表中。本发明与二层接口管理模块(L2IF)主要的关系就是删除与特定接口关联的MAC地址,与lspagt模块的关系就是申请与释放Lsptoken。
本发明的主要过程:
(1)初始化的时候将本地虚拟电路(VC)节点结构中的标识隧道的lsptoken标记置为无效值,表示虚拟电路未曾从不可传输状态变化为可传输状态。
(2)隧道由可传输状态变为不可传输状态(DOWN)时,不对本地链表进行更新操,即不将发生状态变化的接口索引信息记录到链表中。因为隧道DOWN的原因有很多种,比如用户把网线拔掉、对端设备出现问题、协议交互有问题等等。
(3)隧道由不可传状态变为可传输状态(UP)时,判断此时的隧道出接口和上次的隧道出接口是否一致,如果不一致,则表明出接口发生了变化,则将上次的出接口的索引值添加到本地收集链表中去。所述的接口的索引值是能够在设备内部处理过程中唯一能够标识接口的信息之一。
(4)虚拟电路(VC)由不可传输状态变为可传输状态(UP)时,判断该虚拟电路所对应的lsptoken是否为无效值;如果不是无效值,说明该虚拟电路曾经在不可传输状态和可传输状态(UP/DOWN)之间变化过,进一步判断其对应的隧道出接口是否与原来一致;假如不一致,则启动15秒定时器,等待15秒定时器超时后按照收集到的端口信息链表,通过二层接口管理模块(也可为其他模块)下发删除相应MAC地址的消息,触发删除MAC地址。
参阅图3所示,当某一条隧道由不可传输状态变为可传输状态时,虚拟专用网业务会判断此隧道信息节点中的上次出接口是否为无效值,如果为无效值,那么说明此隧道是第一次UP,不需要做端口收集工作,所以直接转正常处理流程。如果此隧道在这次UP之前曾经发生过UP,那么其上次出接口肯定不是无效值,则再将此隧道的当前出接口与上次的出接口进行比较,看两者是否相等。如果相等,则不需要将其端口对应的MAC表中的MAC地址删除;如果不相等,则首先判断隧道的上次出接口是否已经添加到本地链表中去了,如果已经添加则直接返回。如果没有在本地链表中找到,则向此本地链表中添加此隧道的上次的出接口索引。至此,完成了一次接口收集工作。当有别的隧道发生UP的时候,同样进行这样的操作。
参阅图4所示,隧道UP的时候进行接口信息的收集工作,等到虚拟电路UP时,才进行真正的MAC地址删除操作。每一条虚拟电路都是与某一条隧道相关的,那么如果某一条虚拟电路UP时,首先判断其对应的lsptoken是否为无效值,如果为无效值,那么说明这条虚拟电路(VC)自从配置以来,从来没有使能过,则向负责lsptoken分配的lspagt模块申请一个lsptoken,并将申请到的lsptoken赋值到该虚拟电路对应的结构节点中。如果在该虚拟电路UP之前曾经UP过,那么就需要判断其对应的隧道出接口是否与上次的相同。如果不相同,则启动15秒定时器,当15秒定时器超时后,将收集的接口信息链表发送到二层接口管理模块(L2IF),由二层接口管理模块模块将一个个节点取出来,下发到微码进行MAC表的删除。
机译: 提供基于MPLS的第二层虚拟专用网服务的方法和系统
机译: 网络和基于交换的虚拟连接提供第二层虚拟专用网络的方法
机译: 网络和基于交换的虚拟连接提供第二层虚拟专用网络的方法