創建三層接口的方法及單元的製作方法
2023-05-18 02:23:11 4
專利名稱:創建三層接口的方法及單元的製作方法
技術領域:
本發明涉及報文傳輸技術領域,具體涉及創建三層接口的方法及單元。
背景技術:
一般情況下交換機設備上支持的乙太網接口為二層乙太網接口。該類接口是設備上的一種物理接口,工作在數據鏈路層,處理二層協議,實現二層快速轉發;對應地,三層乙太網接口也是設備上的一種物理接口,工作在網絡層,可以配置網際網路協議(IP,Internet Protocol)地址,處理三層協議,提供路由功能。一些乙太網接口,根據設備對接口接收到的數據包的處理層次不同,可以工作在二層模式(bridge)或三層模式(route)。這樣的接口稱為二 /三層可切換乙太網接口。當乙太網接口配置為二層模式時,數據將通過設備硬體進行轉發,此時乙太網接口不可配置 IP位址;當乙太網接口配置為三層模式時,數據則會通過三層IP路由進行轉發。交換機的硬體一般只支持虛擬區域網(VLAN,Virtual Local Area Network)虛接口方式的三層接口配置,因此常用的實現三層乙太網接口的方式就是設法為該接口分配一個特殊的VLAN虛接口。由於VLAN在交換機上是全局資源,所以一般採用保留VLAN的方式來處理,即設置一個三層乙太網接口時,為其特殊分配一個保留VLAN,創建和該VLAN對應的虛接口。該保留VLAN以後就不能再被用戶使用。思科(Cisco)的交換機以及一些廠家的中低端產品通常採用該方式。三層乙太網子接口是設備上的一種邏輯接口,工作在網絡層,可以配置IP位址, 處理三層協議。它可以解決三層乙太網接口不能識別VLAN報文的問題。用戶可以在一個乙太網接口上配置多個子接口,這樣,來自不同VLAN的報文可以從不同的子接口進行轉發, 為用戶提供了很高的靈活性。Cisco的低端交換機一般只支持三層乙太網接口,而類似6509的中高端設備才支持三層乙太網子接口。6509的子接口實現仍然採用保留VLAN方案,在三層乙太網接口上每創建一個新的子接口,就需要為其保留一個VLAN,並創建該VLAN的虛接口來實現子接口。 從子接口收到的報文都帶VLAN tag,這裡需要在該接口上將報文上的VLAN tag轉換為該子接口的保留VLAN tag。採用保留VLAN方式將三層乙太網(子)接口轉化為虛接口的優點如下一、簡單、風險小。通過保留VLAN的方式,將三層乙太網(子)接口轉化為虛接口, 剩餘的處理就和交換機的基本流程一致了。二、不需要對三層乙太網(子)接口作二層隔離。三層乙太網(子)接口只應處理三層報文,應該設置它與其它任何二層乙太網接口和三層乙太網(子)接口二層隔離。通過保留VLAN的方式,每一個進入該三層(子)接口的報文,都被映射到該保留VLAN上。這些保留VLAN兩兩不同,且不會再被用戶使用,具有天然的二層隔離特性。採用保留VLAN方式將三層乙太網(子)接口轉化為虛接口的缺點如下一、會導致用戶的配置受限。一個VLAN被保留後,用戶將無法再使用它。例如子接口一般都和某個VLAN綁定在一起,其取值範圍是VLAN 1 4094,當一個VLAN被保留後, 用戶就無法將該VLAN用作子接口的綁定VLAN。二、Cisco的設備要求用戶只允許配置VLAN 1 1024,子接口綁定的VLAN也只能從VLAN 1 IOM選取,而VLAN 1025 4095系統保留,這樣保留VLAN就可以從VLAN 1025 4094中選取。但這種做法顯然大大限制了用戶的配置使用,和其它廠家的產品配置
無法兼容。
發明內容
本發明提供創建三層接口的方法及單元,以在不限制用戶對VLAN的配置使用的前提下,實現三層接口的創建。本發明的技術方案是這樣實現的一種創建三層接口的方法,該方法包括為設備上的所有三層乙太網接口創建一個共用的預設虛擬區域網VLAN虛接口, 為每個三層乙太網接口分配接口媒體接入控制MAC地址,建立各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID);對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN 虛接口,為每個三層乙太網子接口分配接口 MAC地址,建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);當設備從一個接口接收到報文時,查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理。所述當設備從一個接口接收到報文時之後、查找與該報文的目的MAC地址和VLAN 標籤匹配的三層接口表項之前進一步包括若該報文未帶VLAN標籤,則將該接口的預設VLAN標籤打到該報文上。
所述預設VLAN虛接口使用的VLAN為VLAN 0或VLAN 4095。所述為每個三層乙太網子接口分配接口 MAC地址包括當一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口時,為該三層乙太網子接口分配的接口 MAC地址與該普通VLAN三層接口的接口 MAC地址不同。所述為每個三層乙太網子接口分配接口 MAC地址進一步包括為設備上的所有乙太網子接口分配相同的接口 MAC地址;或者,對於一個三層乙太網接口,為該三層乙太網接口及其上的所有三層乙太網子接口分配相同的接口 MAC地址。所述對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的 VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址之後進一步包括判斷是否已為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置了計數器,若是,將計數器的計數值加1 ;否則,為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置一個計數值,並將計數值設為1 ;且,所述建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID) 包括若該三層乙太網子接口的VLAN ID+接口 MAC地址對應的計數器的計數值變為1,則建立該三層乙太網子接口的三層接口表項(接口 MAC地址,VLANID);否則,不作進一步處理。所述方法進一步包括當將一個VLAN虛接口從一個三層接口上刪除時,將該三層接口的VLAN ID+接口 MAC地址對應計數器的計數值減1,判斷新計數值是否為0,若是,刪除該三層接口的三層接口表項(接口 MAC地址,VLANID);否則,不作進一步處理。所述為設備上的所有三層乙太網接口創建一個共用的預設VLAN虛接口之前進一步包括在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。所述在設備上創建三層乙太網接口進一步包括在該接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。一種創建三層接口的單元,該單元包括三層乙太網接口創建模塊為設備上的所有三層乙太網接口創建一個共用的預設虛擬區域網VLAN虛接口,為每個三層乙太網接口分配接口媒體接入控制MAC地址,建立各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID);三層乙太網子接口創建模塊對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址,建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);轉發處理模塊當從設備的一個接口接收到報文時,查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理。所述轉發處理模塊進一步用於,當從設備的一個接口接收到報文時之後,若發現該報文未帶VLAN標籤,則將該接口的預設VLAN標籤打到該報文上。所述三層乙太網接口創建模塊為設備上的所有三層乙太網接口創建的預設VLAN 虛接口使用的VLAN為VLAN 0或VLAN 4095。所述三層乙太網子接口創建模塊為每個三層乙太網子接口分配接口 MAC地址時, 若一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口,則為該三層乙太網子接口分配的接口 MAC地址與該普通VLAN三層接口的接口 MAC地址不同。所述三層乙太網子接口創建模塊為每個三層乙太網子接口分配接口 MAC地址時, 為設備上的所有乙太網子接口分配相同的接口 MAC地址;或者,對於一個三層乙太網接口, 為該三層乙太網接口及其上的所有三層乙太網子接口分配相同的接口 MAC地址。所述三層乙太網子接口創建模塊進一步用於,為每個三層乙太網子接口分配接口 MAC地址之後,判斷是否已為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC 地址設置了計數器,若是,將計數器的計數值加1 ;否則,為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置一個計數值,並將計數值設為1,且,若一個三層乙太網子接口的VLAN虛接口的計數值為1,則建立該三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);否則,不作進一步處理。
所述三層乙太網子接口創建模塊進一步用於,當將一個VLAN虛接口從一個三層接口上刪除時,將該三層接口的VLAN ID+接口 MAC地址對應計數器的計數值減1,判斷新計數值是否為0,若是,刪除該三層接口的三層接口表項(接口 MAC地址,VLAN ID);否則,不作進一步處理。所述三層乙太網接口創建模塊進一步用於,在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。所述三層乙太網接口創建模塊進一步用於,在設備的所有三層乙太網接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。與現有技術相比,本發明無需保留VLAN,就可實現三層接口的創建,不會限制用戶對VLAN的配置使用。
圖1為本發明實施例提供的創建三層接口的方法流程圖;圖2為本發明實施例提供的創建三層接口的單元的組成示意圖。
具體實施例方式下面結合附圖及具體實施例對本發明再作進一步詳細的說明。圖1為本發明實施例提供的創建三層接口的方法流程圖,如圖1所示,其具體步驟如下步驟101 在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。例如當創建一個三層乙太網接口 m時,在接口 m所在晶片上設置從接口 m的物理埠收到的二層報文禁止向接口 m所在晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向接口 m的物理埠轉發;同時在非接口 m所在晶片,如接口 η所在晶片上設置來自接口 m的物理埠的二層報文禁止向接口 η所在晶片的所有外部埠轉發。這裡,接口晶片的外部埠指的是與其它設備交互的埠,包括二層埠和三層接口,不包括設備內部的晶片互連埠和中央處理單元(CPU,Central Processing Unit) 端□。為了保證二層協議報文的正常轉發,三層乙太網接口也需要支持一些二層協議設置,例如需要在所有三層乙太網接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。在實際應用中,也可能將多個三層接口綁定在一起,形成一個三層聚合口,該三層聚合口具有一個聚合標識(ID),此時需要在設備的所有晶片上設置來自於該聚合ID的二
8層報文禁止向本晶片的所有外部埠轉發。這裡的三層接口指的是三層乙太網接口、三層乙太網子接口或者普通VLAN三層接口。步驟102 為設備上的所有三層乙太網接口創建一個共用的、預設VLAN為VLAN 4095的VLAN虛接口,為每個三層乙太網接口分配接口 MAC地址,將各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID)下發到二層轉發表中,並標明表項的屬性為三層屬性,其中,VLAN ID為VLAN4095,接口 MAC地址為三層乙太網接口的MAC地址。這裡,設備可以是交換機、路由器等。不同三層乙太網接口的MAC地址可以相同,也可以不同。當多個三層乙太網接口的接口 MAC地址相同時,只下發一個(接口 MAC地址,VLANID)表項即可。這裡,為所有三層乙太網接口創建的共用、預設VLAN也可以選擇VLAN0。由於子接口綁定的VLAN的取值範圍是VLAN 1 4094,而保留VLAN的取值範圍是VLANO 4095,為了不影響用戶對VLAN的配置使用,在為所有三層乙太網接口創建共用的預設VLAN時,只在 VLANO, VLAN4095 二者間選擇一個。從三層乙太網接口進入的報文都是imtag的,即不帶VLAN tag的;通過將三層乙太網接口的物理埠的預設VLAN配置為4095,就可以使得該接口收到的imtag報文都被映射到VLAN 4095上。這樣,通過在三層乙太網接口上創建VLAN 4095的虛接口,就可以實現三層乙太網接口的三層轉發功能。這裡需要注意的是,所有三層乙太網接口共用同一個VLAN 4095虛接口。步驟103 對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址,將每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID)下發到二層轉發表中,並標明表項的屬性為三層屬性,其中,VLAN ID為三層乙太網子接口的VLAN虛接口的VLAN ID,接口 MAC地址為三層乙太網子接口的MAC地址。其中,若一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口時,為該三層乙太網子接口分配的接口 MAC地址必須與該普通VLAN三層接口的接口 MAC地址不同。對於一個三層乙太網接口而言,其綁定VLAN的VLAN ID即其VLAN虛接口的VLAN ID。從三層乙太網子接口進入的報文都是帶VLAN tag的;通過將三層乙太網子接口所屬的三層乙太網接口的物理埠配置為VLAN匯聚(Trunk) 口,並允許該子接口綁定的 VLAN通過,就可以使得該物理埠收到的帶VLANTag的報文都被映射到對應的子接口上。 通過創建子接口對應的VLAN虛接口,就可以實現三層乙太網子接口的三層轉發功能。這裡需要注意的是,所有綁定了相同VLAN的三層乙太網子接口以及該VLAN的普通VLAN三層接口共用同一個VLAN虛接口。由於存在多個三層接口共用同一個VLAN虛接口、同時共用一個接口 MAC地址的情況,因此,為了避免重複下發或刪除三層接口表項(接口 MAC地址,VLAN ID),給出如下優化處理當在一個三層接口上創建了一個VLAN虛接口,並為三層接口分配了接口 MAC地址後,判斷是否已設置了針對該三層接口的VLAN ID+該三層接口的接口 MAC地址的計數器, 若是,將該計數器的計數值加1,且不向二層轉發表下發三層接口表項;否則,為該三層接口的VLAN ID+該三層接口的接口 MAC地址設置計數器,並將計數器的計數值設為1,並向二層轉發表下發三層接口表項(該三層接口的接口 MAC地址,該三層接口的VLAN ID);當將一個VLAN虛接口從一個三層接口上刪除後,將該三層接口的VLAN ID+該三層接口的接口 MAC地址對應的計數器的計數值減1,判斷計數器的新計數值是否為0,若是, 將三層接口表項(該三層接口的接口 MAC地址,該三層接口的VLAN ID)從二層轉發表中刪除;否則,不作進一步處理。由於進入交換機的報文是通過匹配三層接口表項(接口 MAC地址,VLAN ID)來確定是否作三層轉發的,當報文的目的MAC地址和VLAN tag與一個三層接口表項匹配時, 則確定報文應作三層轉發。若一個三層乙太網子接口和一個普通VLAN三層接口共用一個 VLAN虛接口,則為該三層乙太網子接口分配的接口 MAC地址應該與該普通VLAN三層接口不同,這樣就可以把普通VLAN三層接口的接口表項和三層乙太網子接口的接口表項區分開, 從而避免出現創建了三層乙太網子接口而未創建普通VLAN三層接口時,從二層乙太網接口進入的該VLAN的、目的MAC地址為二層乙太網接口 MAC地址的報文也作了三層轉發的情況。這裡,為了避免出現新增過多三層接口 MAC地址的情況,可以採用為每個三層乙太網接口分配一個接口 MAC地址,該三層乙太網接口和其上的所有三層乙太網子接口都使用該MAC地址作為各自的接口 MAC地址;或者,也可以為設備上的所有三層乙太網子接口分配一個共用的接口 MAC地址。實際上,只要把相同VLAN的三層乙太網子接口的接口 MAC地址和普通VLAN三層接口的接口 MAC地址區分開即可。需要注意的是在作三層轉發處理時,針對不同的VLAN可能會設置不同的轉發限制表項,由於存在多個三層接口共用一個VLAN虛接口的情況,這樣為了避免重複下發相同 VLAN的轉發限制表項,可以進行如下優化處理當新創建了一個VLAN虛接口後,判斷是否已設置了針對該VLAN虛接口的VLAN ID 的計數器,若是,將該計數器的計數值加1,且不下發該VLAN的轉發限制表項;否則,為該 VLAN ID設置計數器,並將計數器的計數值設為1,並下發該VLAN的轉發限制表項;當將一個VLAN虛接口從一個三層接口上刪除後,將該VLAN虛接口的VLAN ID對應的計數器的計數值減1,判斷計數器的新計數值是否為0,若是,刪除該VLAN的轉發限制表項;否則,不作進一步處理。步驟104 設備從一個接口接收到一個報文,判斷該報文是否帶VLANtag,若是,執行步驟105 ;否則,執行步驟104。步驟105 設備將該接口的預設VLAN tag打到該報文上。例如若接口為三層乙太網接口,則將接口的預設VLAN =VLAN 4095tag或VLAN Otag打到該報文上。步驟106 設備在二層轉發表中查找與報文的目的MAC地址和VLAN ID匹配的三層接口表項,判斷是否查找到,若是,執行步驟107 ;否則,執行步驟108。步驟107 設備確定報文為三層報文,對報文作三層轉發處理,本流程結束。步驟108 設備確定報文為二層報文,對報文作二層轉發處理。這裡,在對報文作二層轉發處理時,需要遵守步驟101中的設置,即若該報文的入埠為三層乙太網接口對應物理埠,則禁止將該報文向本設備所有晶片的外部埠轉
10發。圖2為本發明實施例提供的創建三層接口的單元的組成示意圖,如圖2所示,其主要包括三層乙太網接口創建模塊21、三層乙太網子接口創建模塊22、二層轉發表模塊23 和轉發處理模塊M,其中三層乙太網接口創建模塊21 為設備上的所有三層乙太網接口創建一個共用的預設VLAN虛接口,為每個三層乙太網接口分配接口 MAC地址,將各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID)下發到二層轉發表模塊23中。三層乙太網子接口創建模塊22 對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址,將每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID)下發到二層轉發表模塊 23中。二層轉發表模塊23 存儲二層轉發表。轉發處理模塊M 當從設備的一個接口接收到報文時,在二層轉發表模塊23中查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理;否則,對報文作二層轉發處理。轉發處理模塊M進一步用於,當從設備的一個接口接收到報文時之後,若發現該報文未帶VLAN標籤,則將該接口的預設VLAN標籤打到該報文上,然後執行在二層轉發表模塊23中查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項的動作。三層乙太網接口創建模塊21進一步用於,當為設備上的所有三層乙太網接口創建預設VLAN虛接口時,該預設VLAN虛接口使用的VLAN為包含在保留VLAN取值範圍內、 而不包含在子接口綁定VLAN取值範圍內的VLAN。三層乙太網子接口創建模塊22進一步用於,當為每個三層乙太網子接口分配接口 MAC地址時,若一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口, 則為該三層乙太網子接口分配的接口 MAC地址與該普通VLAN三層接口的接口 MAC地址不同。三層乙太網子接口創建模塊22進一步用於,當為每個三層乙太網子接口分配接口 MAC地址時,為設備上的所有乙太網子接口分配相同的接口 MAC地址;或者,對於一個三層乙太網接口,為該三層乙太網接口及其上的所有三層乙太網子接口分配相同的接口 MAC 地址。三層乙太網子接口創建模塊22進一步用於,為每個三層乙太網子接口分配接口 MAC地址之後,判斷是否已為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC 地址設置了計數器,若是,將計數器的計數值加1 ;否則,為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置一個計數值,並將計數值設為1,且,若一個三層乙太網子接口的VLAN虛接口的計數值為1,則將該三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID)下發到二層轉發表中;否則,不下發該三層乙太網子接口的三層接口表項。三層乙太網子接口創建模塊22進一步用於,當將一個VLAN虛接口從一個三層接口上刪除時,將該三層接口的VLAN ID+接口 MAC地址對應計數器的計數值減1,判斷新計數值是否為0,若是,將該三層接口的三層接口表項(接口 MAC地址,VLAN ID)從二層轉發表中刪除;否則,不作處理。三層乙太網接口創建模塊21進一步用於,在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。三層乙太網接口創建模塊21進一步用於,在設備的所有三層乙太網接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。圖2所示創建三層接口的單元可位於交換機或路由器上。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
權利要求
1.一種創建三層接口的方法,其特徵在於,該方法包括為設備上的所有三層乙太網接口創建一個共用的預設虛擬區域網VLAN虛接口,為每個三層乙太網接口分配接口媒體接入控制MAC地址,建立各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID);對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址,建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);當設備從一個接口接收到報文時,查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理。
2.根據權利要求1所述的方法,其特徵在於,所述當設備從一個接口接收到報文時之後、查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項之前進一步包括若該報文未帶VLAN標籤,則將該接口的預設VLAN標籤打到該報文上。
3.根據權利要求1所述的方法,其特徵在於,所述預設VLAN虛接口使用的VLAN為VLAN 0或VLAN 4095。
4.根據權利要求1所述的方法,其特徵在於,所述為每個三層乙太網子接口分配接口 MAC地址包括當一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口時,為該三層乙太網子接口分配的接口 MAC地址與該普通VLAN三層接口的接口 MAC地址不同。
5.根據權利要求4所述的方法,其特徵在於,所述為每個三層乙太網子接口分配接口 MAC地址進一步包括為設備上的所有乙太網子接口分配相同的接口 MAC地址;或者,對於一個三層乙太網接口,為該三層乙太網接口及其上的所有三層乙太網子接口分配相同的接口 MAC地址。
6.根據權利要求1所述的方法,其特徵在於,所述對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址之後進一步包括判斷是否已為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置了計數器,若是,將計數器的計數值加1 ;否則,為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置一個計數值,並將計數值設為1 ;且,所述建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID)包括若該三層乙太網子接口的VLAN ID+接口 MAC地址對應的計數器的計數值變為1,則建立該三層乙太網子接口的三層接口表項(接口 MAC地址,VLANID);否則,不作進一步處理。
7.根據權利要求6所述的方法,其特徵在於,所述方法進一步包括當將一個VLAN虛接口從一個三層接口上刪除時,將該三層接口的VLAN ID+接口 MAC地址對應計數器的計數值減1,判斷新計數值是否為0,若是,刪除該三層接口的三層接口表項(接口 MAC地址,VLANID);否則,不作進一步處理。
8.根據權利要求1所述的方法,其特徵在於,所述為設備上的所有三層乙太網接口創建一個共用的預設VLAN虛接口之前進一步包括在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置 從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。
9.根據權利要求8所述的方法,其特徵在於,所述在設備上創建三層乙太網接口進一步包括在該接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。
10.一種創建三層接口的單元,其特徵在於,該單元包括三層乙太網接口創建模塊為設備上的所有三層乙太網接口創建一個共用的預設虛擬區域網VLAN虛接口,為每個三層乙太網接口分配接口媒體接入控制MAC地址,建立各個三層乙太網接口的三層接口表項(接口 MAC地址,VLAN ID);三層乙太網子接口創建模塊對於設備上的每個三層乙太網子接口,按照其綁定的 VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口 MAC地址,建立每個三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);轉發處理模塊當從設備的一個接口接收到報文時,查找與該報文的目的MAC地址和 VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理。
11.根據權利要求10所述的單元,其特徵在於,所述轉發處理模塊進一步用於,當從設備的一個接口接收到報文時之後,若發現該報文未帶VLAN標籤,則將該接口的預設VLAN標籤打到該報文上。
12.根據權利要求10所述的單元,其特徵在於,所述三層乙太網接口創建模塊為設備上的所有三層乙太網接口創建的預設VLAN虛接口使用的VLAN為VLAN 0或VLAN 4095。
13.根據權利要求10所述的單元,其特徵在於,所述三層乙太網子接口創建模塊為每個三層乙太網子接口分配接口 MAC地址時,若一個三層乙太網子接口與一個普通VLAN三層接口共用一個VLAN虛接口,則為該三層乙太網子接口分配的接口 MAC地址與該普通VLAN 三層接口的接口 MAC地址不同。
14.根據權利要求10所述的單元,其特徵在於,所述三層乙太網子接口創建模塊為每個三層乙太網子接口分配接口 MAC地址時,為設備上的所有乙太網子接口分配相同的接口 MAC地址;或者,對於一個三層乙太網接口,為該三層乙太網接口及其上的所有三層乙太網子接口分配相同的接口 MAC地址。
15.根據權利要求10所述的單元,其特徵在於,所述三層乙太網子接口創建模塊進一步用於,為每個三層乙太網子接口分配接口 MAC地址之後,判斷是否已為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置了計數器,若是,將計數器的計數值加1 ;否則,為該VLAN虛接口對應VLAN ID+該三層乙太網子接口的接口 MAC地址設置一個計數值,並將計數值設為1,且,若一個三層乙太網子接口的VLAN虛接口的計數值為1,則建立該三層乙太網子接口的三層接口表項(接口 MAC地址,VLAN ID);否則,不作進一步處理。
16.根據權利要求15所述的單元,其特徵在於,所述三層乙太網子接口創建模塊進一步用於,當將一個VLAN虛接口從一個三層接口上刪除時,將該三層接口的VLAN ID+接口 MAC地址對應計數器的計數值減1,判斷新計數值是否為0,若是,刪除該三層接口的三層接口表項(接口 MAC地址,VLAN ID);否則,不作進一步處理。
17.根據權利要求10所述的單元,其特徵在於,所述三層乙太網接口創建模塊進一步用於,在設備上創建三層乙太網接口,對於每個三層乙太網接口,在該接口所在晶片上設置從該接口對應物理埠收到的二層報文禁止向本晶片的所有外部埠轉發,且來自任何其它埠的二層報文禁止向該三層乙太網接口對應物理埠轉發;同時在非該接口所在晶片上設置來自該接口對應物理埠的二層報文禁止向本晶片的所有外部埠轉發。
18.根據權利要求17所述的單元,其特徵在於,所述三層乙太網接口創建模塊進一步用於,在設備的所有三層乙太網接口所在晶片上設置CPU發出的二層協議報文允許向本晶片的外部埠轉發。
全文摘要
本發明公開了創建三層接口的方法及單元。方法包括為設備上的所有三層乙太網接口創建共用的預設VLAN虛接口,為各三層乙太網接口分配接口MAC地址,建立各三層乙太網接口的三層接口表項(接口MAC地址,VLANID);對於設備上的每個三層乙太網子接口,按照其綁定的VLAN,為其創建對應的VLAN虛接口,為每個三層乙太網子接口分配接口MAC地址,建立每個三層乙太網子接口的三層接口表項(接口MAC地址,VLAN ID);當設備從一個接口接收到報文時,查找與該報文的目的MAC地址和VLAN標籤匹配的三層接口表項,若查找到,則對報文作三層轉發處理。本發明無需保留VLAN,就可實現三層接口的創建,不會限制用戶對VLAN的配置使用。
文檔編號H04L12/46GK102158421SQ20111013743
公開日2011年8月17日 申請日期2011年5月25日 優先權日2011年5月25日
發明者李捷, 王明輝, 黃易 申請人:杭州華三通信技術有限公司