1.一种数据包发送方法,其特征在于,所述数据包发送的网络设备包括:至少二个数据收发端口、数据判断模块、数据处理模块,所述方法包括如下步骤:
S100:一个所述数据收发端口接受所述数据包;
S200:当所述数据判断模块判断所述数据包需要通过所述数据收发端口转发时,所述数据处理模块对所述数据包中的skb报文进行相应修改;
S300:所述数据处理模块克隆修改后的所述skb报文,所述数据判断模块对所有所述数据收发端口进行循环遍历;
S400:对于符合所述数据包转发条件的所述数据收发端口,实现所述数据包转发。
2.根据权利要求1所述的数据包发送方法,其特征在于,所述S200步骤中的相应修改为给所述数据包添加vlan头。
3.根据权利要求1所述的数据包发送方法,其特征在于,所述S200步骤中包括S210步骤:
S210:当所述数据判断模判断所述网络设备状态为forward,允许进行转发的进一步操作。
4.根据权利要求1所述的数据包发送方法,其特征在于,所述S200步骤中包括S220步骤:
S220:当所述数据判断模判断数据包的容量小于所述网络设备的mtu值,且支持gso,允许进行转发的进一步操作。
5.根据权利要求1所述的数据包发送方法,其特征在于,所述S400步骤包括S410步骤:
S410:所述数据包进行遵守规程处理,所述规程包括forword链上的规则、网桥防火墙中post链中的规则或者网桥防火墙中调用out链中的规则。
6.根据权利要求1所述的数据包发送方法,其特征在于,所述S400步骤包括S420步骤:
S420:当所述数据判断模块判断所述数据包符合相应规则的,修改所述skb报文指向的net dev。
7.根据权利要求1所述的数据包发送方法,其特征在于,所述S400步骤包括S430步骤:
S430:对于满足所述数据包转发条件的所述数据收发端口,调用函数_packet_hook进行所述数据包转发的处理。
8.一种网络设备,包括至少二个数据收发端口、数据判断模块、数据处理模块,其特征在于,
所述数据收发端口,用于接受或者发送数据包;
所述数据处理模块,用于修改所述数据包中的skb报文;
所述数据判断模块,用于对所述数据包的转发条件进行判断,且对所述数据收发端口进行循环遍历,寻找符合所述数据包的转发条件的所述数据收发端口。
9.根据权利要求8所述的网络设备,其特征在于,任一所述数据收发端口接受所述数据包后,调用网卡驱动函数处理所述数据包。
10.根据权利要求8所述的网络设备,其特征在于,符合所述数据包的转发条件的所述数据收发端口为所述网络设备的至少一个非接受所述数据包的所述数据收发端口。
11.根据权利要求8所述的网络设备,其特征在于,所述数据判断模块判断所述转发条件包括:网桥端口的状态是否为forword、所述数据包大小是否小于所述网络设备的mtu值、是否支持gso、所述数据包是否符合相应规则、发送所述数据包的所述数据收发端口是否与接受所述数据包的所述数据收发端口相同。
12.根据权利要求11所述的网络设备,其特征在于,所述数据处理模块根据所述数据判断模块判断为不符合所述转发条件的,对所述数据包进行分片或者丢弃操作。