專利名稱:多芯片交換機及其擴展介質訪問控制地址表的方法
技術領域:
本發明涉及數據通信領域,尤其涉及一種多芯片交換機擴展介質訪問控制(Media Access Control,簡稱MAC)地址表的方法及多芯片交換才幾。
技術背景虛擬局域網(Virtual Local Area Network,簡稱VLAN)是一種根據邏輯 劃分形成的網絡。換句話說,VLAN是一種將局域網(LAN)設備從邏輯上劃 分而不是從物理上劃分,形成一個個網段即更小的LAN,從而實現虛擬工作 組(單元)的數據交換技術。VLAN標準IEEE802. 1Q由電氣電子工程師學會 (Institute of Electrical and Electronic Engineers, 簡稱IEEE) 802委 員會制定,不同的VLAN之間不能直接進行數據通信。VLAN中,交換機能夠直接對目的節點發送數據包,而不是像集線器一樣 以廣播方式對所有節點發送數據包,是因為交換機可以識別連在網絡上的 節點的網卡MAC地址,并把它們放到一個叫做MAC地址表的地方。MAC地址 是用于識別LAN中各個節點的標識。網卡生產廠家燒入網卡的物理地址,存址。MAC地址一般是全球唯一 的,即,MAC地址就如同我們身份證上的身份證 號碼,具有全球唯一性。MAC地址表記住這些MAC地址,并存放于交換機的 緩存中。當需要向目的地址發送數據時,交換機就可在MAC地址表中查找這 個MAC地址的節點位置,然后直接向這個位置的節點發送。MAC地址表的建立和維護由交換機通過地址學習的方式來實現。地址學 系的方式包括當交換機從某個交換端口收到一個數據包時,先讀取包頭中的源MAC地
址,獲知源MAC地址的機器連在哪個交換端口;其中,交換機的端口包括內 聯端口和交換端口。內聯端口是指交換機內部芯片直接的互聯端口,對外界 不可見;交換端口 (PORT)是指交換機與外界通訊交流的接口 ;再去讀取包頭中的目的MAC地址,并在MAC地址表中查找相應的交換端cr;如在MAC地址表中有與這目的MAC地址對應的交換端口 ,把數據包直接 復制到這交換端口上;如MAC地址表中找不到相應的交換端口,則把數據包廣播到所有端口(包 括交換端口和互聯端口)上。當目的機器對源機器回應時,交換機學習該目 的MAC地址與哪個交換端口對應。在下次傳送數據時,交換機不需要對所有 端口 (包括交換端口和互聯端口)進行廣播。不斷的循環上述過程,交換機可以學習到全網的MAC地址信息,從而建 立和維護自己的MAC地址表。對于多芯片交換機,即多個交換芯片通過內聯端口連接起來,作為一臺 交換機工作。而這些內聯端口也是交換機的端口。為了保證交換芯片間的地 址的同步性,每創建一個VLAN,將所有交換芯片的內聯端口都設置于創建的 VLAN中,使交換機內芯片的內聯端口屬于所有VLAN。如圖1所示,芯片12 與芯片13通過內聯端口 14形成交換機11。當芯片12上交換端口 15有源地 址為MAC1的廣播報文進來時,芯片12就會學習到地址MAC1,并存放在芯片 12的地址表中。并且,這個廣播報文通過內聯端口 14廣播到交換機11中的 其他芯片,如芯片13。于是芯片13也學習到該MAC地址,并存放在自己的 地址表中。這樣,地址MAC1就在芯片12和芯片13的地址表上都保留一份, 即一個MAC地址被兩個芯片的MAC地址表同時保存。如果有更多芯片,原理 相同。假設有M個芯片,每個芯片上地址表中存儲的MAC地址個數為N,那 么總地址數MxN。但由于一個MAC地址可能被多個芯片保存,導致最后實際 的MAC地址小于MxN個,造成了 MAC地址表資源的極大浪費。
目前,為解決MAC地址表資源的浪費問題,申請號為200610099427. 7的 中國專利申請"利用以太網交換機媒體接入控制地址表空間的方法"采用主 芯片來通告從芯片,使其他從芯片進行地址學習,達到減少MAC地址表資源 浪費的目的。現有技術存在的缺陷在于,由于主芯片需要進行通告處理,因而需要耗 費中央處理器(CPU)資源;并且,通過主芯片通告可能導致從芯片地址學習 不及時,使得一些不必要的報文被廣播,造成帶寬的浪費。發明內容本發明的目的在于提出一種多芯片交換機擴展介質訪問控制地址表的 方法及多芯片交換機,以減輕交換機擴展MAC地址表時的CPU負擔,并節 約交換機內聯端口的帶寬。為實現上述目的,本發明提供了 一種多芯片交換機擴展介質訪問控制 地址表的方法,包括根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所 屬的虛擬局域網;進行介質訪問控制地址學習。根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所 屬的虛擬局域網可包括在所述芯片的所有交換端口均不屬于第 一 虛擬局域網時,將所述芯片 的內聯端口移除出所述第一虛擬局域網;或在所述芯片的交換端口加入第二虛擬局域網時,將所述芯片的內聯端 口加入到所述第二虛擬局域網。本發明還提供了一種多芯片交換機,包括設置模塊,用于根據芯片的交換端口所在的虛擬局域網設置所述芯片 的內聯端口所屬的虛擬局域網;
地址學習模塊,用于在所述設置模塊設置的情況下進行介質訪問控制 地址學習。所述設置模塊可包括移出模塊,用于在所述芯片的所有交換端口均不屬于第 一虛擬局域網 時,將所述芯片的內聯端口移除出所述第一虛擬局域網;加入模塊,用于在所述芯片的交換端口加入第二虛擬局域網時,將所 述芯片的內聯端口加入到所述第二虛擬局域網。上述技術方案中,交換機通過設置芯片的內聯端口擴展MAC地址表,避 免了通告給CPU造成的資源支出以及帶寬消耗,從而大大減輕了擴展MAC地 址表時CPU的負擔,節約了交換機內聯端口的帶寬。下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
圖1為現有技術中多芯片交換機的結構示意圖; 圖2為本發明多芯片交換機擴展介質訪問控制地址表的方法實施例一 的流程圖;圖3為本發明多芯片交換機擴展介質訪問控制地址表的方法實施例二 的流程圖;圖4為本發明多芯片交換機實施例的結構示意圖。
具體實施方式
本發明實施例多芯片交換機擴展介質訪問控制地址表的方法,可包括 根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所 屬的VLAN;進行MAC地址學習。學習MAC地址是為了更好的讓連接交換機的設備互相通信。而處于不 同VLAN的設備,不能進行直接通信,因此,當交換機的某個芯片中沒有 交換端口屬于某個VLAN時,那么該芯片的地址表上就沒有必要保留學習 到的該VLAN的MAC地址,將該內聯端口移除出該VLAN,從而節約了 MAC 地址表空間,實現了 MAC地址表的擴展。圖2為本發明多芯片交換機擴展介質訪問控制地址表的方法實施例一 的流程圖。本實施例以圖1中的交換機為例對擴展MAC地址表的方法進行 說明。假設芯片13的所有交換端口都不屬于VLANx,或者當芯片13的交 換端口移除出VLANx時,判斷芯片13的所有交換端口是否都移除出VLAN x,若是,則擴展MAC地址表包括步驟21、將芯片13的內聯端口移除出VLAN x。每個VLAN都有一個 端口的位圖表,移除出 一個VLAN,可以通過移除出該VLAN的那個位圖表實 現;步驟22、如果這時芯片12的某個交換端口有VLAN x的MACl的廣播 報文,由于芯片13的內聯端口此時已不屬于VLANx,因而,芯片12無法 將該廣播報文轉發到芯片13的內聯端口,只能將該廣播報文轉發到屬于 VLAN x的內聯端口,芯片13也就不會學習到MAC1的地址,這樣,芯片 13就比原先多出了一個地址表空間,可以用來學習其他地址,從而達到了 MAC地址的擴展。在理想情況下,如果所有芯片的交換端口加入的VLAN都互不交集, 那么所有芯片就都不會學到其他芯片的任何地址,交換機實際上總共學到 的地址個數可為芯片個數Mx芯片上的MAC地址N。圖3為本發明多芯片交換機擴展介質訪問控制地址表的方法實施例二 的流程圖。在實際實施過程中,通過將內聯端口加入到VLAN的位圖表中, 可以將所有的芯片的內聯端口都只屬于一個默認VLAN。擴展MAC地址表的 方法包括步驟31、當某個芯片的交換端口加入到VLAN a時,判斷該芯片的內 聯端口是否已在VLAN a中,若否,則將該芯片的內聯端口加入到VLAN a。 加入一個VLAN,可以通過加入該VLAN的那個位圖表實現。這樣既保證了 該芯片的交換端口可以正常通信的同時,又保證了內聯端口只屬于該芯片 下交換端口加入的VLAN a。步驟32、當有VLAN a的廣播報文到達該芯片所屬交換機的交換端口 時,由于該芯片的內聯端口只屬于VLANa,使得該芯片只需學習其實際連 接的節點的MAC地址,從而避免了存儲不必要的MAC地址,擴展了 MAC地 址表的空間。本發明實施例多芯片交換機可包括設置模塊及地址學習模塊。設置 模塊用于將芯片的內聯端口設置于交換端口所在的VLAN中;地址學習模 塊用于在所述設置模塊設置的情況下進行地址學習。圖4為本發明多芯片交換機實施例的結構示意圖。交換機包括設置模 塊41及地址學習模塊42。設置模塊41用于將芯片的內聯端口設置于交換 端口所在的VLAN中;地址學習模塊42用于在所述設置模塊41設置的情 況下進行地址學習。其中,設置模塊41可包括移出模塊43及加入模塊44,移出模塊43 用于在所述芯片的所有交換端口均不屬于第一 VLAN時,將所述芯片的內 聯端口移除出所述第一 VLAN。加入模塊44用于在所述芯片的交換端口加 入第二 VLAN時,將所述芯片的內聯端口加入到所述第二 VLAN。本發明上述方法和裝置實施例具有如下優點1. 能夠有效地擴展MAC地址表在理想情況下,當每個芯片的交換端口上所屬的VLAN互不交集時, 那么交換機的總地址容量為MxN個,完全利用了地址表資源,相對于現 有技術中交換機的總地址容量可能僅為N個,大大擴展了 MAC地址表。2. 節約一定的帶寬在芯片的交換端口不屬于VLAN A時,將該芯片的內聯端口從VLAN A
中移除,VLANA的廣播報文就不會廣播到該芯片的內聯端口 了。相對于現 有技術中VLAN A的廣播數據報文也會廣播到不屬于VLAN A的芯片的內聯 端口,避免了帶寬的不必要占用,大大節約了內聯端口的帶寬。 3.快速的地址學習以及減低CPU負擔由于所有芯片的地址學習都是通過硬件學習到的,而無需軟件參與, 相對于現有技術采用主芯片分發地址到從芯片的方式,大打提高了芯片地 址學習速度,節約了帶寬,并且大大減輕了 CPU負擔。上述實施例通過設置內聯端口所屬的VLAN,有效地擴展了 MAC地址 表,充分利用了地址表資源。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步 驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機 可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟; 而前述的存儲介質包括R0M、 RAM、磁碟或者光盤等各種可以存儲程序代 碼的介質。最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其 限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術 人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或 者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技 術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1、一種多芯片交換機擴展介質訪問控制地址表的方法,其特征在于,包括根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所屬的虛擬局域網;進行介質訪問控制地址學習。
2、 根據權利要求1所述的多芯片交換機擴展介質訪問控制地址表的方 法,其特征在于,根據芯片的交換端口所在的虛擬局域網設置所述芯片的 內聯端口所屬的虛擬局域網包括在所述芯片的所有交換端口均不屬于第 一虛擬局域網時,將所述芯片 的內聯端口移除出所述第一虛擬局域網。
3、 根據權利要求1所述的多芯片交換機擴展介質訪問控制地址表的方 法,其特征在于,根據芯片的交換端口所在的虛擬局域網設置所述芯片的 內聯端口所屬的虛擬局域網包括在所述芯片的交換端口加入第二虛擬局域網時,將所述芯片的內聯端 口加入到所述第二虛擬局域網。
4、 根據權利要求3所述的多芯片交換機擴展介質訪問控制地址表的方 法,其特征在于,將所述芯片的內聯端口加入到所述第二虛擬局域網之前 還包括將所述多芯片交換機中所有芯片的內聯端口設置于默認的虛擬局域 網中。
5、 一種多芯片交換機,其特征在于,包括設置模塊,用于根據芯片的交換端口所在的虛擬局域網設置所述芯片 的內聯端口所屬的虛擬局域網;地址學習模塊,用于在所述設置模塊設置的情況下進行介質訪問控制地址學習。
6、根據權利要求5所述的多芯片交換機,其特征在于,所述設置模 塊包括移出模塊,用于在所述芯片的所有交換端口均不屬于第 一虛擬局域網 時,將所述芯片的內聯端口移除出所述第一虛擬局域網;加入模塊,用于在所述芯片的交換端口加入第二虛擬局域網時,將所 述芯片的內聯端口加入到所述第二虛擬局域網。
全文摘要
本發明涉及一種多芯片交換機及其擴展介質訪問控制地址表的方法,方法包括根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所屬的虛擬局域網;進行介質訪問控制地址學習。多芯片交換機包括設置模塊,用于根據芯片的交換端口所在的虛擬局域網設置所述芯片的內聯端口所屬的虛擬局域網;地址學習模塊,用于在所述設置模塊設置的情況下進行介質訪問控制地址學習。交換機通過設置芯片的內聯端口擴展MAC地址表,避免了通告給CPU造成的資源支出以及帶寬消耗,從而大大減輕了擴展MAC地址表時CPU的負擔,節約了交換機內聯端口的帶寬。
文檔編號H04L12/56GK101399779SQ20081022534
公開日2009年4月1日 申請日期2008年10月30日 優先權日2008年10月30日
發明者高小強 申請人:北京星網銳捷網絡技術有限公司