一种在本地接入之间广播数据报文的方法及装置的制作方法

文档序号:7745363阅读:158来源:国知局
专利名称:一种在本地接入之间广播数据报文的方法及装置的制作方法
技术领域
本发明涉及分布式网络设备在虚拟专用局域网业务(VPLS,Virtual PrivateLan Service)网络中数据报文的广播技术,特别是一种在本地接入之间广播数据报文的方法及
直o
背景技术
随着互连网和企业内部网的不断发展,将分散的网络在逻辑上整合成一个大型专 用网的业务需求越来越强烈,虚拟专用网络(VPN,Virtual PrivateNetwork)技术因此应 运而生。经过近20年的发展,基于第三层的VPN已日渐成熟。但这种技术存在明显的不 足,即运营商需要介入客户的路由计划,导致客户不能自行决定网络层,从而带来了维护 和应用的困难。为了解决上述问题,基于多协议标签交换(MPLS,Multi-Protocol Label Switching)的二层VPN技术——VPLS被提上日程。一个典型的VPLS本地接入主要有两种方式,包括以太网(Ethernet)接入和虚拟 局域网(Vlan, Virtual local area network)接入;其中,Ethernet 接入,是指端口接入, 从该端口进入的二层数据报文全部进入VPLS网络中,而并不关心数据报文中以太网帧头 的Vlan信息;Vlan接入,是指端口与Vlan联合接入,只有当数据报文中以太网帧头的Vlan 信息与所配置的Vlan信息一致时,从该端口进入的数据报文才可以进入VPLS网络中。在VPLS网络数据报文转发原则中,VPLS网络中的设备从一个本地接入接收到目 的地址未知的数据报文时,需要向VPLS网络中与该本地接入具有同一个VPLS域内的远端 设备和其他本地接入广播该数据报文,但禁止向数据报文来源的本地接入进行广播。如图 1所示,接入1、接入2和接入3分别是一个VPLS网络设备同一 VPLS域的三个不同的本地 接入。VPLS网络设备从接入1接收到数据报文后,若经查找发现该数据报文的目的地址未 知,则在VPLS网络设备内部,需要向接入2和接入3广播该数据报文,但是禁止向接入1广 播该数据报文;接入2和接入3接收到该数据报文之后,再将其转发到其他设备。当前,分布式网络设备按照其对数据报文的处理流程,可分为三个模块,分别定义 如下入口子模块用于将接收到的数据报文中的某些关键信息如MAC地址、Vlan信息 封装后,发送给转发矩阵子模块;转发矩阵子模块用于将数据报文转发到确定的出口子模块;出口子模块完成对数据报文的相关信息如Vlan信息的封装并转发至确定出口。在现有技术中,分布式网络设备在转发矩阵子模块中实现目的地址未知的数据报 文在本地接入之间的广播。分布式网络设备的入口子模块接收到目的地址未知的数据报文 后,将数据报文入口对应的物理端口号添加到该数据报文的内部描述符中,然后入口子模 块将此内部描述符和数据报文组成一个封装包送到转发矩阵子模块;转发矩阵子模块为此 VPLS域内的其他远端出口和本地接入出口复制该数据报文,无条件地向远端出口广播该数 据报文。但在向本地接入出口广播数据报文前,需要判断封装包的内部描述符中携带的物理端口号是否与待转发的本地接入出口的物理端口号相同,如果相同则不向该本地接入出 口转发该数据报文,否则,则向该本地接入出口转发该数据报文。由此可知,转发矩阵子模块是通过判断封装包的内部描述符中携带的物理端口号 与待广播的本地接入的物理端口是否相同,来决定是否向本地接入出口转发该数据报文。 这样存在的问题是,如果两个本地接入都采用的是Vlan接入方式,使用的物理端口相同, 但是Vlan信息不同,那么从其中一个本地接入进入的数据报文,则不仅不会被广播到数据 报文所进入的本地接入,也不会被广播到另一个与之具有同一物理端口的本地接入,这样 就违背了 VPLS网络的数据转发原则。

发明内容
有鉴于此,本发明的主要目的在于提供一种在本地接入之间广播数据报文的方法 及装置,使得目的地址未知的数据报文能够在同一物理端口下不同类型的本地接入之间实 现相互广播。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种在本地接入之间广播数据报文的方法,该方法包括转发矩阵子模块复制封装包,并将该封装包插入到出口子模块对应的转发队列末 尾;出口子模块比较该封装包中的标识属性与待转发的本地接入标识属性是否相同, 如果不相同,则将该封装包中的数据报文按照出接口封装信息封装后转发到待转发的本地 接入,并将该封装包从转发队列中删除。上述方案中,所述转发矩阵子模块复制封装包之前,该方法还包括入口子模块对 接收到的目的地址未知的数据报文封装成一个封装包,并将该封装包插入到转发矩阵子模 块的广播队列末尾。上述方案中,所述封装包中包括数据报文来源的本地接入标识属性、数据报文内 容及该数据报文所属虚拟专用局域网业务(VPLS)域编号。上述方案中,所述封装包插入到转发矩阵子模块的广播队列末尾之后,转发矩阵 子模块复制封装包之前,该方法还包括转发矩阵子模块通过该封装包中的VPLS域编号查 询出接口转发表,并从中读取一条出接口条目,得到对应的转发队列编号。上述方案中,所述将该封装包插入到出口子模块对应的转发队列末尾后,该方法 还包括如果出接口转发表中还存在下一条出接口条目,则读取下一条出接口条目并得到 相应的转发队列编号,并将封装包复制后插入到出口子模块对应的转发队列末尾;否则将 该封装包从广播队列中删除。上述方案中,如果出口子模块比较该封装包中的标识属性与待转发的本地接入标 识属性相同,则不转发该数据报文,如果转发队列中存在下一个封装包,继续比较封装包中 标识属性与待转发的本地接入标识属性是否相同。本发明还提供了一种在本地接入之间广播数据报文的装置,该装置包括封装包 复制模块、标识属性比较模块和报文封装转发模块;其中,位于转发矩阵子模块的封装包复制模块,用于将封装包复制后插入到出口子模块 对应的转发队列末尾;
位于出口子模块的标识属性比较模块,用于比较该封装包中的标识属性与待转发 的本地接入标识属性是否相同,如果不相同,则将该封装包中的数据报文发送至报文封装 转发模块;位于出口子模块的报文封装转发模块,用于将数据报文按照出接口封装信息封装 后转发到待转发的本地接入。上述方案中,该装置还包括位于转发矩阵子模块的封装包复制模块和出接口条 目读取模块;其中,封装包读取模块,用于从广播队列中读取封装包,并通过该封装包中的VPLS域编 号查询出接口转发表;出接口条目读取模块,用于在接口转发表中读取一条出接口条目,并得到对应的 转发队列编号。上述方案中,该装置还包括位于入口子模块的报文封装模块和封装包转发模块; 其中,报文封装模块,用于收到目的地址未知的数据报文后,将收到该数据报文的本地 接入的物理端口号和虚拟局域网(Vlan)信息作为数据报文来源的本地接入的标识属性, 并将该标识属性、数据报文内容以及该数据报文所属VPLS域编号封装在一个封装包中;封装包转发模块,用于将封装包插入到转发矩阵模块的广播队列的末尾。上述方案中,该装置还包括位于出口子模块中的封装包读取模块,用于从转发队 列中读取一个封装包。本发明所提供的一种在本地接入之间广播数据报文的方法及装置,转发矩阵子模 块将复制的封装包插入到出口子模块对应的转发队列末尾;出口子模块比较该封装包中的 标识属性与待转发的本地接入标识属性是否相同,如果不相同,则将该封装包中的数据报 文按照出接口封装信息封装后转发到待转发的本地接入。采用本发明所述的方法及装置, 能够使目的地址未知的数据报文在同一 VPLS域内同一物理端口下不同类型的本地接入之 间实现相互广播,符合VPLS网络的数据报文转发原则。


图1为VPLS网络中数据报文转发的示意图;图2为本发明在本地接入之间广播数据报文的方法中入口子模块工作流程图;图3为本发明在本地接入之间广播数据报文的方法中转发矩阵子模块工作流程 图;图4为本发明在本地接入之间广播数据报文的方法中出口子模块工作流程图;图5为本发明在本地接入之间广播数据报文的装置组成结构示意图。
具体实施例方式本发明的基本思想是转发矩阵子模块将复制的封装包插入到出口子模块对应的 转发队列末尾;出口子模块比较该封装包中的标识属性与待转发的本地接入标识属性是否 相同,如果不相同,则将该封装包中的数据报文按照出接口封装信息封装后转发到待转发 的本地接入。
本发明提供的一种在本地接入之间广播数据报文的方法,如图2、图3、图4所示, 其中,图2为入口子模块的工作流程,包括以下步骤步骤201 入口子模块对接收到的目的地址未知的数据报文封装成一个封装包;本步骤中,入口子模块收到目的地址未知的数据报文后,将收到该数据报文的本 地接入的物理端口号和Vlan信息作为数据报文来源的本地接入的标识属性,并将该标识 属性、数据报文内容以及该数据报文所属VPLS域编号封装在一个封装包中。步骤202 将该封装包插入到转发矩阵子模块的广播队列的末尾。其中,转发矩阵子模块的处理流程,如图3所示,包括以下步骤步骤301 检查广播队列中是否存在封装包,如果存在,则执行步骤302 ;否则,循 环执行步骤301 ;步骤302 从广播队列中读取第一个封装包,并通过该封装包中的VPLS域编号查 询出接口转发表;本步骤中,根据VPLS域编号查询出接口转发表为现有技术,在此不做详细描述。步骤303 检查出接口转发表中是否存在出接口条目,如果存在,则读取第一条出 接口条目,得到对应的转发队列编号,并执行步骤304 ;否则,执行步骤306 ;本步骤中,在出接口条目中,含有待转发的本地接入的标识属性如端口号和Vlan 信息,一个出口子模块对应一个本地接入,从而对应一个出接口条目,利用现有技术,通过 该出接口条目可以得到对应的转发队列编号,从而可以将该封装包通过转发队列转发至待 转发的本地接入;如果在出接口转发表中不存在出接口条目,说明不存在待转发的本地接 入,也就不需要转发该封装包,则执行306。步骤304 复制该封装包,并将其插入到出口子模块对应的转发队列末尾;本步骤中,封装包所插入的转发队列即为上述出接口条目对应的转发队列。步骤305 检查出接口转发表中是否存在下一条出接口条目,如果存在,则读取下 一条出接口条目,得到相应的转发队列编号,并返回步骤304;否则,执行步骤306 ;步骤306 从广播队列中删除该封装包,返回步骤301。出口子模块的工作流程如图4所示,包括以下步骤步骤401 检查转发队列中是否存在封装包,如果存在,则从转发队列中读取第一 个封装包,并执行步骤402 ;否则,循环执行步骤401 ;步骤402 比较封装包中的标识属性与待转发的本地接入的标识属性是否相同, 如果不同,则执行步骤404 ;如果相同,则不转发该数据报文,并执行步骤403 ;本步骤中,出口子模块中含有待转发的本地接入的标识属性;将上述标识属性与 转发队列中封装包的标识属性相比较,如果不相同,则执行步骤404;如果相同,则不转发 该数据报文,并执行步骤403。步骤403 检查转发队列中是否存在下一个封装包,如果存在,则从转发队列中读 取下一个封装包,并返回步骤402 ;如果不存在,则返回步骤401 ;步骤404:将封装包中的数据报文封装后转发到待转发的本地接入,并从转发队 列中删除该封装包,返回步骤401。本步骤中,出口子模块按照出口封装信息如Vlan信息,将该封装包中的数据报文 进行重新封装后,转发到待转发的本地接入。
由此,该数据报文就可以广播到与其来源的本地接入具有相同物理端口但不同 Vlan信息的其他本地接入,实现了数据报文在本地接入之间的广播。上述入口子模块、转发 矩阵子模块和出口子模块的工作进程均可并行执行。基于上述方法,本发明还提供了一种在本地接入之间广播数据报文的装置,如图5 所示,该装置包括封装包复制模块、标识属性比较模块和报文封装转发模块;其中,封装包复制模块,用于将封装包复制后插入到出口子模块对应的转发队列末尾, 位于转发矩阵子模块;标识属性比较模块,用于比较该封装包中的标识属性与待转发的本地接入的标识 属性是否相同,如果不相同,则将该封装包中的数据报文发送至报文封装转发模块,位于出 口子模块;报文封装转发模块,用于将数据报文按照出接口封装信息封装后转发到待转发的 本地接入,位于出口子模块。该装置还包括位于转发矩阵子模块的封装包读取模块和出接口条目读取模块; 其中,封装包读取模块,用于从广播队列中读取封装包,并通过该封装包中的VPLS域编 号查询出接口转发表;出接口条目读取模块,用于在接口转发表中读取一条出接口条目,并得到对应的 转发队列编号。该装置还包括位于入口子模块的报文封装模块和封装包转发模块;其中,报文封装模块,用于收到目的地址未知的数据报文后,将收到该数据报文的本地 接入的物理端口号和Vlan信息作为数据报文来源的本地接入的标识属性,并将该标识属 性、数据报文内容以及该数据报文所属VPLS域编号封装在一个封装包中;封装包转发模块,用于将封装包插入到转发矩阵模块的广播队列的末尾。该装置还包括位于出口子模块中的封装包读取模块,用于从转发队列中读取一 个封装包。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在 本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护 范围之内。
权利要求
一种在本地接入之间广播数据报文的方法,其特征在于,该方法包括转发矩阵子模块复制封装包,并将该封装包插入到出口子模块对应的转发队列末尾;出口子模块比较该封装包中的标识属性与待转发的本地接入标识属性是否相同,如果不相同,则将该封装包中的数据报文按照出接口封装信息封装后转发到待转发的本地接入,并将该封装包从转发队列中删除。
2.根据权利要求1所述的方法,其特征在于,所述转发矩阵子模块复制封装包之前,该 方法还包括入口子模块对接收到的目的地址未知的数据报文封装成一个封装包,并将该 封装包插入到转发矩阵子模块的广播队列末尾。
3.根据权利要求1或2所述的方法,其特征在于,所述封装包中包括数据报文来源的 本地接入标识属性、数据报文内容及该数据报文所属虚拟专用局域网业务(VPLS)域编号。
4.根据权利要求3所述的方法,其特征在于,所述封装包插入到转发矩阵子模块的广 播队列末尾之后,转发矩阵子模块复制封装包之前,该方法还包括转发矩阵子模块通过该 封装包中的VPLS域编号查询出接口转发表,并从中读取一条出接口条目,得到对应的转发 队列编号。
5.根据权利要求1所述的方法,其特征在于,所述将该封装包插入到出口子模块对应 的转发队列末尾后,该方法还包括如果出接口转发表中还存在下一条出接口条目,则读取 下一条出接口条目并得到相应的转发队列编号,并将封装包复制后插入到出口子模块对应 的转发队列末尾;否则将该封装包从广播队列中删除。
6.根据权利要求1所述的方法,其特征在于,如果出口子模块比较该封装包中的标识 属性与待转发的本地接入标识属性相同,则不转发该数据报文,如果转发队列中存在下一 个封装包,继续比较封装包中标识属性与待转发的本地接入标识属性是否相同。
7. 一种在本地接入之间广播数据报文的装置,其特征在于,该装置包括封装包复制 模块、标识属性比较模块和报文封装转发模块;其中,位于转发矩阵子模块的封装包复制模块,用于将封装包复制后插入到出口子模块对应 的转发队列末尾;位于出口子模块的标识属性比较模块,用于比较该封装包中的标识属性与待转发的本 地接入标识属性是否相同,如果不相同,则将该封装包中的数据报文发送至报文封装转发 模块;位于出口子模块的报文封装转发模块,用于将数据报文按照出接口封装信息封装后转 发到待转发的本地接入。
8.根据权利要求7所述的装置,其特征在于,该装置还包括位于转发矩阵子模块的封 装包复制模块和出接口条目读取模块;其中,封装包读取模块,用于从广播队列中读取封装包,并通过该封装包中的VPLS域编号查 询出接口转发表;出接口条目读取模块,用于在接口转发表中读取一条出接口条目,并得到对应的转发 队列编号。
9.根据权利要求8所述的装置,其特征在于,该装置还包括位于入口子模块的报文封 装模块和封装包转发模块;其中,报文封装模块,用于收到目的地址未知的数据报文后,将收到该数据报文的本地接入的物理端口号和虚拟局域网(Vlan)信息作为数据报文来源的本地接入的标识属性,并将 该标识属性、数据报文内容以及该数据报文所属VPLS域编号封装在一个封装包中; 封装包转发模块,用于将封装包插入到转发矩阵模块的广播队列的末尾。
10.根据权利要求9所述的装置,其特征在于,该装置还包括位于出口子模块中的封 装包读取模块,用于从转发队列中读取一个封装包。
全文摘要
本发明公开了一种在本地接入之间广播数据报文的方法及装置,转发矩阵子模块将复制的封装包插入到出口子模块对应的转发队列末尾;出口子模块比较该封装包中的标识属性与待转发的本地接入标识属性是否相同,如果不相同,则将该封装包中的数据报文按照出接口封装信息封装后转发到待转发的本地接入。采用本发明所述的方法及装置,能够使目的地址未知的数据报文在同一VPLS域内同一物理端口下不同类型的本地接入之间实现相互广播,符合VPLS网络的数据报文转发原则。
文档编号H04L12/56GK101800705SQ20101014039
公开日2010年8月11日 申请日期2010年3月18日 优先权日2010年3月18日
发明者殷江培 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1