一种数据报文转发方法和装置的制造方法
【技术领域】
[0001 ]本发明涉及通信技术领域,尤其涉及一种数据报文转发方法和装置。
【背景技术】
[0002]端口保护主要指一种确保同一交换机上的端口之间不进行通信的机制。其中一种常用的场景有:端口配置为保护端口后,可以使互为保护的端口之间不允许二层转发任何信息,包括单播、多播和广播包,所有的保护端口间的传输都必须通过三层转发,保护端口与非保护端口之间的传输不受任何影响。
[0003]Snooping转发技术(简称Snooping技术)主要指原本直接二层转发的各类协议广播报文,基于安全等方面的考虑在端口上开启协议Snooping功能后,交换机将对特定数据报文进行监听,送往交换机软件判断,若判定合法后,再由软件进行泛洪转发,整个过程统称为Snooping转发技术。
[0004]图1为现有技术中Snooping转发实现方案,以交换机设备为例,交换机设备上的端口 A、B、C、D、E同属于一个VLANl,F、G同属于一个VLAN2,其中VLAN为虚拟局域网(VirtualLocal Area Network);
[0005]A端口上配有协议Snooping功能,其余端口配置可有可无,Snooping转发过程如下:
[0006]I) A端口收到数据报文;
[0007]2)因A端口配置Snooping功能,该数据报文不直接转发,而是送交换机软件处理;
[0008]3)交换机软件对该数据报文进行裁定,判断为合法,需要将报文重新进行转发;
[0009]4)交换机软件查询出口为B、C、D、E端口,故将数据报文复制成四份从B、C、D、E端口发出;可以看到不属于同一 VLAN的端口 F、G不会有该数据报文转出。
[0010]现有Snooping转发的方案需要软件参与转发,性能较为低下,无形中增加了CPU的负担。
【发明内容】
[0011]本发明提出一种数据报文转发方法和装置,用于解决现有技术中Snooping转发方案需要软件参与转发,性能较为低下的问题。
[0012]本发明提供了一种数据报文转发方法,所述方法包括:
[0013]在输入端口接收数据报文,并将所述数据报文转发给软件处理模块进行处理;
[0014]软件处理模块处理完成后,将所述数据报文转发给硬件处理模块;
[0015]所述硬件处理模块将所述数据报文在除所述输入端口外的其它端口上泛洪转发;
[0016]本发明还提供一种数据报文转发装置,所述装置包括:
[0017]接收模块,用于在输入端口接收数据报文,并将所述数据报文转发给软件处理模块进行处理;
[0018]软件处理模块,用于对所述数据报文进行处理,处理完成后将所述数据报文转发给硬件处理模块;
[0019]硬件处理模块,将所述数据报文在除所述输入端口外的其它端口上泛洪转发;
[0020]发送模块,用于协助所述硬件处理模块将所述数据报文发送出去。
[0021]本发明的数据报文转发方法和装置,通过由软件处理模块对数据报文处理完成后将数据报文转发给硬件处理模块进行处理,并由硬件处理模块将数据报文在除输入端口外的其它端口上泛洪转发,使得相比于现有技术,采用了硬件泛洪实现了 Snooping转发,不需要软件参与转发以及将报文复制多份,转发性能高,大大减轻了 CPU的负担。
【附图说明】
[0022]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为现有技术中Snooping转发实现方案示意图;
[0024]图2为本发明实施例一提供的数据报文转发方法流程图;
[0025]图3为本发明数据报文转发实现方案示意图;
[0026]图4为本发明实施例二提供的数据报文转发装置结构示意图。
【具体实施方式】
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]为了解决现有技术中Snooping转发方案需要软件参与转发,性能较为低下的问题,本发明提出了一种数据报文转发方案。
[0029]图2为本发明实施例一提供的数据报文转发方法流程图,如图所示,所述方法包括:
[0030]101,在输入端口接收数据报文,并将所述数据报文转发给软件处理模块进行处理;
[0031]201,软件处理模块处理完成后,将所述数据报文转发给硬件处理模块;
[0032]301,所述硬件处理模块将所述数据报文在除所述输入端口外的其它端口上泛洪转发;
[0033]其中所述输入端口配置Snooping功能。
[0034]本实施例通过由软件处理模块对数据报文处理完成后将数据报文转发给硬件处理模块进行处理,并由硬件处理模块将数据报文在除输入端口外的其它端口上泛洪转发,使得相比于现有技术,采用了硬件泛洪实现了 Snooping转发,不需要软件参与转发以及将报文复制多份,转发性能高,大大减轻了 CPU的负担。
[0035]进一步的,步骤301具体可以为:
[0036]所述硬件处理模块根据预先设置的端口与自身端口无法通信的端口保护功能表,将所述数据报文在除所述输入端口外的其它端口上泛洪转发;
[0037]其中所有端口均配置端口保护功能。
[0038]本实施例中的端口保护功能表设定了所有的端口均与自身端口不能进行通信,与其它端口可以进行通信,对于所有配置了端口保护功能的端口,在硬件转发时需要匹配此端口保护功能表,因此硬件处理模块可以根据预先设置的该端口保护功能表,将数据报文在除输入端口外的其他端口上泛洪转发。
[0039]进一步的,步骤201具体可以为:
[0040]所述软件处理模块处理完成后,为所述数据报文加上所述输入端口对应的标记,将所述数据报文转发给硬件处理模块;
[0041 ] 步骤301具体可以为:
[0042]所述硬件处理模块根据所述输入端口对应的标记,匹配预先设置的端口与自身端口无法通信的端口保护功能表,确定所述数据报文无法在所述输入端口转发,将所述数据报文在除所述输入端口外的其它端口上泛洪转发。
[0043]本实施例中的硬件处理模块在匹配端口保护功能表时,是根据软件处理模块为数据报文加上的与输入端口对应的标记,找到数据报文输入端口对应的表项,得出不向该输入端口转发数据报文,而向其它端口转发数据报文,从而完成数据报文在除输入端口外的其它端口上泛洪转发。
[0044]进一步的,步骤301具体可以为:
[0045]所述硬件处理模块将所述数据报文在所述输入端口所在的VLAN内,除所述输入端口外的其它端口上泛洪转发。
[0046]即数据报文只在输入端口所在VLAN内泛洪,限制了泛洪的范围。
[0047]下面以图3中的交换机设备为例进行说明,交换机设备上的端口A、B、C、D、E同属于一个¥1^肌,?、6同属于一个¥1^吧;
[0048]A端口上配有Sn