1.一種數(shù)據(jù)包發(fā)送方法,其特征在于,所述數(shù)據(jù)包發(fā)送的網(wǎng)絡(luò)設(shè)備包括:至少二個數(shù)據(jù)收發(fā)端口、數(shù)據(jù)判斷模塊、數(shù)據(jù)處理模塊,所述方法包括如下步驟:
S100:一個所述數(shù)據(jù)收發(fā)端口接受所述數(shù)據(jù)包;
S200:當(dāng)所述數(shù)據(jù)判斷模塊判斷所述數(shù)據(jù)包需要通過所述數(shù)據(jù)收發(fā)端口轉(zhuǎn)發(fā)時,所述數(shù)據(jù)處理模塊對所述數(shù)據(jù)包中的skb報文進(jìn)行相應(yīng)修改;
S300:所述數(shù)據(jù)處理模塊克隆修改后的所述skb報文,所述數(shù)據(jù)判斷模塊對所有所述數(shù)據(jù)收發(fā)端口進(jìn)行循環(huán)遍歷;
S400:對于符合所述數(shù)據(jù)包轉(zhuǎn)發(fā)條件的所述數(shù)據(jù)收發(fā)端口,實現(xiàn)所述數(shù)據(jù)包轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S200步驟中的相應(yīng)修改為給所述數(shù)據(jù)包添加vlan頭。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S200步驟中包括S210步驟:
S210:當(dāng)所述數(shù)據(jù)判斷模判斷所述網(wǎng)絡(luò)設(shè)備狀態(tài)為forward,允許進(jìn)行轉(zhuǎn)發(fā)的進(jìn)一步操作。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S200步驟中包括S220步驟:
S220:當(dāng)所述數(shù)據(jù)判斷模判斷數(shù)據(jù)包的容量小于所述網(wǎng)絡(luò)設(shè)備的mtu值,且支持gso,允許進(jìn)行轉(zhuǎn)發(fā)的進(jìn)一步操作。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S400步驟包括S410步驟:
S410:所述數(shù)據(jù)包進(jìn)行遵守規(guī)程處理,所述規(guī)程包括forword鏈上的規(guī)則、網(wǎng)橋防火墻中post鏈中的規(guī)則或者網(wǎng)橋防火墻中調(diào)用out鏈中的規(guī)則。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S400步驟包括S420步驟:
S420:當(dāng)所述數(shù)據(jù)判斷模塊判斷所述數(shù)據(jù)包符合相應(yīng)規(guī)則的,修改所述skb報文指向的net dev。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包發(fā)送方法,其特征在于,所述S400步驟包括S430步驟:
S430:對于滿足所述數(shù)據(jù)包轉(zhuǎn)發(fā)條件的所述數(shù)據(jù)收發(fā)端口,調(diào)用函數(shù)_packet_hook進(jìn)行所述數(shù)據(jù)包轉(zhuǎn)發(fā)的處理。
8.一種網(wǎng)絡(luò)設(shè)備,包括至少二個數(shù)據(jù)收發(fā)端口、數(shù)據(jù)判斷模塊、數(shù)據(jù)處理模塊,其特征在于,
所述數(shù)據(jù)收發(fā)端口,用于接受或者發(fā)送數(shù)據(jù)包;
所述數(shù)據(jù)處理模塊,用于修改所述數(shù)據(jù)包中的skb報文;
所述數(shù)據(jù)判斷模塊,用于對所述數(shù)據(jù)包的轉(zhuǎn)發(fā)條件進(jìn)行判斷,且對所述數(shù)據(jù)收發(fā)端口進(jìn)行循環(huán)遍歷,尋找符合所述數(shù)據(jù)包的轉(zhuǎn)發(fā)條件的所述數(shù)據(jù)收發(fā)端口。
9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于,任一所述數(shù)據(jù)收發(fā)端口接受所述數(shù)據(jù)包后,調(diào)用網(wǎng)卡驅(qū)動函數(shù)處理所述數(shù)據(jù)包。
10.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于,符合所述數(shù)據(jù)包的轉(zhuǎn)發(fā)條件的所述數(shù)據(jù)收發(fā)端口為所述網(wǎng)絡(luò)設(shè)備的至少一個非接受所述數(shù)據(jù)包的所述數(shù)據(jù)收發(fā)端口。
11.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述數(shù)據(jù)判斷模塊判斷所述轉(zhuǎn)發(fā)條件包括:網(wǎng)橋端口的狀態(tài)是否為forword、所述數(shù)據(jù)包大小是否小于所述網(wǎng)絡(luò)設(shè)備的mtu值、是否支持gso、所述數(shù)據(jù)包是否符合相應(yīng)規(guī)則、發(fā)送所述數(shù)據(jù)包的所述數(shù)據(jù)收發(fā)端口是否與接受所述數(shù)據(jù)包的所述數(shù)據(jù)收發(fā)端口相同。
12.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述數(shù)據(jù)處理模塊根據(jù)所述數(shù)據(jù)判斷模塊判斷為不符合所述轉(zhuǎn)發(fā)條件的,對所述數(shù)據(jù)包進(jìn)行分片或者丟棄操作。