利用乙太網交換機媒體接入控制地址表空間的方法
2023-12-03 16:28:11
專利名稱:利用乙太網交換機媒體接入控制地址表空間的方法
技術領域:
本發明涉及乙太網通信技術,更具體的說,是一種用來實現在乙太網交
換機上利用交換機有限的晶片MAC (媒體接入控制)地址表的處理方法。
背景技術:
隨著網際網路的高速發展,乙太網網絡逐漸成為人們日常工作和生活中必 不可少的工具,從而對乙太網交換機的需求和處理能力也越來越高。眾所周 知,乙太網交換機目前來說還是一個成本很高的高科技產品。那麼,我們怎 麼才能在成本一定的情況下,使乙太網交換機的數據交換能力得到更大的發 揮呢?
目前乙太網交換機的二層交換是由MAC地址(MAC地址即在媒體接 入層上使用的地址,也叫物理地址)轉發表來實現的。交換機在收到一個數 據幀以後,先學習數據幀的源MAC地址以及數據幀所應屬於的VLAN (Virtual Local Area Network,虛擬區域網),以及數據幀進入交換機的物 理埠PORT。按照這種方法就會形成一個表項MAC + VLAN—>PORT, 經過學習各個埠下的各個設備的源MAC地址以後形成很多的這樣的表 項,這就是MAC地址表,那麼在數據幀交換的時候就可以拿數據幀的目的 MAC來查這些表項,將數據幀快速的轉發到相應的埠。
如圖l所示,目前分布式乙太網交換機的模型是整個交換機有多個小的 子交換處理單元,這些小的子處理單元由一個大的主控交換處理單元連接起 來,這樣整個交換機就形成了一個交換網絡,從而實現高埠密度高容量的 交換。目前的做法是當某個子交換單元學習到某個MAC地址時會添加本單 元的MAC地址表,同時通知主控處理單元,主控處理單元再通知其它子處 理單元,其它子處理單元再將這個MAC地址寫到MAC地址表,通過這種 做法最後所有這些交換單元的MAC地址表內容是保持一致的。但是這種做
法在VLAN配置不同的情況下有些浪費。
發明內容
本發明要解決的技術問題是提供一種利用乙太網交換機MAC地址表空 間的方法,利用這個方法可以有效利用乙太網交換機的MAC地址表空間。
乙太網交換機用來作轉發決定的MAC地址表存儲在內存中的,這些內 存集成在乙太網交換晶片之中,其空間大小是一定的。怎麼才能使這個有限 的空間得到有效的利用呢。為解決這個技術問題,本發明提供了一種利用以 太網交換機媒體接入控制MAC地址表空間的方法,該交換機包括主控交換 處理單元和若干子交換處理單元,該方法包括以下步驟
(a) 某個子交換處理單元學習到某個MAC地址,生成一包含該MAC 地址對應的虛擬區域網VLAN和埠 PORT的MAC地址條目,添加到本 處理單元的晶片MAC地址表;
(b) 所述子交換處理單元將生成的所述MAC地址條目通知主控交換 處理單元,該主控交換處理單元再通知到其他子交換處理單元;
(c) 其他子處理單元分別判斷本處理單元是否有該MAC地址條目中 的VLAN的成員埠,如果有,將該MAC地址條目添加到本處理單元的芯 片MAC地址表,如果沒有,則不添加。
進一步地,上述方法還可具有以下特點所述步驟(b)中,主控交換 處理單元收到子交換處理單元的通知後,還將所述MAC地址條目添加到本 處理單元的軟體MAC表。
進一步地,上述方法還可具有以下特點所述步驟(c)中,其他子交 換處理單元無論是否在晶片MAC地址表添加所述MAC地址條目,均將該 MAC地址條目保存在本處理單元的軟體MAC地址表中。
進一步地,上述方法還可具有以下特點當某個VLAN的成員埠數 目變化時,主控處理單元將該VLAN成員埠的變化信息通知到各子交換 處理單元,各子處理單元得到通知後,如判斷該VLAN在本處理單元的成
員埠從無到有,則將該VLAN相關的所有MAC地址條目添加到本處理單 元的晶片MAC地址表中。
進一步地,上述方法還可具有以下特點當某個VLAN的成員埠數 目變化時,主控處理單元將該VLAN成員埠的變化信息通知到各子交換 處理單元,各子處理單元得到通知後,如判斷該VLAN在本處理單元的成 員埠從有到無,則將本處理單元的晶片MAC地址表中該VLAN相關的所 有MAC地址條目刪除。
進一步地,上述方法還可具有以下特點所述子交換處理單元是從本
或者,主控交換處理單元在通知各子交換處理單元所迷VLAN成員埠的 變化信息時,將其軟體MAC地址表中與所述VLAN相關的所有MAC地址 條目重新通知各子交換處理單元,所述子交換處理單元從中獲取所述VLAN 相關的所有MAC地址條目。
與現有技術相比較,本發明在向子交換處理單元添加MAC地址轉發條 目的時候,添加了對本交換處理單元內是否成員屬於MAC地址所在的 VLAN,如果沒有則先不寫入晶片MAC地址表,這樣做到了節省了 MAC 地址表的有限空間。由於該處理單元沒有該VLAN的成員,所以不會用到 該MAC地址條目來進行轉發,從而對整個乙太網交換機的二層轉發沒有任 何影響,同時能使整個乙太網交換機能夠學習更多的MAC地址,更加充分 利用了 MAC地址表的空間,使交換機的交換容量大大提高。
圖l是有主控交換處理單元和子交換處理單元的交換機結構示意圖。 圖2是子交換處理單元收到主控交換處理單元MAC地址添加流程圖。 圖3是子交換處理單元收到主控交換處理單元VLAN成員變化流程圖。
具體實施例方式
本發明的總的發明構思是根據分布式交換機VLAN (Virtual Local Area Network,虛擬區域網)成員在各個子交換處理單元上存在與否來添加子處 理單元的MAC地址表,以更加有效、充分的利用乙太網交換機有限的晶片 MAC地址表空間。
下面結合附圖對本發明按VLAN添加MAC地址的處理方法進行說明。
本實施例有效利用MAC地址表空間的方法包括以下幾個步驟
第一步,某個子交換處理單元學習到某個MAC地址以後,生成一MAC 地址條目,添加到本單元的MAC地址表,同時通知主控處理單元;
第二步,主控處理單元得到消息後通知其它子處理單元;
第三步,其它子處理單元在收到主控處理單元的通知後,根據該MAC 地址條目中的虛擬區域網VLAN來進行判斷,分為兩種情況
本處理單元有該VLAN的成員埠,即該處理單元有埠屬於該 VLAN,將該MAC地址條目添加到本處理單元的晶片MAC地址表。
本處理單元沒有該VLAN的成員埠 ,不將該MAC地址條目添加到本 處理單元的晶片MAC地址表中。
具體地,主控交換處理單元向其他子交換處理單元發出添加通知後,其 他子交換處理單元按圖2所示的處理流程進行以下步驟
步驟201:子處理單元收到主處理單元的MAC通知,請求添加表項 MAC+VLAN->PORT;
步驟202:該子處理單元判斷本處理單元是否有埠屬於這個VLAN, 如果有則執行步驟203,否則,不執行添加操作,直接執行步驟204;
步驟203:向晶片MAC地址表添加該MAC地址條目;
步驟204:該子處理單元將該MAC地址條目保存在本處理單元CPU的 軟體MAC地址表中。
另外,在某個VLAN的成員埠數目變化時,主控處理單元將該VLAN
成員埠的變化信息通知各子交換處理單元,子處理單元得到通知後根據該
VLAN成員在各個子交換處理單元上存在與否來添加或刪除該VLAN的 MAC地址表,以適應該變化。具體處理流程如圖3所示,包括以下步驟
步驟301:子交換處理單元收到主控交換處理單元VLAN成員埠數目 變化的通知;
步驟302:子交換處理單元判斷往該VLAN添加成員還是從該VLAN 刪除成員,如果添加成員則執行步驟303,如果是刪除成員則執行步驟306;
步驟303:該VLAN成員埠數加1;
步驟304:該子交換處理單元判斷本處理單元的埠在該VLAN中的端 口數是否為l,若為1則執行步驟305,否則結束;
步驟305:該子交換處理單元從CPU軟體MAC表中找出屬於該VLAN 的MAC地址條目添加到晶片表中,結束;
步驟306:該VLAN成員埠數減1;
步驟307:該子交換處理單元判斷本處理單元的埠在該VLAN中的端 口數是否為O,若為0則執行步驟308,否則結束;
步驟308:該子交換處理單元刪除晶片表中該VLAN的MAC地址條目。 下面用一個實例來加以il明。
如圖l所示,分布式乙太網交換機,有一個主控交換處理單元、四個子 交換處理單元,16個埠分布在四個子交換處理單元上。
如果某一時刻,子交換處理單元l的埠 1學習到了一個MAC地址, 地址為A,VLAN為2,那麼就會生成一個MAC地址條目MACA + VLAN 2—>埠 1,添加自己的晶片MAC地址表,同時通知主控交換處理單元這 個地址消息。
主控交換處理單元收到子交換處理單元1的學習到新的MAC地址消息 後,將其中的MAC地址條目添加到自己的軟體MAC表,同時通知其他子 交換處理單元添加該MAC地址條目。
對於子交換處理單元2來說,收到添加請求後,則判斷本處理單元的端 口 5、 6、 7、 8中是否有埠屬於VLAN2,如杲有,則向晶片添加該MAC 地址條目;如果埠5、 6、 7、 8均不在VLAN2中,則取消向晶片添加該 MAC地址,並將該MAC地址保存在本子處理單元CPU的軟體MAC地址表中。
當子交換處理單元2收到主控交換處理單元VLAN成員埠數目變化 的通知時
如果是某個VLAN如VLAN 2添加成員埠 ,如果原來VLAN 2在本 交換處理單元沒有成員埠,現在變成了有成員埠,則需要從CPU的軟 件MAC表中取出所有VLAN 2的MAC地址條目添加到晶片中;如果原來 VLAN2在本交換處理單元就已經存在成員埠 ,則不需要任何操作。
如果是某個VLAN如VLAN 2刪除成員埠 ,如果原來VLAN 2在本 交換處理單元有成員埠,現在刪除了成員埠後,如果VLAN2在本交換 處理單元的埠成員數目為0,則需要刪除本交換處理單元晶片MAC表中 所有VLAN 2的MAC地址條目;其他的情況則不需要任何操作。
綜上所述,乙太網交換機用來作轉發決定的MAC地址表存儲在內存中 的,這些內存集成在乙太網交換晶片之中,其空間大小是一定的。與現有技 術相比較,本發明在向子交換處理單元添加MAC地址轉發條目的時候,添 加了對本交換處理單元內是否成員屬於MAC地址所在的VLAN,如果沒有 則先不寫入MAC地址表,這樣做到了節省了 MAC地址表的有限空間。由 於該處理單元沒有該VLAN的成員,所以不會用到該MAC地址條目來進行 轉發,從而對整個乙太網交換機的二層轉發沒有任何影響,同時能使整個以 太網交換機能夠學習更多的MAC地址,更加充分利用了 MAC地址表的空 間,是交換機的交換容量大大提高。
本發明在上述本實施例的基礎上還可以有各種變換。例如,在某子處理 單元沒有MAC地址條目中的VLAN時,也可不再將該MAC地址條目保存 在本處理單元的軟體MAC地址表,在VLAN成員埠數目變化時,可以由 主控交換單元根據CPU的軟體MAC地址表重新將該VLAN相關的所有 MAC地址條目通知到各子處理單元。
權利要求
1、一種利用乙太網交換機媒體接入控制MAC地址表空間的方法,該交換機包括主控交換處理單元和若干子交換處理單元,該方法包括以下步驟(a)某個子交換處理單元學習到某個MAC地址,生成一包含該MAC地址對應的虛擬區域網VLAN和埠PORT的MAC地址條目,添加到本處理單元的晶片MAC地址表;(b)所述子交換處理單元將生成的所述MAC地址條目通知主控交換處理單元,該主控交換處理單元再通知到其他子交換處理單元;(c)其他子處理單元分別判斷本處理單元是否有該MAC地址條目中的VLAN的成員埠,如果有,將該MAC地址條目添加到本處理單元的晶片MAC地址表,如果沒有,則不添加。
2、 如權利要求l所述的方法,其特徵在於所述步驟(b)中,主控交 換處理單元收到子交換處理單元的通知後,還將所述MAC地址條目添加到 本處理單元的軟體MAC表。
3、 如權利要求1或2所述的方法,其特徵在於所述步驟(c)中,其 他子交換處理單元無論是否在晶片MAC地址表添加所述MAC地址條目, 均將該MAC地址條目保存在本處理單元的軟體MAC地址表中。
4、 如權利要求3所迷的方法,其特徵在於當某個VLAN的成員埠 數目變化時,主控處理單元將該VLAN成員埠的變化信息通知到各子交 換處理單元,各子處理單元得到通知後,如 判斷該VLAN在本處理單元的 成員埠從無到有,則將該VLAN相關的所有MAC地址條目添加到本處理 單元的晶片MAC地址表中。
5、 如權利要求1或4所述的方法,其特徵在於當某個VLAN的成員 埠數目變化時,主控處理單元將該VLAN成員埠的變化信息通知到各 子交換處理單元,各子處理單元得到通知後,如判斷該VLAN在本處理單 元的成員埠從有到無,則將本處理單元的晶片MAC地址表中該VLAN相 關的所有MAC地址條目刪除。
6、如權利要求4所述的方法,其特徵在於所述子交換處理單元是從目,或者,主控交換處理單元在通知各子交換處理單元所述VLAN成員端 口的變化信息時,將其軟體MAC地址表中與所述VLAN相關的所有MAC 地址條目重新通知各子交換處理單元,所述子交換處理單元從中獲取所述 VLAN相關的所有MAC地址條目。
全文摘要
一種利用乙太網交換機MAC地址表空間的方法,該交換機包括主控交換處理單元和若干子交換處理單元,該方法包括步驟某個子交換處理單元學習到某個MAC地址,生成一包含該MAC地址對應的虛擬區域網VLAN和埠PORT的MAC地址條目,添加到本處理單元的晶片MAC地址表;所述子交換處理單元將生成的所述MAC地址條目通知主控交換處理單元,該主控交換處理單元再通知到其他子交換處理單元;其他子處理單元分別判斷本處理單元是否有該MAC地址條目中的VLAN的成員埠,如果有,將該MAC地址條目添加到本處理單元的晶片MAC地址表,如果沒有,則不添加。本發明可以有效利用乙太網交換機的晶片MAC地址表空間。
文檔編號H04L29/06GK101110721SQ20061009942
公開日2008年1月23日 申請日期2006年7月18日 優先權日2006年7月18日
發明者楊自鵬 申請人:中興通訊股份有限公司