本發明涉及通信領域,具體而言,涉及一種媒體接入控制(Media Access Control,簡稱為MAC)地址的同步方法、裝置及系統。
背景技術:
堆疊是將多臺支持堆疊特性的交換機設備結合在一起,從邏輯上組合成一臺整體的交換設備,圖1是相關技術中的三臺交換機堆疊口連接形成一臺交換機的示意圖,如圖1所示,堆疊是一種虛擬化技術,在不改變網絡物理拓撲連接結構條件下,將網絡同一層的多臺設備虛擬化成單臺邏輯設備,達到簡化網絡結構,簡化網絡協議部署,提高網絡可靠性和可管理性的目的。
堆疊主要有以下優點:
1.高可靠性。堆疊系統多臺成員設備之間1:N冗余備份;堆疊支持跨設備的鏈路聚合功能,實現跨設備的鏈路冗余備份。
2.強大的網絡擴展能力。通過增加成員設備,可以輕松的擴展堆疊系統的端口數,帶寬和處理能力。
3.簡化網絡結構和協議部署。堆疊技術可以將復雜的網絡拓撲結構簡化為層次分明,互聯關系簡單的網絡結構,網絡各層之間通過鏈路聚合,自然消除環路,不需要再部署mstp,vrrp等協議。
4.簡化配置和管理,堆疊形成后,多臺物理設備虛擬成為一臺設備,用戶可以通過任何一臺成員設備登陸堆疊系統,對堆疊系統所有成員設備進行統一配置和管理。
堆疊所有的單臺設備都稱為成員設備,按照功能不同,可以分為三種角色:
1:主交換機,即Master,負責管理整個堆疊系統,堆疊系統中只有一臺主交換機。
2:備交換機,即Standby,是主交換機的備份交換機,當主交換機故障時,備交換機會接替主交換機的所有業務,堆疊系統中只有一臺備交換機。
3:從交換機,即Slave,除了主交換機外,堆疊中所有交換機都是從交換機,其中備交換機同時承擔備份交換機和從交換機兩種角色。
堆疊ID,即成員編號(Member ID),用來識別和管理成員設備,堆疊系統中所有成員設備的堆疊ID都是唯一的。
堆疊優先級是成員設備的一個屬性,主要用于角色選舉過程中確定成員設備的角色,優先級越大表示優先級越高,當選為主交換機的可能性越大。
圖2是相關技術中堆疊連接拓撲示意圖,如圖2所示,堆疊的連接拓撲有兩種:
鏈形連接:使用堆疊電纜將一臺設備的左口(右口)和另一臺設備的右口(左口)連接起來,以此類推,第一臺設備的右口(左口)和最后一臺設備的左口(右口)沒有連接堆疊電纜。
環形連接:將鏈形連接第一臺設備的右口(左口)和最后一臺設備的左口(右口)連接起來。
堆疊系統內各交換機設備相關技術中的MAC地址同步方法如下:
1:堆疊內某設備(可以是主設備,備設備,成員設備)的交換芯片的MAC地址發生變化(學習到新MAC地址,或者老的MAC地址老化了),交換芯片通過發送消息給本地中央處理器CPU通知MAC地址變化。(或者CPU定期輪詢本地交換芯片的地址表,然后和軟件表進行對比,獲得MAC地址變化信息。)本地CPU通過發送地址更新消息給主設備(主設備再通知堆疊內其它設備)或者直接發送消息給堆疊系統內的其它設備通知MAC地址變化。
2:堆疊系統內設備收到其它設備CPU發送來的地址變化消息,進行地址變更。從而達到系統內各設備MAC地址的同步。
如果MAC地址變化很快,那么相關技術中的MAC地址同步方法存在如下缺陷:本地CPU會需要發送大量的消息給系統內的其它設備的CPU,MAC地址變更會導致CPU很忙,MAC地址系統內同步時間很長。
針對相關技術中堆疊系統內MAC地址同步較慢、CPU負擔較大的問題,目前尚未提出有效的解決方案。
技術實現要素:
本發明提供了一種MAC地址的同步方法、裝置及系統,以至少解決相關技術中堆疊系統內MAC地址同步較慢、CPU負擔較大的問題。
根據本發明的一個實施例,提供了一種MAC地址的同步方法,包括:第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表。
在本發明實施例中,該方法還包括:在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息之后,第一設備將MAC地址變更消息發送至第一設備的中央處理器CPU。
在本發明實施例中,第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表包括:第一設備的CPU根據MAC地址變更消息更新本地交換芯片的MAC地址表。
在本發明實施例中,MAC地址變更消息攜帶有特定標識,特定標識用于識別MAC地址變更消息。
在本發明實施例中,包括:特定標識是在MAC地址變更消息的報文頭前的控制頭中設置的更新標志位。
根據本發明的另一實施例,提供了一種MAC地址的同步裝置,應用于堆疊系統的第一設備,包括:接收模塊,用于接收本地交換芯片發送的MAC地址變更消息或者在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;更新模塊,用于根據MAC地址變更消息更新本地交換芯片的MAC地址表。
在本發明實施例中,該裝置還包括:發送模塊,用于在在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息之后,將MAC地址變更消息發送至第一設備的中央處理器CPU。
在本發明實施例中,MAC地址變更消息攜帶有特定標識,特定標識用于識別MAC地址變更消息。
在本發明實施例中,特定標識是在MAC地址變更消息的報文頭前的控制頭中設置的更新標志位。
根據本發明的另一實施例,提供了一種MAC地址的同步系統,包括:第一設備,第二設備,其中,第一設備包括第一堆疊口、交換芯片和中央處理器CPU;第二設備包括第二堆疊口、交換芯片和CPU;第一設備中的交換芯片在第一設備的MAC地址發生變化的情況下,向第一設備的CPU和第二設備的第二堆疊口發送MAC地址變更消息;第二設備的第二堆疊口在接收到MAC地址變更消息后,將MAC地址變更消息上傳至第二設備的CPU;第二設備的CPU根據MAC地址變更消息更新第二設備的交換芯片的MAC地址表。
通過本發明實施例,采用第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表,即第一設備通過堆疊口來傳遞MAC地址變更消息,而不需要兩個設備之間的CPU交互來實現MAC地址變更消息的傳遞,節省了CPU的資源,解決了相關技術中的堆疊系統內MAC地址同步較慢、CPU負擔較大的問題,提高了MAC地址同步的速率。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是相關技術中的三臺交換機堆疊口連接形成一臺交換機的示意圖;
圖2是相關技術中的堆疊連接拓撲示意圖;
圖3是根據本發明實施例的MAC地址的同步的流程圖一;
圖4是根據本發明實施例的MAC地址的同步的流程圖二;
圖5是根據本發明實施例的MAC地址的同步裝置的結構框圖一;
圖6是根據本發明實施例的MAC地址的同步裝置的結構框圖二;
圖7是根據本發明實施例的MAC地址的同步系統的結構框圖;
圖8是根據本發明優選實施例的MAC地址的同步方法的流程圖。
具體實施方式
下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。
在本實施例中提供了一種MAC地址的同步方法,圖3是根據本發明實施例的MAC地址的同步的流程圖一,如圖3所示,該流程包括如下步驟:
步驟S302,第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;
步驟S304,第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表。
通過上述步驟,采用第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表,即第一設備通過堆疊口來傳遞MAC地址變更消息,而不需要兩個設備之間的CPU交互來實現MAC地址變更消息的傳遞,節省了CPU的資源,解決了相關技術中的堆疊系統內MAC地址同步較慢、CPU負擔較大的問題,提高了MAC地址同步的速率。
圖4是根據本發明實施例的MAC地址的同步的流程圖二,如圖4所示,上述方法還包括:步驟S402,在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息之后,第一設備將MAC地址變更消息發送至第一設備的中央 處理器CPU。
需要說明的是,第一設備將MAC地址變更消息發送至第一設備的中央處理器CPU的方式可以有多種,比如,可以通過設置訪問控制列表(Access Control List,簡稱ACL)的方式復制一份MAC地址變更消息,再將復制的MAC地址變更消息上傳給第一設備的中央處理器CPU,也可以通過其他方式直接把MAC地址變更消息上傳給第一設備的中央處理器CPU,但不限于此。
在本發明實施例中,第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表包括:第一設備的CPU根據MAC地址變更消息更新本地交換芯片的MAC地址表。
上述方法通過第一設備通過堆疊口獲取到MAC地址變更消息之后,在將MAC地址變更消息發送給第一設備的CPU,CPU用來更新MAC地址表,而不會參與MAC地址變更消息的傳遞,進而節省了CPU的資源,加快了MAC地址更新的速率。
在本發明實施例中,MAC地址變更消息攜帶有特定標識,特定標識用于識別MAC地址變更消息。
在本發明實施例中,包括:特定標識是在MAC地址變更消息的報文頭前的控制頭中設置的更新標志位。
通過上述特定標識,堆疊口可以根據該更新標志位來識別該MAC地址變更消息,進而能夠確定是否收到了該MAC地址變更消息。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
在本實施例中還提供了一種MAC地址的同步裝置,該裝置用于實現上述實施例及優選實施方式,已經進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現,但是硬件,或者軟件和硬件的組合的實現也是可能并被構想的。
圖5是根據本發明實施例的MAC地址的同步裝置的結構框圖一,如圖5所示,該裝置應用于堆疊系統的第一設備,包括:
接收模塊52,用于接收本地交換芯片發送的MAC地址變更消息或者在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;
更新模塊54,用于根據MAC地址變更消息更新本地交換芯片的MAC地址表。
通過上述裝置,采用第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表,即第一設備通過堆疊口來傳遞MAC地址變更消息,而不需要兩個設備之間的CPU交互來實現MAC地址變更消息的傳遞,節省了CPU的資源,解決了相關技術中的堆疊系統內MAC地址同步較慢、CPU負擔較大的問題,提高了MAC地址同步的速率。
圖6是根據本發明實施例的MAC地址的同步裝置的結構框圖二,如圖6所示,該裝置除包括圖5所示的所有模塊外還包括:發送模塊62,用于在在第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息之后,將MAC地址變更消息發送至第一設備的中央處理器CPU。
需要說明的是,第一設備將MAC地址變更消息發送至第一設備的中央處理器CPU的方式可以有多種,比如,可以通過設置訪問控制列表(Access Control List,簡稱ACL)的方式復制一份MAC地址變更消息,再將復制的MAC地址變更消息上傳給第一設備的中央處理器CPU,也可以通過其他方式直接把MAC地址變更消息上傳給第一設備的中央處理器CPU,但不限于此。
在本發明實施例中,MAC地址變更消息攜帶有特定標識,特定標識用于識別MAC地址變更消息。
在本發明實施例中,特定標識是在MAC地址變更消息的報文頭前的控制頭中設置的更新標志位。
通過上述特定標識,堆疊口可以根據該更新標志位來識別該MAC地址變更消息,進而能夠確定是否收到了該MAC地址變更消息。
需要說明的是,上述各個模塊是可以通過軟件或硬件來實現的,對于后者,可以通過以下方式實現,但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。
本發明的實施例還提供了一種MAC地址的同步系統,圖7是根據本發明實施例的MAC地址的同步系統的結構框圖,如圖7所示,該系統包括:第一設備,第二設備,其中,第一設備包括第一堆疊口、交換芯片和中央處理器CPU;第二設備包括第二堆疊口、交換芯片和CPU;第一設備中的交換芯片在第一設備的MAC地址發生變化的情況下,向第一設備的CPU和第二設備的第二堆疊口發送MAC地址變更消息;第二設備的第二堆疊口在接收到MAC地址變更消息后,將MAC地址變更消息上傳至第二設備的CPU;第二設備的CPU根據MAC地址變更消息更新第二設備的交換芯片的MAC地址表。
通過該系統,采用第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表,即第一設備通過堆疊口來傳遞MAC地址變更消息,而不需要兩個設備之間的CPU交互來實現MAC地址變更消息的傳遞,節省了CPU的資源,解決了相關技術中的堆疊系統內MAC地址同步較慢、CPU負擔較大的問題,提高了MAC地址同步的速率。
以下結合具體的實施例對本發明做進一步的解釋:
本發明提供了一種優選的實施例,該實施例包:本發明采用以下技術方案,堆疊內任意一臺設備的MAC地址發生變化后,交換芯片(不是CPU,主流芯片有broadcom,marvell交換芯片)觸發MAC地址變更消息發送,同時發送給本地CPU和所有堆疊口(最多2個堆疊口)。消息到達其它設備的堆疊口后,其它設備設置消息復制一份上CPU同時消息繼續沿著其它堆疊口去往遠端設備。
這樣鏈形或者環形堆疊系統內的設備都會收到地址變化的消息。各臺設備自己處理由交換芯片發出的MAC地址變更消息,完成MAC地址變更。各設備CPU之間不需要發送任何的消息。這樣可以實現堆疊系統內MAC地址的快速同步。同時節省了CPU資源。
利用本發明實現堆疊系統內一種MAC地址同步的方法的方法具體實施包括以下步驟:
步驟A.環形或者鏈形堆疊系統內任意一臺設備的MAC地址發生變更。這臺設備的交換芯片觸發消息發送,同時發送給本設備的cpu和本設備的堆疊口;
步驟B.各設備在堆疊口收到MAC地址變更消息,拷貝一份上送本地CPU,同時讓MAC地址變更消息從另外可能存在的堆疊口發出去往遠端設備;
步驟B.各設備處理本地交換芯片發來的或者堆疊口發來的MAC地址變更消息,完成MAC地址變更;實現MAC地址堆疊系統內快速同步。
與相關技術相比較,本發明優選實施例引入堆疊系統內一種MAC地址快速同步的方法和系統,解決了目前堆疊系統內MAC地址同步較慢的問題,同時可以節省大量的cpu負擔。提高堆疊系統的整體性能。
本發明還提供了另一種優選的MAC地址同步的方法,圖8是根據本發明優選實施例的MAC地址的同步方法的流程圖,如圖8所示,4臺設備通過堆疊口兩兩連接為鏈形拓撲的堆疊系統,假設從設備2有MAC地址變更,那么具體實現如下:
1:從設備2的交換芯片發生了MAC地址變更,立刻自動觸發MAC變更消息,發往設備2的cpu,同時往兩個堆疊口發送。消息需要特殊標志,便于其它設備識別。一般堆疊口都會在報文頭前面加上控制頭(主流芯片廠商都如此),可以在控制頭中加入 MAC更新的標志flag。
2:從設備1由于只有一個堆疊口,在堆疊口根據控制頭中的MAC更新標志flag確定收到MAC地址更新消息,通過設置ACL或者其它方式直接把MAC地址更新消息上送設備1的cpu處理。
3:備設備在右側的堆疊口根據報文控制頭中的MAC更新標志flag確定收到MAC地址更新消息收到MAC地址變更消息,通過設置ACL或者其它方式把MAC地址變更消息拷貝一份上送備設備的cpu,同時轉發到左側的堆疊口。
4:主設備在堆疊口根據報文控制頭中的MAC更新標志flag確定收到MAC地址變更消息,由于只有一個堆疊口,通過設置ACL或者其它方式直接把MAC地址變更消息上送主設備的cpu處理。
5:主設備,備設備,從設備1,2的cpu分別處理MAC地址變更消息,同時主設備,備設備,從設備1的cpu更新本地交換芯片的地址表,實現MAC地址堆疊系統內同步。
本發明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以被設置為存儲用于執行以下步驟的程序代碼:
S1,第一設備的第一堆疊口接收堆疊系統中的第二設備的堆疊口發送的MAC地址變更消息;
S2,第一設備根據MAC地址變更消息更新本地交換芯片的MAC地址表。
可選地,在本實施例中,上述存儲介質可以包括但不限于:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。
顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,并且在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。