一種數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和裝置。
【背景技術(shù)】
[0002]端口保護(hù)主要指一種確保同一交換機(jī)上的端口之間不進(jìn)行通信的機(jī)制。其中一種常用的場景有:端口配置為保護(hù)端口后,可以使互為保護(hù)的端口之間不允許二層轉(zhuǎn)發(fā)任何信息,包括單播、多播和廣播包,所有的保護(hù)端口間的傳輸都必須通過三層轉(zhuǎn)發(fā),保護(hù)端口與非保護(hù)端口之間的傳輸不受任何影響。
[0003]Snooping轉(zhuǎn)發(fā)技術(shù)(簡稱Snooping技術(shù))主要指原本直接二層轉(zhuǎn)發(fā)的各類協(xié)議廣播報文,基于安全等方面的考慮在端口上開啟協(xié)議Snooping功能后,交換機(jī)將對特定數(shù)據(jù)報文進(jìn)行監(jiān)聽,送往交換機(jī)軟件判斷,若判定合法后,再由軟件進(jìn)行泛洪轉(zhuǎn)發(fā),整個過程統(tǒng)稱為Snooping轉(zhuǎn)發(fā)技術(shù)。
[0004]圖1為現(xiàn)有技術(shù)中Snooping轉(zhuǎn)發(fā)實(shí)現(xiàn)方案,以交換機(jī)設(shè)備為例,交換機(jī)設(shè)備上的端口 A、B、C、D、E同屬于一個VLANl,F(xiàn)、G同屬于一個VLAN2,其中VLAN為虛擬局域網(wǎng)(VirtualLocal Area Network);
[0005]A端口上配有協(xié)議Snooping功能,其余端口配置可有可無,Snooping轉(zhuǎn)發(fā)過程如下:
[0006]I) A端口收到數(shù)據(jù)報文;
[0007]2)因A端口配置Snooping功能,該數(shù)據(jù)報文不直接轉(zhuǎn)發(fā),而是送交換機(jī)軟件處理;
[0008]3)交換機(jī)軟件對該數(shù)據(jù)報文進(jìn)行裁定,判斷為合法,需要將報文重新進(jìn)行轉(zhuǎn)發(fā);
[0009]4)交換機(jī)軟件查詢出口為B、C、D、E端口,故將數(shù)據(jù)報文復(fù)制成四份從B、C、D、E端口發(fā)出;可以看到不屬于同一 VLAN的端口 F、G不會有該數(shù)據(jù)報文轉(zhuǎn)出。
[0010]現(xiàn)有Snooping轉(zhuǎn)發(fā)的方案需要軟件參與轉(zhuǎn)發(fā),性能較為低下,無形中增加了CPU的負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0011]本發(fā)明提出一種數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和裝置,用于解決現(xiàn)有技術(shù)中Snooping轉(zhuǎn)發(fā)方案需要軟件參與轉(zhuǎn)發(fā),性能較為低下的問題。
[0012]本發(fā)明提供了一種數(shù)據(jù)報文轉(zhuǎn)發(fā)方法,所述方法包括:
[0013]在輸入端口接收數(shù)據(jù)報文,并將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給軟件處理模塊進(jìn)行處理;
[0014]軟件處理模塊處理完成后,將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊;
[0015]所述硬件處理模塊將所述數(shù)據(jù)報文在除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā);
[0016]本發(fā)明還提供一種數(shù)據(jù)報文轉(zhuǎn)發(fā)裝置,所述裝置包括:
[0017]接收模塊,用于在輸入端口接收數(shù)據(jù)報文,并將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給軟件處理模塊進(jìn)行處理;
[0018]軟件處理模塊,用于對所述數(shù)據(jù)報文進(jìn)行處理,處理完成后將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊;
[0019]硬件處理模塊,將所述數(shù)據(jù)報文在除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā);
[0020]發(fā)送模塊,用于協(xié)助所述硬件處理模塊將所述數(shù)據(jù)報文發(fā)送出去。
[0021]本發(fā)明的數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和裝置,通過由軟件處理模塊對數(shù)據(jù)報文處理完成后將數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊進(jìn)行處理,并由硬件處理模塊將數(shù)據(jù)報文在除輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā),使得相比于現(xiàn)有技術(shù),采用了硬件泛洪實(shí)現(xiàn)了 Snooping轉(zhuǎn)發(fā),不需要軟件參與轉(zhuǎn)發(fā)以及將報文復(fù)制多份,轉(zhuǎn)發(fā)性能高,大大減輕了 CPU的負(fù)擔(dān)。
【附圖說明】
[0022]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1為現(xiàn)有技術(shù)中Snooping轉(zhuǎn)發(fā)實(shí)現(xiàn)方案示意圖;
[0024]圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)報文轉(zhuǎn)發(fā)方法流程圖;
[0025]圖3為本發(fā)明數(shù)據(jù)報文轉(zhuǎn)發(fā)實(shí)現(xiàn)方案示意圖;
[0026]圖4為本發(fā)明實(shí)施例二提供的數(shù)據(jù)報文轉(zhuǎn)發(fā)裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028]為了解決現(xiàn)有技術(shù)中Snooping轉(zhuǎn)發(fā)方案需要軟件參與轉(zhuǎn)發(fā),性能較為低下的問題,本發(fā)明提出了一種數(shù)據(jù)報文轉(zhuǎn)發(fā)方案。
[0029]圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)報文轉(zhuǎn)發(fā)方法流程圖,如圖所示,所述方法包括:
[0030]101,在輸入端口接收數(shù)據(jù)報文,并將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給軟件處理模塊進(jìn)行處理;
[0031]201,軟件處理模塊處理完成后,將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊;
[0032]301,所述硬件處理模塊將所述數(shù)據(jù)報文在除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā);
[0033]其中所述輸入端口配置Snooping功能。
[0034]本實(shí)施例通過由軟件處理模塊對數(shù)據(jù)報文處理完成后將數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊進(jìn)行處理,并由硬件處理模塊將數(shù)據(jù)報文在除輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā),使得相比于現(xiàn)有技術(shù),采用了硬件泛洪實(shí)現(xiàn)了 Snooping轉(zhuǎn)發(fā),不需要軟件參與轉(zhuǎn)發(fā)以及將報文復(fù)制多份,轉(zhuǎn)發(fā)性能高,大大減輕了 CPU的負(fù)擔(dān)。
[0035]進(jìn)一步的,步驟301具體可以為:
[0036]所述硬件處理模塊根據(jù)預(yù)先設(shè)置的端口與自身端口無法通信的端口保護(hù)功能表,將所述數(shù)據(jù)報文在除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā);
[0037]其中所有端口均配置端口保護(hù)功能。
[0038]本實(shí)施例中的端口保護(hù)功能表設(shè)定了所有的端口均與自身端口不能進(jìn)行通信,與其它端口可以進(jìn)行通信,對于所有配置了端口保護(hù)功能的端口,在硬件轉(zhuǎn)發(fā)時需要匹配此端口保護(hù)功能表,因此硬件處理模塊可以根據(jù)預(yù)先設(shè)置的該端口保護(hù)功能表,將數(shù)據(jù)報文在除輸入端口外的其他端口上泛洪轉(zhuǎn)發(fā)。
[0039]進(jìn)一步的,步驟201具體可以為:
[0040]所述軟件處理模塊處理完成后,為所述數(shù)據(jù)報文加上所述輸入端口對應(yīng)的標(biāo)記,將所述數(shù)據(jù)報文轉(zhuǎn)發(fā)給硬件處理模塊;
[0041 ] 步驟301具體可以為:
[0042]所述硬件處理模塊根據(jù)所述輸入端口對應(yīng)的標(biāo)記,匹配預(yù)先設(shè)置的端口與自身端口無法通信的端口保護(hù)功能表,確定所述數(shù)據(jù)報文無法在所述輸入端口轉(zhuǎn)發(fā),將所述數(shù)據(jù)報文在除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā)。
[0043]本實(shí)施例中的硬件處理模塊在匹配端口保護(hù)功能表時,是根據(jù)軟件處理模塊為數(shù)據(jù)報文加上的與輸入端口對應(yīng)的標(biāo)記,找到數(shù)據(jù)報文輸入端口對應(yīng)的表項(xiàng),得出不向該輸入端口轉(zhuǎn)發(fā)數(shù)據(jù)報文,而向其它端口轉(zhuǎn)發(fā)數(shù)據(jù)報文,從而完成數(shù)據(jù)報文在除輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā)。
[0044]進(jìn)一步的,步驟301具體可以為:
[0045]所述硬件處理模塊將所述數(shù)據(jù)報文在所述輸入端口所在的VLAN內(nèi),除所述輸入端口外的其它端口上泛洪轉(zhuǎn)發(fā)。
[0046]即數(shù)據(jù)報文只在輸入端口所在VLAN內(nèi)泛洪,限制了泛洪的范圍。
[0047]下面以圖3中的交換機(jī)設(shè)備為例進(jìn)行說明,交換機(jī)設(shè)備上的端口A、B、C、D、E同屬于一個¥1^肌,?、6同屬于一個¥1^吧;
[0048]A端口上配有Sn