一種協(xié)議報(bào)文上送cpu的方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種協(xié)議報(bào)文上送CPU的方法和裝置,減少CPU的處理負(fù)擔(dān)。所述方法包括:接收并解析報(bào)文,根據(jù)所述報(bào)文的vlan標(biāo)識查找vlan表,所述vlan表中包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層接口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU。所述裝置包括接收模塊和轉(zhuǎn)發(fā)模塊。采用本發(fā)明實(shí)施例方法和裝置能夠減少CPU的處理負(fù)擔(dān),實(shí)現(xiàn)協(xié)議報(bào)文準(zhǔn)確便捷上送,解決了目前交換芯片協(xié)議報(bào)文上送操作復(fù)雜,占用過多的ACL資源,同時可能存在不必要的報(bào)文上送攻擊CPU的問題。
【專利說明】
一種協(xié)議報(bào)文上送CPU的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及局域網(wǎng)交換技術(shù),具體涉及一種實(shí)現(xiàn)協(xié)議報(bào)文上送CPU的方法和裝置?!颈尘凹夹g(shù)】
[0002]如圖1所示,對于交換機(jī)來說,一般都包括交換芯片以及與交換芯片相連的CPU, 交換芯片對于數(shù)據(jù)報(bào)文進(jìn)行二、三層硬件快速轉(zhuǎn)發(fā),交換機(jī)之間的二、三層協(xié)議交互一般由交換機(jī)內(nèi)部的CPU來處理,交換芯片通過芯片內(nèi)部寄存器設(shè)置、內(nèi)部表項(xiàng)設(shè)置或者 ACL(Access Control List,訪問控制列表)規(guī)則設(shè)置來實(shí)現(xiàn)協(xié)議報(bào)文上送CPU。目前的交換芯片對于協(xié)議報(bào)文上送支持都有缺陷,實(shí)際使用中一般需要綜合寄存器上送、表項(xiàng)上送和ACL規(guī)則上送來實(shí)現(xiàn)所有需要的協(xié)議報(bào)文上送CPU處理。由此可見目前交換芯片上送協(xié)議報(bào)文處理復(fù)雜,而且會占用比較多的ACL資源。ACL都是TCAM(ternary content addressable memory,三態(tài)內(nèi)容尋址存儲器),TCAM資源比較貴,芯片一般支持的ACL條目是有限的,ACL基本可以靈活支持交換芯片的所有功能,如果協(xié)議上送占用ACL條目多了。 那么就會影響交換芯片很多功能的性能指標(biāo)。
[0003]即使采用ACL資源,由于ACL資源的限制和全局的權(quán)衡,目前很多協(xié)議比如 ARP(Address Resolut1n Protocol,地址解析協(xié)議)請求等都存在不必要的錯誤上送問題,導(dǎo)致有用的協(xié)議報(bào)文被攻擊從而丟棄,同時會增加CPU不必要的處理負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種協(xié)議報(bào)文上送CPU的方法和裝置,減少CPU 的處理負(fù)擔(dān)。
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種協(xié)議報(bào)文上送CPU的方法,包括:
[0006]接收并解析報(bào)文,根據(jù)所述報(bào)文的虛擬局域網(wǎng)vlan標(biāo)識查找vlan表,所述vlan 表中包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層接口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU。
[0007]進(jìn)一步地,所述根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU,包括:
[0008]根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找上報(bào)表,判斷所述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配,則將所述報(bào)文上送CPU,如果不匹配則所述報(bào)文不上送CPU。
[0009]進(jìn)一步地,所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型包括以下協(xié)議中的一種或多種:地址解析協(xié)議ARP,開放式最短路徑優(yōu)先0SPF,動態(tài)主機(jī)配置協(xié)議DHCP。
[0010]為了解決上述技術(shù)問題,本發(fā)明還提供了一種協(xié)議報(bào)文上送CPU的裝置,包括接收模塊和轉(zhuǎn)發(fā)模塊,其中:
[0011]所述接收模塊,用于接收并解析報(bào)文;
[0012]所述轉(zhuǎn)發(fā)模塊,用于根據(jù)所述報(bào)文的虛擬局域網(wǎng)vlan標(biāo)識查找vlan表,所述vlan 表中包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層接口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU。
[0013]進(jìn)一步地,所述轉(zhuǎn)發(fā)模塊根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU,包括:
[0014]所述轉(zhuǎn)發(fā)模塊根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找上報(bào)表,判斷所述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配,則將所述報(bào)文上送CPU,如果不匹配則所述報(bào)文不上送CPU。
[0015]進(jìn)一步地,所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型包括以下協(xié)議中的一種或多種:地址解析協(xié)議ARP,開放式最短路徑優(yōu)先0SPF,動態(tài)主機(jī)配置協(xié)議DHCP。
[0016]與現(xiàn)有技術(shù)相比較,本發(fā)明實(shí)施例的協(xié)議報(bào)文上送CPU的方法和裝置,能夠減少 CPU的處理負(fù)擔(dān),實(shí)現(xiàn)協(xié)議報(bào)文準(zhǔn)確便捷上送,解決了目前交換芯片協(xié)議報(bào)文上送操作復(fù)雜,占用過多的ACL資源,同時可能存在不必要的報(bào)文上送攻擊CPU的問題。
[0017]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得?!靖綀D說明】
[0018]附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
[0019]圖1為交換機(jī)系統(tǒng)示意圖;
[0020]圖2為本發(fā)明實(shí)施例一流程圖;
[0021]圖3為本發(fā)明實(shí)施例二裝置結(jié)構(gòu)示意圖;
[0022]圖4為本發(fā)明應(yīng)用示例協(xié)議報(bào)文上送CPU流程圖。【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
[0024]在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0025]實(shí)施例一
[0026]本實(shí)施例描述協(xié)議報(bào)文上送CPU的方法,如圖2所示,包括以下步驟:
[0027]步驟110,接收并解析報(bào)文;
[0028]報(bào)文進(jìn)入交換芯片進(jìn)行正常的解析處理,解析出報(bào)文的vlan (Virtual Local Area Network,虛擬局域網(wǎng))標(biāo)識(最外層vlan標(biāo)識)以及該報(bào)文的協(xié)議類型。每種協(xié)議報(bào)文對應(yīng)一個全局寄存器,用于存儲該種類型的報(bào)文。
[0029]步驟120,根據(jù)所述報(bào)文的vlan標(biāo)識查找vlan表,判斷所述vlan標(biāo)識如果為三層接口,執(zhí)行步驟130 ;
[0030]在vlan表中預(yù)先設(shè)置一個表示vlan標(biāo)識是否為三層接口的標(biāo)識,例如設(shè)置lbit的三層接口標(biāo)識,如果vlan標(biāo)識為三層接口,則標(biāo)識為1,否則標(biāo)識為0。所述三層接口標(biāo)識為全局設(shè)置。如果報(bào)文的vlan標(biāo)識為三層接口,那么交換芯片會對該報(bào)文進(jìn)行標(biāo)識。 [0031 ]如果所述vlan標(biāo)識不為三層接口,則交換芯片根據(jù)入端口號和協(xié)議類型進(jìn)行非三層相關(guān)協(xié)議報(bào)文的處理。
[0032]步驟130,根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU。
[0033]具體地,根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找預(yù)設(shè)的上報(bào)表,判斷所述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配,則將所述報(bào)文上送CPU,如果不匹配則所述報(bào)文不上送CPU。
[0034]所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型包括以下協(xié)議中的一種或多種: ARP,OSPF (Open Shortest Path First,開放式最短路徑優(yōu)先),DHCP (Dynamic Host Configurat1n Protocol,動態(tài)主機(jī)配置協(xié)議)。本文所述三層相關(guān)協(xié)議報(bào)文本身不一定是三層報(bào)文即以太網(wǎng)類型可能不是0x0800,例如ARP報(bào)文。
[0035]本實(shí)施例針對二三層交換機(jī)的協(xié)議報(bào)文進(jìn)行區(qū)分,二層協(xié)議報(bào)文基于物理端口上送,三層相關(guān)協(xié)議報(bào)文基于vlan端口是否使能三層接口進(jìn)行上送,即滿足以下兩個條件的報(bào)文才可能被上送CPU:報(bào)文的vlan標(biāo)識使能三層接口,報(bào)文的協(xié)議類型屬于預(yù)設(shè)的三層相關(guān)協(xié)議類型。上報(bào)過程由寄存器全局控制,與物理端口、vlan端口均無關(guān),降低處理復(fù)雜度,節(jié)省硬件資源。
[0036]實(shí)施例二
[0037]本實(shí)施例描述實(shí)現(xiàn)上述實(shí)施例一方法的裝置,如圖3所示,包括接收模塊210和轉(zhuǎn)發(fā)模塊220,其中:
[0038]所述接收模塊210,用于接收并解析報(bào)文;
[0039]所述轉(zhuǎn)發(fā)模塊220,用于根據(jù)所述報(bào)文的vlan標(biāo)識查找vlan表,所述vlan表中包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層接口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào)文上送CPU。
[0040]優(yōu)選地,所述vlan表為全局設(shè)置。所述vlan表包括:所述vlan標(biāo)識是否屬于三層接口的標(biāo)識。[0041 ]優(yōu)選地,所述轉(zhuǎn)發(fā)模塊220根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找上報(bào)表,判斷所述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配,則將所述報(bào)文上送CPU,如果不匹配則所述報(bào)文不上送CPU。
[0042]應(yīng)用示例
[0043]下面結(jié)合應(yīng)用示例對上述實(shí)施例方法進(jìn)行具體說明。在以下示例中,以接收報(bào)文為arp報(bào)文為例進(jìn)行說明,其他類型協(xié)議報(bào)文參照執(zhí)行。
[0044]如圖1所不的交換機(jī),其中端口 1屬于vlan 1,端口 2屬于vlan 2。對于vlan 2配置了三層接口,對于vlan 1沒有配置三層接口。由于vlan 2配置為三層接口,全局設(shè)置 vlan 2的vlan表,標(biāo)識該vlan2為三層接口 vlan,協(xié)議類型為arp報(bào)文上送cpu。vlan 1 不用設(shè)置。全局設(shè)置一上報(bào)表,用于記錄允許上報(bào)CPU的三層相關(guān)協(xié)議的協(xié)議類型,在本示例中所述上報(bào)表中的協(xié)議類型包括arp報(bào)文。
[0045]端口 1有大量vlan 1的arp請求報(bào)文進(jìn)入交換機(jī)準(zhǔn)備攻擊cpu,端口 2有vlan 2 的arp請求報(bào)文需要cpu進(jìn)行處理。報(bào)文上送cpu的流程如圖4所示,下面對端口 1進(jìn)入報(bào)文和端口 2進(jìn)入報(bào)文的處理進(jìn)行分別說明。
[0046]端口 1的arp請求報(bào)文處理如下:
[0047]步驟1:arp請求報(bào)文從端口 1進(jìn)入交換機(jī),交換芯片解析報(bào)文為arp報(bào)文;
[0048]步驟2:查vlan表判斷報(bào)文攜帶vlan是否屬于3層接口 vlan,由于報(bào)文的vlan 為1,查找vlan 1對應(yīng)的vlan表,vlanl不屬于三層接口 vlan ;
[0049]步驟3:查上報(bào)表判斷報(bào)文類型是否為預(yù)設(shè)的三層相關(guān)協(xié)議報(bào)文,arp報(bào)文雖然本身是二層報(bào)文,但是屬于三層相關(guān)協(xié)議報(bào)文,與上報(bào)表中協(xié)議類型相匹配;
[0050]在其他實(shí)施例中,步驟3可以省略。
[0051]步驟4’:由于報(bào)文的vlan不屬于三層接口 vlan,所以此arp報(bào)文不會上送cpu, 企圖攻擊cpu的目的達(dá)不到。
[0052]不上送cpu的報(bào)文按照芯片的其他轉(zhuǎn)發(fā)規(guī)則(例如入端口號和協(xié)議類型)進(jìn)行處理。
[0053]端口 2的arp請求報(bào)文處理如下:
[0054]步驟1:arp請求報(bào)文從端口 2進(jìn)入交換機(jī),交換芯片解析報(bào)文為arp報(bào)文;
[0055]步驟2:查vlan表判斷報(bào)文攜帶vlan是否屬于3層接口 vlan,由于報(bào)文的vlan 為2,查找vlan 2對應(yīng)的vlan表,vlan 2屬于三層接口 vlan ;
[0056]步驟3:查上報(bào)表判斷報(bào)文類型是否為預(yù)設(shè)的三層相關(guān)協(xié)議報(bào)文,arp報(bào)文雖然本身是二層報(bào)文,但是屬于三層相關(guān)協(xié)議報(bào)文,與上報(bào)表中協(xié)議類型相匹配;
[0057]步驟4:交換芯片根據(jù)報(bào)文的vlan屬于三層接口 vlan,以及協(xié)議類型與上報(bào)表中協(xié)議類型相匹配,所以此arp報(bào)文上送cpu處理,進(jìn)行正常的arp報(bào)文上送。
[0058]雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種協(xié)議報(bào)文上送CPU的方法,其特征在于,包括:接收并解析報(bào)文,根據(jù)所述報(bào)文的虛擬局域網(wǎng)vlan標(biāo)識查找vlan表,所述vlan表中 包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層接 口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述報(bào) 文上送CPU。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述 報(bào)文上送CPU,包括:根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找上報(bào)表,判斷所 述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配,則將所述報(bào)文 上送CPU,如果不匹配則所述報(bào)文不上送CPU。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型包括以下協(xié)議中的一種或多種:地址解析協(xié) 議ARP,開放式最短路徑優(yōu)先OSPF,動態(tài)主機(jī)配置協(xié)議DHCP。4.一種協(xié)議報(bào)文上送CPU的裝置,其特征在于,包括接收模塊和轉(zhuǎn)發(fā)模塊,其中:所述接收模塊,用于接收并解析報(bào)文;所述轉(zhuǎn)發(fā)模塊,用于根據(jù)所述報(bào)文的虛擬局域網(wǎng)vlan標(biāo)識查找vlan表,所述vlan表 中包含vlan標(biāo)識是否為三層接口的標(biāo)識,根據(jù)所述vlan表判斷所述vlan標(biāo)識如果為三層 接口,則根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是否將所述 報(bào)文上送CPU。5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)模塊根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型判斷是 否將所述報(bào)文上送CPU,包括:所述轉(zhuǎn)發(fā)模塊根據(jù)所述vlan標(biāo)識為三層接口的標(biāo)識以及所述報(bào)文的協(xié)議類型查找上 報(bào)表,判斷所述報(bào)文的協(xié)議類型如果與所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型相匹配, 則將所述報(bào)文上送CPU,如果不匹配則所述報(bào)文不上送CPU。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述上報(bào)表中的三層相關(guān)協(xié)議的協(xié)議類型包括以下協(xié)議中的一種或多種:地址解析協(xié) 議ARP,開放式最短路徑優(yōu)先OSPF,動態(tài)主機(jī)配置協(xié)議DHCP。
【文檔編號】H04L12/46GK105991391SQ201510094446
【公開日】2016年10月5日
【申請日】2015年3月3日
【發(fā)明人】潘庭山
【申請人】中興通訊股份有限公司