本發(fā)明涉及通信領域,具體而言,涉及一種虛擬局域網(wǎng)VLAN過濾處理方法及裝置。
背景技術:
虛擬局域網(wǎng)(Virtual Local Area Network,簡稱為VLAN)技術的應用場景主要體現(xiàn)在以太網(wǎng)的端口VLAN模式,例如,標簽(Tag)模式、接入(Access)模式、透傳(Translation)模式、匯聚(Aggregation)模式,Linux網(wǎng)絡協(xié)議棧是通過802.1Q模型,建立虛擬的VLAN設備,不同的VLAN設備掛接在不同的軟橋下實現(xiàn)的。
Linux網(wǎng)絡協(xié)議棧的VLAN實現(xiàn)技術的如下缺陷:Linux的VLAN是基于虛擬網(wǎng)絡設備實現(xiàn)的,對于每個不同的VLAN必須要建立不同的虛擬網(wǎng)絡設備,不同的虛擬網(wǎng)絡設備歸屬于不同的軟件橋設備,虛擬網(wǎng)絡設備與軟件橋設備的關系復雜,設備部署前需要獲取大量信息,且配置工作量很大;其次,不能實現(xiàn)網(wǎng)絡中常見的對VLAN進行靈活的過濾動作;最后,VLAN的處理比較單一,僅僅支持加VLAN和剝VLAN的動作,只支持單一802.1Q模型,而國際標準中必須同時支持其他模型,例如,802.1AD。
針對相關技術中,虛擬網(wǎng)絡設備配置復雜,過濾匹配方式單一的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)要素:
本發(fā)明提供了一種虛擬局域網(wǎng)VLAN過濾處理方法及裝置,以至少解決相關技術中虛擬網(wǎng)絡設備配置復雜,過濾匹配方式單一的問題。
根據(jù)本發(fā)明的一個方面,提供了一種虛擬局域網(wǎng)VLAN過濾處理方法,包括:
收集報文中的規(guī)則過濾因子;
在預配置的過濾規(guī)則中,查找是否存在與所述規(guī)則過濾因子全部相匹配的過濾規(guī)則;
查找到所述匹配的過濾規(guī)則后,根據(jù)所述過濾規(guī)則中的處理動作因子對所述報文進行處理。
進一步地,在預配置的過濾規(guī)則中,查找是否存在與所述規(guī)則過濾因子全部相匹配的過濾規(guī)則包括:
根據(jù)所述過濾規(guī)則設置所述規(guī)則過濾因子對應的規(guī)則過濾掩碼的二進制位,所述二 進制位指示所述預配置過濾規(guī)則匹配的所述規(guī)則過濾因子是否有效。
進一步地,根據(jù)所述過濾規(guī)則中的處理動作因子對所述報文進行處理包括:
根據(jù)所述過濾規(guī)則設置的所述處理動作因子對應的處理動作掩碼的二進制位,所述二進制位指示所述預配置過濾規(guī)則匹配的所述處理動作因子是否有效,在所述處理動作因子有效的情況下,對所述報文進行所述處理動作因子對應的處理。
進一步地,所述規(guī)則過濾因子包括以下至少之一:外層VLAN的標簽協(xié)議標識TPID,外層VLAN的身份標識VID,外層VLAN的優(yōu)選級PRI,內(nèi)層VLAN的標簽協(xié)議標識TPID,內(nèi)層VLAN的身份標識VID,內(nèi)層VLAN的優(yōu)選級PRI,以太網(wǎng)二層協(xié)議。
進一步地,所述TPID用于確認所述報文是否是虛擬局域網(wǎng)VLAN,和/或,所述TPID用于指示所述VLAN是單層VLAN或者雙層VLAN。
進一步地,所述處理動作因子包括以下至少之一:丟棄,透傳,增加外層VLAN,增加內(nèi)層VLAN,刪除外層VLAN,刪除內(nèi)層VLAN,修改外層VLAN的TPID,修改外層VLAN的VID,修改外層VLAN的優(yōu)選級PRI,修改內(nèi)層VLAN的TPID,修改內(nèi)層VLAN的VID,修改內(nèi)層VLAN的優(yōu)選級PRI,修改外層VLAN的丟失標識DEI,修改內(nèi)層VLAN的丟失標識DEI,VLAN匯聚,VLAN反匯聚。
進一步地,所述方法包括以下至少之一:
收集所述報文中的所述規(guī)則過濾因子之前,linux網(wǎng)絡接口接收所述報文;
linux網(wǎng)絡協(xié)議棧處理所述報文,將所述報文發(fā)送到網(wǎng)絡接口之前,收集所述報文中的所述規(guī)則過濾因子。
根據(jù)本發(fā)明的另一個方面,還提供了一種虛擬局域網(wǎng)VLAN過濾處理裝置,包括:
收集模塊,用于收集報文中的規(guī)則過濾因子;
查找模塊,用于在預配置的過濾規(guī)則中,查找是否存在與所述規(guī)則過濾因子全部相匹配的過濾規(guī)則;
處理模塊,用于查找到所述匹配的過濾規(guī)則后,根據(jù)所述過濾規(guī)則中的處理動作因子對所述報文進行處理。
進一步地,所述查找模塊包括:
第一掩碼單元,用于根據(jù)所述過濾規(guī)則設置的所述規(guī)則過濾因子對應的規(guī)則過濾掩碼的二進制位,所述二進制位指示所述預配置過濾規(guī)則匹配的所述規(guī)則過濾因子是否有效。
進一步地,所述查找模塊包括:
第二掩碼單元,用于根據(jù)所述過濾規(guī)則設置的設置所述規(guī)則過濾因子對應的處理動作掩碼的二進制位,所述二進制位指示所述預配置過濾規(guī)則匹配的所述處理動作因子是否有效,在所述處理動作因子有效的情況下,對所述報文進行所述處理動作因子對應的處理。
進一步地,所述規(guī)則過濾因子包括以下至少之一:外層VLAN的標簽協(xié)議標識TPID,外層VLAN的身份標識VID,外層VLAN的優(yōu)選級PRI,內(nèi)層VLAN的標簽協(xié)議標識TPID,內(nèi)層VLAN的身份標識VID,內(nèi)層VLAN的優(yōu)選級PRI,以太網(wǎng)二層協(xié)議。
進一步地,所述TPID用于確認所述報文是否是虛擬局域網(wǎng)VLAN,和/或,所述TPID用于指示所述VLAN是單層VLAN或者雙層VLAN。
進一步地,所述處理動作因子包括以下至少之一:丟棄,透傳,增加外層VLAN,增加內(nèi)層VLAN,刪除外層VLAN,刪除內(nèi)層VLAN,修改外層VLAN的TPID,修改外層VLAN的VID,修改外層VLAN的優(yōu)選級PRI,修改內(nèi)層VLAN的TPID,修改內(nèi)層VLAN的VID,修改內(nèi)層VLAN的優(yōu)選級PRI,修改外層VLAN的丟失標識DEI,修改內(nèi)層VLAN的丟失標識DEI,VLAN匯聚,VLAN反匯聚。
通過本發(fā)明,收集報文中的規(guī)則過濾因子,在預配置的過濾規(guī)則中,查找是否存在與收集到的規(guī)則過濾因子全部相匹配的過濾規(guī)則,查找到匹配的過濾規(guī)則后,根據(jù)該預配置的過濾規(guī)則中的處理動作因子對該報文進行處理,解決了虛擬網(wǎng)絡設備配置復雜,過濾匹配方式單一的問題,實現(xiàn)了虛擬網(wǎng)絡設備配置簡單,過濾匹配多樣。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的一種虛擬局域網(wǎng)VLAN過濾處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的一種虛擬局域網(wǎng)VLAN過濾處理裝置裝置的結構框圖;
圖3是根據(jù)本發(fā)明優(yōu)選實施在linux網(wǎng)絡協(xié)議棧中的位置模型示意圖;
圖4是根據(jù)本發(fā)明優(yōu)選實施的VLAN模塊處理流程的示意圖;
圖5是根據(jù)本發(fā)明優(yōu)選實施的VLAN規(guī)則配置模塊和VLAN規(guī)則處理模塊的示意圖。
具體實施方式
下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。
在本實施例中提供了一種虛擬局域網(wǎng)VLAN過濾處理方法,圖1是根據(jù)本發(fā)明實施例的一種虛擬局域網(wǎng)VLAN過濾處理方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,收集報文中的規(guī)則過濾因子;
步驟S104,在預配置的過濾規(guī)則中,查找是否存在與該規(guī)則過濾因子全部相匹配的過濾規(guī)則;
步驟S106,查找到該匹配的過濾規(guī)則后,根據(jù)該過濾規(guī)則中的處理動作因子對該報文進行處理。
通過上述步驟,收集報文中的規(guī)則過濾因子,在預配置的過濾規(guī)則中,查找是否存在與收集到的規(guī)則過濾因子全部相匹配的過濾規(guī)則,查找到匹配的過濾規(guī)則后,根據(jù)該預配置的過濾規(guī)則中的處理動作因子對該報文進行處理,通過引入規(guī)則過濾因子和處理動作因子,對報文進行處理,不需要再建立虛擬的網(wǎng)絡設備進行配置,并且可以設置多個匹配的條件,解決了虛擬網(wǎng)絡設備配置復雜,過濾匹配方式單一的問題,實現(xiàn)了虛擬網(wǎng)絡設備配置簡單,過濾匹配多樣。
在本實施例中,根據(jù)該過濾規(guī)則設置的該規(guī)則過濾因子的規(guī)則過濾掩碼的二進制位,該二進制位指示該預配置過濾規(guī)則匹配的該規(guī)則過濾因子是否有效,而且根據(jù)該過濾規(guī)則設置的該規(guī)則過濾因子對應的處理動作掩碼的二進制位,該二進制位指示該預配置過濾規(guī)則匹配的該處理動作因子是否有效,在該處理動作因子有效的情況下,對該報文進行該處理動作因子對應的處理。
在本實施例中,該規(guī)則過濾因子包括以下至少之一:外層VLAN的標簽協(xié)議標識TPID,外層VLAN的身份標識VID,外層VLAN的優(yōu)選級PRI,內(nèi)層VLAN的標簽協(xié)議標識TPID,內(nèi)層VLAN的身份標識VID,內(nèi)層VLAN的優(yōu)選級PRI,以太網(wǎng)二層協(xié)議。其中,該TPID可以用于確認該報文是否是虛擬局域網(wǎng)VLAN,和/或,該TPID用于指示該VLAN是單層VLAN或者雙層VLAN。
在本實施例中,該處理動作因子包括以下至少之一:丟棄,透傳,增加外層VLAN,增加內(nèi)層VLAN,刪除外層VLAN,刪除內(nèi)層VLAN,修改外層VLAN的TPID,修改外層VLAN的VID,修改外層VLAN的優(yōu)選級PRI,修改內(nèi)層VLAN的TPID,修改內(nèi)層VLAN的VID,修改內(nèi)層VLAN的優(yōu)選級PRI,修改外層VLAN的丟失標識DEI,修改內(nèi)層VLAN的丟失標識DEI,VLAN匯聚,VLAN反匯聚。
在本實施例中,收集該報文中的該規(guī)則過濾因子,對該報文進行處理之前,linux網(wǎng)絡接口接收該報文,另外,在linux網(wǎng)絡協(xié)議棧處理該報文,將該報文發(fā)送到網(wǎng)絡接 口之前,收集該報文中的該規(guī)則過濾因子,對該報文進行處理。
在本實施例中還提供了一種虛擬局域網(wǎng)VLAN過濾處理裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。
圖2是根據(jù)本發(fā)明實施例的一種虛擬局域網(wǎng)VLAN過濾處理裝置裝置的結構框圖,如圖2所示,該裝置包括
收集模塊22,用于收集報文中的規(guī)則過濾因子;
查找模塊24,用于在預配置的過濾規(guī)則中,查找是否存在與該規(guī)則過濾因子全部相匹配的過濾規(guī)則;
處理模塊26,用于查找到該匹配的過濾規(guī)則后,根據(jù)該過濾規(guī)則中的處理動作因子對該報文進行處理。
通過上述裝置,收集報文中的規(guī)則過濾因子,在預配置的過濾規(guī)則中,查找是否存在與收集到的規(guī)則過濾因子全部相匹配的過濾規(guī)則,查找到匹配的過濾規(guī)則后,根據(jù)該預配置的過濾規(guī)則中的處理動作因子對該報文進行處理,通過引入規(guī)則過濾因子和處理動作因子,對報文進行處理,不需要再建立虛擬的網(wǎng)絡設備進行配置,并且可以設置多個匹配的條件,解決了虛擬網(wǎng)絡設備配置復雜,過濾匹配方式單一的問題,實現(xiàn)了虛擬網(wǎng)絡設備配置簡單,過濾匹配多樣。
在本實施例中,該查找模塊24包括:
第一掩碼單元,用于根據(jù)該過濾規(guī)則設置的該規(guī)則過濾因子對應的規(guī)則過濾掩碼的二進制位,該二進制位指示該預配置過濾規(guī)則匹配的該規(guī)則過濾因子是否有效。
在本實施例中,該查找模塊24包括:
第二掩碼單元,用于根據(jù)該過濾規(guī)則設置的設置該規(guī)則過濾因子對應的處理動作掩碼的二進制位,該二進制位指示該預配置過濾規(guī)則匹配的該處理動作因子是否有效,在該處理動作因子有效的情況下,對該報文進行該處理動作因子對應的處理。
在本實施例中,該規(guī)則過濾因子包括以下至少之一:外層VLAN的標簽協(xié)議標識TPID,外層VLAN的身份標識VID,外層VLAN的優(yōu)選級PRI,內(nèi)層VLAN的標簽協(xié)議標識TPID,內(nèi)層VLAN的身份標識VID,內(nèi)層VLAN的優(yōu)選級PRI,以太網(wǎng)二層協(xié)議。其中,該TPID用于確認該報文是否是虛擬局域網(wǎng)VLAN,和/或,該TPID用于指示該VLAN是單層VLAN或者雙層VLAN。
在本實施例中,該處理動作因子包括以下至少之一:丟棄,透傳,增加外層VLAN,增加內(nèi)層VLAN,刪除外層VLAN,刪除內(nèi)層VLAN,修改外層VLAN的TPID,修改 外層VLAN的VID,修改外層VLAN的優(yōu)選級PRI,修改內(nèi)層VLAN的TPID,修改內(nèi)層VLAN的VID,修改內(nèi)層VLAN的優(yōu)選級PRI,修改外層VLAN的丟失標識DEI,修改內(nèi)層VLAN的丟失標識DEI,VLAN匯聚,VLAN反匯聚。
下面結合優(yōu)選實施例和實施方式對本發(fā)明進行詳細說明。
在本優(yōu)選實施例中的相關術語如下:
VLAN:虛擬局域網(wǎng),在本優(yōu)選實施例中為在報文中的具體表示,大小為4字節(jié)。
標簽協(xié)議標識(Tag Protocol Identifier,簡稱為TPID):VLAN信息的高位2字節(jié),用于區(qū)分VLAN模型,如802.1Q(0x8100)、802.1AD(0x88a8)。
優(yōu)選級PRI(priority):VLAN信息低位2字節(jié)中的高3位,范圍(0-7),表示優(yōu)先級,7優(yōu)先最高。
丟失標識(Drop Eligible Indicator,簡稱為DEI):VLAN信息低位2字節(jié)中的第13位,用來標識MAC地址是否以標準格式進行封裝,取值為0表示媒體接入控制(Media Access Control,簡稱為MAC)地址以標準格式進行封裝,為1表示以非標準格式封裝。
虛擬局域網(wǎng)(VLAN ID,簡稱為VID):VLAN信息低位2字節(jié)中的低12位,表示VLAN值,范圍(0-4094)。
802.1Q:TPID的常用值0x8100。
802.1AD:TPID的常用值0x88a8。
沒有VLAN的標簽(UNTAG):沒有VLAN信息。
優(yōu)選實施例1
本優(yōu)選實施例屬于網(wǎng)絡通信技術領域,更確切的說是屬于數(shù)據(jù)轉(zhuǎn)發(fā)技術的一種具有VLAN過濾和處理能力的VLAN模型,可以應用于交換機、路由器等各種帶CPU的網(wǎng)絡通信設備中。
本優(yōu)選實施例解決了上述VLAN實現(xiàn)存在的缺點,不需要建立虛擬網(wǎng)絡設備,實現(xiàn)簡單;靈活的過濾匹配方式,支持多種匹配條件;增加了多種VLAN處理動作,支持可配置多種VLAN模型。
本優(yōu)選實施例提供一種基于Linux操作系統(tǒng)的軟件VLAN模型,該模型不需要新增加虛擬網(wǎng)絡設備,并且有靈活的VLAN過濾和VLAN處理能力。本優(yōu)選實施例的技術方案如下:
通過VLAN規(guī)則的配置裝置下發(fā)各種VLAN規(guī)則,網(wǎng)絡報文經(jīng)由規(guī)則匹配模塊處理后,進行VLAN動作處理,從而實現(xiàn)一種“規(guī)則過濾-處理動作”的VLAN模型,在 VLAN模塊中引入規(guī)則過濾因子和處理動作因子,用與之對應的規(guī)則過濾掩碼和處理動作掩碼來限制其是否生效,決定是否對符合規(guī)則過濾的報文進行對應的處理動作,其中生效的規(guī)則過濾因子和處理動作因子可以是一個或者多個。規(guī)則過濾掩碼和動作處理掩碼也是過濾規(guī)則的一部分,是同時預配置好的,也是和規(guī)則過濾因子和處理動作因子同時發(fā)揮作用的。比如一條過濾規(guī)則,匹配外層VID=100的報文,處理動作是修改外層VID=200,那么這條規(guī)則會被設置成:將規(guī)則過濾掩碼對應的VID規(guī)則過濾因子的二進制位置位(有效),將外層VID規(guī)則過濾因子賦值為100,將處理動作掩碼對應修改外層VID的處理動作因子的二進制位置位(有效),將外層VID處理動作因子賦值為200。報文中收集的規(guī)則過濾因子后,就去預配置的過濾過則中(可能是0條,1條,多條規(guī)則,現(xiàn)在假設存在上述配置的這條)查找能夠匹配的過濾規(guī)則,比如收集到的報文外層(TPID=0X8100,VID=100,PRI=0),當查找到上述過濾規(guī)則時發(fā)現(xiàn),該規(guī)則的規(guī)則過濾掩碼的外層VID規(guī)則過濾因子對應的二進制位為置位,則需要去匹配對應的VID規(guī)則過濾因子=100,發(fā)現(xiàn)是一樣的,則認為這條過濾過則是匹配的(該過濾規(guī)則的過濾規(guī)則掩碼只置位了外層VID規(guī)則過濾因子對應的二進制位,如還有其他置位,需繼續(xù)匹配)。然后就是處理動作流程了,發(fā)現(xiàn)該過濾規(guī)則的處理動作掩碼的修改外層VID對應的二進制位置位(有效),則將報文的外層VID修改為外層VID處理動作因子的值,結束VLAN處理流程,報文信息為外層(TPID=0X8100,VID=200,PRI=0)。
本優(yōu)選實施例支持以下規(guī)則過濾因子和處理動作因子:
規(guī)則過濾因子包括:
(1)外層VLAN的TPID
當規(guī)則過濾掩碼中的該位置位時,需要對報文的外層TPID進行規(guī)則過濾。
(2)外層VLAN的VID
當規(guī)則過濾掩碼中的該位置位時,需要對報文的外層VID進行規(guī)則過濾。
(3)外層VLAN的優(yōu)先級
當規(guī)則過濾掩碼中的該位置位時,需要對報文的外層優(yōu)先級進行規(guī)則過濾。
(4)內(nèi)層VLAN的TPID
當規(guī)則過濾掩碼中的該位置位時,需要對報文的內(nèi)層TPID進行規(guī)則過濾。
(5)內(nèi)層VLAN的VID
當規(guī)則過濾掩碼中的該位置位時,需要對報文的內(nèi)層VID進行規(guī)則過濾。
(6)內(nèi)層VLAN的優(yōu)先級
當規(guī)則過濾掩碼中的該位置位時,需要對報文的內(nèi)層優(yōu)先級進行規(guī)則過濾。
(7)以太網(wǎng)二層協(xié)議
當規(guī)則過濾掩碼中的該位置位時,需要對報文的二層以太網(wǎng)議進行規(guī)則過濾。
在上述優(yōu)選實施例中,在根據(jù)規(guī)則過濾掩碼來匹配對應因子自前,需要解析報文中的這些因子信息,這里依靠報文的內(nèi)外層TPID來確認報文是無VLAN、單層VLAN還是雙層VLAN。為此,本發(fā)明支持TPID的靈活配置,允許應用根據(jù)需要配置所需要支持的TPID。
該處理動作因子包括:
(1)丟棄
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文丟棄的動作處理。
(2)透傳
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文透傳的動作處理。
(3)增加外層VLAN
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文增加外層VLAN的動作處理。
(4)增加內(nèi)層VLAN
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文增加內(nèi)層VLAN的動作處理。
(5)刪除外層VLAN
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文刪除外層VLAN的動作處理。
(6)刪除內(nèi)層VLAN
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文刪除內(nèi)層VLAN的動作處理。
(7)修改外層VLAN的TPID
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改外層VLAN的TPID處理。
(8)修改外層VLAN的VID
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改外層VLAN的VID處理。
(9)修改外層VLAN的優(yōu)先級
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改外層VLAN的優(yōu)先級處理。
(10)修改內(nèi)層VLAN的TPID
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改內(nèi)層VLAN的TPID處理。
(11)修改內(nèi)層VLAN的VID
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改內(nèi)層VLAN的VID處理。
(12)修改內(nèi)層VLAN的優(yōu)先級
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改內(nèi)層VLAN的優(yōu)先級處理。
(13)修改外層VLAN的DEI
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改外層VLAN的DEI處理。。
(14)修改內(nèi)層VLAN的DEI
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文修改內(nèi)層VLAN的DEI處理。
(15)VLAN匯聚
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文VLAN匯聚處理。
(16)VLAN反匯聚
當處理動作掩碼中的該位置位時,并且報文已匹配所有置位位對應的規(guī)則過濾因子時,對報文VLAN反匯聚處理。
在本優(yōu)選實施例中的規(guī)則過濾因子和處理動作因子理論上可以疊加,比如既匹配內(nèi)層VLAN的TPID,又匹配內(nèi)層VLAN的VID,既有增加外層VLAN,又修改內(nèi)層VLAN的TPID的處理動作。但是在實際中必須對其做出一些限制規(guī)則,比如不允許既增加外層VLAN,又刪除內(nèi)層VLAN,既刪除內(nèi)、外層VLAN,又修改內(nèi)、外層VLAN的操作。
又如:VLAN匯聚、VLAN反匯聚、透傳和丟棄處理動作只能單獨處理,不允許與其他處理動作因子疊加操作,等等。具體實現(xiàn)時因依據(jù)實際需求作出對應的調(diào)整。
本優(yōu)選實施例的主要思路是在Linux網(wǎng)絡協(xié)議棧的收發(fā)包節(jié)點上中對報文進行VLAN處理,通過在VLAN模型中的配置VLAN規(guī)則的裝置,配置一系列的VLAN規(guī)則,在VLAN規(guī)則處理裝置中,通過這些規(guī)則的相互作用,實現(xiàn)VLAN技術的應用。
圖3是根據(jù)本發(fā)明優(yōu)選實施在linux網(wǎng)絡協(xié)議棧中的位置模型示意圖,如圖3所示,包括:
入口VLAN處理,在linux網(wǎng)絡接口接收到數(shù)據(jù)報文之后,首先將報文送給VLAN模塊處理,在網(wǎng)絡協(xié)議棧決定轉(zhuǎn)發(fā)和上傳之前把報文交給VLAN處理,可以避免在內(nèi)核中多次嵌入VLAN模型,從而達到代碼的簡潔和處理的高效。
出口VLAN處理,在linux網(wǎng)絡協(xié)議棧處理報文后,在將報文發(fā)送到網(wǎng)絡接口前,要把報文交給VLAN模塊處理,在此加入出口VLAN的處理是因為,網(wǎng)絡協(xié)議棧已經(jīng)決定了報文的轉(zhuǎn)發(fā)路徑,VLAN模型只需要處理報文的VLAN動作,不需要考慮其他的因素。
圖4是根據(jù)本發(fā)明優(yōu)選實施的VLAN模塊處理流程的示意圖,如圖4所示,首先,收集報文中的規(guī)則過濾因子信息;然后,根據(jù)這些信息查找已配置的VLAN規(guī)則集,確認是否有配置對應的過濾規(guī)則;最后,如果查找到匹配的規(guī)則,則對報文進行對應的VLAN處理動作,結束VLAN模塊處理,按處理動作是否丟棄決定丟棄報文還是繼續(xù)協(xié)議棧處理流程。如果沒有查找到,則進行默認處理:丟棄或透傳(一般為丟棄處理)。
舉例如下,可參照圖4的處理流程:
收集到某報文的規(guī)則過濾因子信息為:單層VLAN(TPID=0x8100,VID=100,PRI=0),在VLAN規(guī)則集中有一條匹配TPID=0x8100,VID=100的規(guī)則,對匹配報文進行修改TPID=0x88A8,PRI=7的處理動作,此時該報文匹配上該規(guī)則,VLAN流程結束后,報文的VLAN信息為:單層VLAN(TPID=0x88A8,VID=100,PRI=7)。
收集到某報文的規(guī)則過濾因子信息為:單層VLAN(TPID=0x8100,VID=100,PRI=0),在VLAN規(guī)則集中有一條匹配TPID=0x8100,VID=100的規(guī)則,對匹配報文進行剝單層VLAN的處理動作,此時該報文匹配上該規(guī)則,VLAN流程結束后,報文的VLAN信息為:UNTAG報文。
收集到某報文的規(guī)則過濾因子信息為:雙層VLAN,外層VLAN(TPID=0x8100,VID=100,PRI=0)內(nèi)層VLAN(TPID=0x88A8,VID=200,PRI=0),在VLAN規(guī)則集中有一條匹配外層VLAN(VID=100),內(nèi)層VLAN(TPID=0x88A8,VID=200)的規(guī)則,對匹配報文進行修改內(nèi)層VLAN(TPID=0x8100),并剝除外層VLAN的處理動作,此時該報文匹配上該規(guī)則,VLAN流程結束后,報文的VLAN信息為:單層VLAN(TPID= 0x8100,VID=200,PRI=0)。
注:單層VLAN默認為外層VLAN。
VLAN模型由配置VLAN規(guī)則的裝置和處理VLAN規(guī)則的裝置這兩部分組成,這兩個配置分別完成VLAN規(guī)則的配置和報文收發(fā)的VLAN規(guī)則處理功能。VLAN處理模塊依據(jù)配置模塊提供的數(shù)據(jù),進行報文匹配后,將會對報文進行對應的處理動作。
圖5是根據(jù)本發(fā)明優(yōu)選實施的VLAN規(guī)則配置模塊和VLAN規(guī)則處理模塊的示意圖,如圖5所示:
VLAN配置模塊根據(jù)“規(guī)則過濾-處理動作”的模型,將一條規(guī)則分成兩部分:規(guī)則過濾和動作處理部分。
規(guī)則過濾就是根據(jù)規(guī)則過濾掩碼確定規(guī)則過濾因子(內(nèi)、外層TPID、VLAN ID、優(yōu)先級和二層以太網(wǎng)協(xié)議,等)當報文匹配上規(guī)則過濾因子后,才考慮規(guī)則中的VLAN處理的動作。
處理VLAN規(guī)則的裝置,則是通過存儲一系列的VLAN規(guī)則,通過“規(guī)則過濾-處理動作”的模型,把匹配上VLAN過濾條件的報文,根據(jù)VLAN規(guī)則表中的處理動作,修改報文中的VLAN內(nèi)容。
從上述中可以看出,相較之下,本優(yōu)選實施例比Linux網(wǎng)絡協(xié)議棧的VLAN實現(xiàn)具有實現(xiàn)簡單、適用場景多,使用靈活等優(yōu)勢。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
本發(fā)明的實施例還提供了一種存儲介質(zhì)。可選地,在本實施例中,上述存儲介質(zhì)可以被設置為存儲用于執(zhí)行上述實施例方法步驟的程序代碼:
可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
可選地,在本實施例中,處理器根據(jù)存儲介質(zhì)中已存儲的程序代碼執(zhí)行上述實施例的方法步驟。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。