一种基于网桥的报文转发方法及系统的制作方法

文档序号:7807959阅读:205来源:国知局
一种基于网桥的报文转发方法及系统的制作方法
【专利摘要】本发明公开了一种基于网桥的报文转发方法和系统,用以解决基于网桥的报文转发需要删除和添加报文的VLAN头的问题。所述方法为:第一VLAN子接口接收报文,并直接向网桥发送报文;网桥将报文的出接口信息更新为第二VLAN子接口,而后向第二VLAN子接口发送更新后的报文;第二VLAN子接口接收报文;判断报文的VLAN?ID是否与第二VLAN子接口的VLAN?ID相同,根据判断结果决定是否对VLAN?ID重新赋值,并对报文进行相应处理和转发。通过判断并对VLAN?ID赋值,省去了基于网桥转发报文时对报文VLAN头的删除和添加,减少了系统内存的操作,节省成本,提高报文的转发效率,进而提高了数据的传输效率。
【专利说明】一种基于网桥的报文转发方法及系统

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种基于网桥的报文转发方法及系统。

【背景技术】
[0002]随着互联网的飞速发展,数据中心网络规模也不断扩张,业务种类不断丰富,对业务的隔离、安全性、可靠性等网络属性提出的要求也越来越高,单单依靠硬件设备已无法满足用户的需求。
[0003]虚拟局域网(Virtual Local Area Network, VLAN), 一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的数据交换技术。虚拟局域中交换机上的每个接口分别属于不同的网段,一个网段对应着一个接口,在交换机中,使用VLAN ID区分网段。
[0004]网桥是操作系统中用于连接两个VLAN的网络设备,通过绑定两个VLAN的子接口将两个VLAN连接在一起,实现两个VLAN之间的报文转发。
[0005]现有技术的网桥下skb报文转发过程中,第一 VLAN子接口接收skb报文后,删除skb报文的VLAN头,经过网桥的转发模块查找转发表确认第二 VLAN子接口后进行发送,第二 VLAN子接口接收到报文后,向skb报文内添加VLAN头,再将skb报文转发出去。在skb报文转发过程中,需要对skb报文的VLAN头进行删除和添加处理,大量skb报文的转发会导致系统的内存操作过于频繁,从而导致系统运行效率低,成本高,影响转发性能。


【发明内容】

[0006]本发明的目的是提供一种基于网桥的报文转发方法及系统,在报文转发过程中不需要对报文的VLAN头进行删除和添加处理,提高转发效率。
[0007]根据本发明一个方面,提供了一种基于网桥的报文转发方法,所述方法包括:
[0008]第一 VLAN子接口接收报文,并向网桥发送所述报文;
[0009]网桥将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二 VLAN子接口发送更新后的所述报文;
[0010]第二 VLAN子接口接收所述报文;
[0011]判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLAN ID相同,根据判断结果对所述报文进行相应的处理和转发。
[0012]上述方案中,网桥将所述报文的出接口信息更新为第二 VLAN子接口之前,所述方法还包括:网桥根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二 VLAN 子接口。
[0013]上述方案中,所述根据判断结果对所述报文进行相应的处理和转发,具体包括:
[0014]当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文;
[0015]当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID,而后第二 VLAN子接口更新所述报文的出接口信息,,并转发所述报文。
[0016]上述方案中,所述报文为带有VLAN头的skb报文。
[0017]上述方案中,所述出接口信息为skb-Mev变量,所述网桥为透明网桥。
[0018]根据本发明的另一个方面,还提供了一种基于网桥的报文转发系统,所述系统包括:第一 VLAN子接口、网桥、第二 VLAN子接口、判断模块;其中,
[0019]所述第一 VLAN子接口用于接收报文并向网桥发送所述报文;
[0020]所述网桥用于将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二 VLAN子接口发送更新后的所述报文;
[0021]所述第二 VLAN子接口用于接收所述报文;
[0022]所述判断模块用于判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLANID相同;
[0023]所述第二 VLAN子接口还用于根据判断结果对所述报文进行相应的处理和转发。
[0024]上述方案中,所述网桥包括转发表查找模块、转发模块,所述转发表查找模块用于根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二 VLAN子接口,所述转发模块用于将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二VLAN子接口发送更新后的所述报文.
[0025]上述方案中,所述系统还包括VLAN ID赋值模块;
[0026]所述VLAN ID赋值模块用于当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID ;
[0027]所述第二 VLAN子接口进一步用于,
[0028]当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,直接更新所述报文的出接口信息,并转发所述报文;
[0029]当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,所述VLAN ID赋值模块将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID后,更新所述报文的出接口信息,并转发所述报文。
[0030]上述方案中,所述报文为带有VLAN头的skb报文。
[0031]上述方案中,所述出接口信息为skb-Mev变量,所述网桥为透明网桥。
[0032]本发明提供的基于网桥的报文转发方法,通过第一 VLAN子接口接收报文,并直接向网桥发送报文;网桥将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二VLAN子接口发送更新后的所述报文;第二VLAN子接口接收所述报文;判断所述报文的VLANID是否与所述第二 VLAN子接口的VLAN ID相同:当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文;当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLANID赋值给所述报文的VLAN ID,而后第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文。通过判断并对VLAN ID赋值的方式,省去了基于网桥转发报文时,对报文的VLAN头的删除和添加,减少了系统内存的操作,节省成本,提高报文的转发效率,进而提高了数据的传输效率。

【专利附图】

【附图说明】
[0033]图1是现有技术中基于网桥的报文转发原理示意图;
[0034]图2是现有技术中基于网桥的报文转发的流程示意图;
[0035]图3是根据本发明第一实施例的基于网桥的报文转发方法的流程示意图;
[0036]图4是根据本发明第二实施例的基于网桥的报文转发系统的结构示意图。

【具体实施方式】
[0037]为使本发明的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0038]图1是现有技术中基于网桥的报文转发的原理示意图。
[0039]如图1所示,现有技术中的基于网桥的报文转发原理是:
[0040]在步骤SlOl中,第一 VLAN子接口接收报文,将所述报文的VLAN头删除,并向网桥发送删除了 VLAN头的报文;
[0041]在步骤S102中,网桥查找转发表,根据所述报文和转发表查找到的第二 VLAN子接口,将所述报文的出接口信息更新为第二 VLAN子接口,并将所述报文转发给第二 VLAN子接Π ;
[0042]在步骤S103中,第二 VLAN子接口接收到删除后的所述报文,再根据自身的信息向报文内添加VLAN头,这里所说自身的信息,包括第二 VLAN子接口的VLAN ID信息,并再次更新所述报文的出接口信息,转发报文。
[0043]通过报文的VLAN头的删除和添加对报文进行转发。
[0044]图2是现有技术中基于网桥的报文转发的流程示意图。
[0045]如图2所示,第一 VLAN子接口为eth0.10,网桥为bridge,第二 VLAN子接口为eth2.20。当报文经过正常的转发流程被发送到eth0.10后,eth0.10删除报文的VLAN头,同时将报文的出接口信息skb->dev变量由收到报文时的ethO变更为eth0.10,而后将报文发送至网桥;网桥收到报文后,查找转发表,通过转发表查找到报文的目的接口为第二VLAN子接口即eth2.20,将报文的出接口信息skb_>dev变量由eth0.10变更为eth2.20,并将报文转发至第二 VLAN子接口 eth2.20 ;eth2.20收到报文后,根据自身的信息向报文内添加VLAN头,同时将skb->deV变量由eth2.20变更为eth2,将报文转发出去。
[0046]由图1和图2可以看出,现有技术在报文转发过程中,对报文的VLAN头进行删除和添加处理,对应于报文的memmove操作,大量的报文需要大量的VLAN头的删除和添加操作即大量的memmove操作,由于系统的内存操作过于频繁,导致系统运行效率低,成本高,影响转发效率。
[0047]图3是根据本发明第一实施例的基于网桥的报文转发方法的流程示意图。本实施例提供的基于网桥的报文转发方法,减少了系统内存的操作,节省成本,提高报文的转发效率,进而提高了数据的传输效率。
[0048]如图3所示,本实施例的基于网桥的报文转发方法包括以下步骤:
[0049]S301,第一 VLAN子接口接收报文,并向网桥发送所述报文。
[0050]S302,网桥将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二VLAN子接口发送更新后的所述报文。
[0051]S303,第二 VLAN子接口接收所述报文。
[0052]S304,判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLAN ID相同,根据判断结果对所述报文进行相应的处理和转发。
[0053]这里的报文转发,可以是Linux操作系统下,两个VLAN之间通过透明网桥的报文转发。所述报文可以为带有VLAN头的skb报文,即进入VLAN流程的skb报文,包含VLAN头,所述VLAN头包括VLAN ID等内容。所述出接口信息可以为skb->dev变量。
[0054]其中,步骤S301中,不需要删除报文的VLAN头,即不需要进行memmove操作,而只保留原有操作中的出接口信息变量的更新或变更,以完成报文的转发。
[0055]步骤S302中,网桥将所述报文的出接口信息更新为第二 VLAN子接口之前,还可以包括:网桥根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二VLAN子接口。查找报文转发表及通过所查找的转发表确认报文的目的接口为现有技术,在此不再赘述。
[0056]这里,由于网桥下对报文的转发前的寻址,不是根据IP地址进行,而是根据转发表来进行的,因此,可以不读取VLAN头的字节后封装的IP层信息,也就是说,不必为了露出IP层信息而删除报文的VLAN头,也可以决定转发地址。转发地址通过转发表确定后,仅需更新或变更出接口信息,即可将报文发送至所确定的第二 VLAN子接口,而避免了报文的VLAN头的删除操作,即省去了 memmove操作,同时也不会改变报文的结构。
[0057]步骤S304中,所述根据判断结果对所述报文进行相应的处理和转发,具体包括:
[0058]当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文;
[0059]当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID,而后第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文。
[0060]因此,本发明提供的基于网桥的报文转发方法,优化了报文的转发流程,通过判断并对决定是否对VLAN ID进行赋值的方式,省去了现有技术中对报文的VLAN头的删除和添力口,不需要改变报文的结构,同时省去了大量的memmove操作,仅通过更新出接口信息,SP完成对报文的转发,减少了系统内存的操作,减少了对内存资源的消耗,节省了成本,提高了报文的转发效率,进而提高了数据的传输效率。
[0061]图4是根据本发明第二实施例的基于网桥的报文转发系统的结构示意图。
[0062]如图4所示,基于网桥的报文转发系统包括:第一 VLAN子接口 401、网桥402、第二VLAN子接口 403、判断模块404 ;其中,
[0063]所述第一 VLAN子接口 401用于接收报文并向网桥发送所述报文;
[0064]所述网桥402用于将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二 VLAN子接口发送更新后的所述报文;
[0065]所述第二 VLAN子接口 403用于接收所述报文;
[0066]所述判断模块404用于判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLAN ID 相同;
[0067]所述第二 VLAN子接口 403还用于根据判断结果对所述报文进行相应的处理和转发。
[0068]这里的报文转发,可以是Linux操作系统下,两个VLAN之间通过透明网桥的报文转发。所述报文可以为带有VLAN头的skb报文,即进入VLAN流程的skb报文,包含VLAN头,所述VLAN头包括VLAN ID等内容。所述出接口信息可以为skb->dev变量,所述网桥402可以为透明网桥。
[0069]优选地,所述网桥402包括转发表查找模块、转发模块,所述转发表查找模块用于根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二 VLAN子接口,所述转发模块用于将所述报文的出接口信息更新为第二VLAN子接口,而后向所述第二VLAN子接口发送更新后的所述报文。
[0070]优选地,所述系统还可以包括VLAN ID赋值模块405。
[0071]所述VLAN ID赋值模块405用于当所述判断模块404判断所述报文的VLAN ID与第二 VLAN子接口 403的VLAN ID不相同时,将第二 VLAN子接口 403的VLAN ID赋值给所述报文的VLAN ID ;
[0072]所述第二 VLAN子接口 403进一步用于,当所述判断模块404判断所述报文的VLANID与第二 VLAN子接口 403的VLAN ID相同时,直接更新所述报文的出接口信息,并转发所述报文;
[0073]当所述判断模块404判断所述报文的VLAN ID与第二 VLAN子接口 403的VLAN ID不相同时,所述VLAN ID赋值模块405将第二 VLAN子接口 403的VLAN ID赋值给所述报文的VLAN ID后,更新所述报文的出接口信息,并转发所述报文。
[0074]本发明第二实施例的基于网桥的报文转发系统,可以实现本发明第一实施例的基于网桥的报文转发方法。本发明基于网桥的报文转发系统各单元可以执行上述方法实施例中的各步骤。
[0075]本发明提供的基于网桥的报文转发方法及系统,通过判断并对VLAN ID赋值的方式,省去了基于网桥转发报文时,对报文的VLAN头的删除和添加,减少了系统内存的操作,节省成本,提高报文的转发效率,进而提高了数据的传输效率。
[0076]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【权利要求】
1.一种基于网桥的报文转发方法,其特征在于,所述方法包括: 第一 VLAN子接口接收报文,并向网桥发送所述报文; 网桥将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二 VLAN子接口发送更新后的所述报文; 第二 VLAN子接口接收所述报文; 判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLAN ID相同,根据判断结果对所述报文进行相应的处理和转发。
2.根据权利要求1所述的报文转发方法,其特征在于,网桥将所述报文的出接口信息更新为第二 VLAN子接口之前,所述方法还包括:网桥根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二 VLAN子接口。
3.根据权利要求1或2所述的报文转发方法,其特征在于,所述根据判断结果对所述报文进行相应的处理和转发,具体包括: 当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,第二 VLAN子接口更新所述报文的出接口信息,并转发所述报文; 当所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID,而后第二VLAN子接口更新所述报文的出接口信息,并转发所述报文。
4.根据权利要求3所述的报文转发方法,其特征在于,所述报文为带有VLAN头的skb报文。
5.根据权利要求4所述的报文转发方法,其特征在于,所述出接口信息为skb->deV变量,所述网桥为透明网桥。
6.一种基于网桥的报文转发系统,其特征在于,所述系统包括:第一 VLAN子接口、网桥、第二 VLAN子接口、判断模块;其中, 所述第一 VLAN子接口用于接收报文并向网桥发送所述报文; 所述网桥用于将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二VLAN子接口发送更新后的所述报文; 所述第二 VLAN子接口用于接收所述报文; 所述判断模块用于判断所述报文的VLAN ID是否与所述第二 VLAN子接口的VLAN ID相同; 所述第二 VLAN子接口还用于根据判断结果对所述报文进行相应的处理和转发。
7.根据权利要求6所述的报文转发系统,其特征在于,所述网桥包括转发表查找模块、转发模块,所述转发表查找模块用于根据所述报文查找报文转发表,并通过报文转发表确认报文的出接口为第二 VLAN子接口,所述转发模块用于将所述报文的出接口信息更新为第二 VLAN子接口,而后向所述第二 VLAN子接口发送更新后的所述报文.
8.根据权利要求6或7所述的报文转发系统,其特征在于,所述系统还包括VLANID赋值模块; 所述VLAN ID赋值模块用于当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID ; 所述第二 VLAN子接口进一步用于, 当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID相同时,直接更新所述报文的出接口信息,并转发所述报文; 当所述判断模块判断所述报文的VLAN ID与第二 VLAN子接口的VLAN ID不相同时,所述VLAN ID赋值模块将第二 VLAN子接口的VLAN ID赋值给所述报文的VLAN ID后,更新所述报文的出接口信息,并转发所述报文。
9.根据权利要求8所述的报文转发系统,其特征在于,所述报文为带有VLAN头的skb报文。
10.根据权利要求9所述的报文转发系统,其特征在于,所述出接口信息为skb->deV变量,所述网桥为透明网桥。
【文档编号】H04L12/701GK104168186SQ201410312374
【公开日】2014年11月26日 申请日期:2014年7月1日 优先权日:2014年7月1日
【发明者】陈海涛 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1