華為裝置堆疊原理
虛擬化技術:
通過虛擬化技術,將園區組網從(STP+VRRP+Eth-Trunk+BFD+路由協議)變成了(CSS + Eth-Trunk + iStack)模式:
iSatck:
智慧堆疊iStack (Intelligent Stack),是指將多臺支援堆疊特性的交換機裝置組合在一起,從邏輯上組合成一臺交換裝置。如圖所示,SwitchA與SwitchB通過堆疊線纜連線後組成堆疊系統,對於上游和下游裝置來說,它們就相當於一臺交換機Switch。
優勢:
1.通過交換機堆疊,可以實現網路高可靠性和網路大資料量轉發,同時簡化網路管理。
2.高可靠性。堆疊系統多臺成員交換機之間冗餘備份;堆疊支援跨裝置的鏈路聚合功能,實現跨裝置的鏈路冗餘備份。
3.強大的網路擴充套件能力。通過增加成員交換機,可以輕鬆的擴充套件堆疊系統的埠數、頻寬和處理能力;同時支援成員交換機熱插拔,新加入的成員交換機自動同步主交換機的配置檔案和系統軟體版本。
4.簡化配置和管理。一方面,使用者可以通過任何一臺成員交換機登入堆疊系統,對堆疊系統所有成員交換機進行統一配置和管理;另一方面,堆疊形成後,不需要配置複雜的二層破環協議和三層保護倒換協議,簡化了網路配置。
基本概念:
堆疊中所有的單臺交換機都稱為成員交換機,按照功能不同,可以分為三種角色:
1.主交換機(Master):負責管理整個堆疊。堆疊中只有一臺主交換機。
2.備交換機(Standby):是主交換機的備份交換機。當主交換機故障時,備交換機會接替原主交換機的所有業務。堆疊中只有一臺備交換機。
3.從交換機(Slave):主要用於業務轉發,從交換機數量越多,堆疊系統的轉發能力越強。除主交換機和備交換機外,堆疊中其他所有的成員交換機都是從交換機。
堆疊ID:即成員交換機的槽位號(Slot ID),用來標識和管理成員交換機,堆疊中所有成員交換機的堆疊ID都是唯一的。
堆疊優先順序:堆疊優先順序是成員交換機的一個屬性,主要用於角色選舉過程中確定成員交換機的角色,優先順序值越大表示優先順序越高,優先順序越高當選為主交換機的可能性越大。
堆疊建立過程:
“系統自動完成堆疊”實際上可以細分為三步:
- 主交換機選舉
① 執行狀態比較,已經執行的交換機比處於啟動狀態的交換機優先競爭為主交換機。
② 堆疊優先順序高的交換機優先競爭為主交換機。
③ 堆疊優先順序相同時,MAC地址小的交換機優先競爭為主交換機。 - 拓撲收集和備交換機選舉
- 主交換機選舉完成後,主交換機會收集所有成員交換機的拓撲資訊,根據拓撲資訊計算出堆疊轉發表項和破環點資訊下發給堆疊中的所有成員交換機,並向所有成員交換機分配堆疊ID。之後進行備交換機的選舉,作為主交換機的備份交換機。當除主交換機外其它交換機同時完成啟動時:
① 堆疊優先順序最高的裝置成為備交換機。
② 堆疊優先順序相同時,MAC地址最小的成為備交換機。 - 穩定執行
角色選舉、拓撲收集完成之後,剩下的其他成員交換機作為從交換機加入堆疊,所有成員交換機會自動同步主交換機的系統軟體和配置檔案:
- 堆疊具有自動載入系統軟體的功能,待組成堆疊的成員交換機不需要具有相同軟體版本,只需要版本間相容即可。當備交換機或從交換機與主交換機的軟體版本不一致時,備交換機或從交換機會自動從主交換機下載系統軟體,然後使用新系統軟體重啟,並重新加入堆疊。
- 堆疊具有配置檔案同步機制,備交換機或從交換機會將主交換機的配置檔案同步到本裝置並執行,以保證堆疊中的多臺裝置能夠像一臺裝置一樣在網路中工作,並且在主交換機出現故障之後,其餘交換機仍能夠正常執行各項功能。
堆疊連線方式:
交換機組建堆疊根據堆疊口的不同,可以分為兩種方式:堆疊卡堆疊和業務口堆疊。
堆疊卡堆疊又分為以下兩種情況:
- 交換機之間通過專用的堆疊插卡及專用的堆疊線纜連線。
- 堆疊卡整合到了交換機後皮膚上,交換機通過整合的堆疊埠及專用的堆疊線纜連線。
業務口堆疊指的是交換機之間通過與邏輯堆疊埠繫結的物理成員埠相連,不需要專用的堆疊插卡。如圖所示:
堆疊的操作:
① 成員加入
堆疊成員加入是指向已經穩定執行的堆疊系統新增一臺新的交換機。使能堆疊並配置好SWD的堆疊引數。
- 如果是業務口堆疊,新加入的交換機需要配置物理成員埠加入邏輯堆疊埠;並且鍊形連線時,當前堆疊系統鍊形兩端(或一端)的成員交換機也需要配置物理成員埠加入邏輯堆疊口。
- 如果是堆疊卡堆疊,新加入的成員交換機需要使能堆疊功能。
- 為了便於管理,建議為新加入的交換機配置堆疊ID。如果不配置,堆疊系統會為其分配一個堆疊ID。
將SWD連線到堆疊系統
- 如果是鍊形連線,新加入的交換機建議新增到鍊形的兩端,這樣對現有的業務影響最小。
- 如果是環形連線,需要把當前環形拆成鍊形,然後在鍊形的兩端新增裝置。
系統完成堆疊
- 新加入的交換機連線上電啟動後,進行角色選舉,新加入的交換機會選舉為從交換機,堆疊系統中原有主備從角色不變。
- 角色選舉結束後,主交換機更新堆疊拓撲資訊,同步到其他成員交換機上,並向新加入的交換機分配堆疊ID(新加入的交換機沒有配置堆疊ID或配置的堆疊ID與原堆疊系統的衝突時)。
- 新加入的交換機更新堆疊ID,並同步主交換機的配置檔案和系統軟體,之後進入穩定執行狀態。
② 堆疊合並
堆疊合並是指穩定執行的兩個堆疊系統合併成一個新的堆疊系統。如圖所示,兩個堆疊系統的主交換機SWA和SWD通過競爭,選舉出一個更優的作為新堆疊系統的主交換機。競爭成功的主交換機SWA所在的堆疊系統將保持原有主備從角色和配置不變,業務也不會受到影響;而另外一個堆疊系統的所有成員交換機SWD和SWE將重新啟動,以從交換機的角色加入到新堆疊系統,其堆疊ID將由新主交換機重新分配,並將同步新主交換機的配置檔案和系統軟體,該堆疊系統的原有業務也將中斷。
堆疊合並通常在以下兩種情形下出現:
- 堆疊鏈路或裝置故障導致堆疊分裂,鏈路或裝置故障恢復後,分裂的堆疊系統重新合併。
- 待加入堆疊系統的交換機配置了堆疊功能,在不下電的情況下,使用堆疊線纜連線到正在執行的堆疊系統。通常情況下,不建議使用該方式形成堆疊,因為在合併前過程中可能會導致正在執行的堆疊系統重啟,影響業務執行。
③ 堆疊成員退出
堆疊成員退出是指成員交換機從堆疊系統中離開。根據退出成員交換機角色的不同,對堆疊系統的影響也有所不同:
- 當主交換機退出,備份交換機升級為主交換機,重新計算堆疊拓撲並同步到其他成員交換機,指定新的備交換機,之後進入穩定執行狀態。
- 當備交換機退出,主交換機重新指定備交換機,重新計算堆疊拓撲並同步到其他成員交換機,之後進入穩定執行狀態。
- 當從交換機退出,主交換機重新計算堆疊拓撲並同步到其他成員交換機,之後進入穩定執行狀態。
堆疊成員交換機退出的過程,主要就是拆除堆疊線纜和移除交換機的過程:
- 對於環形堆疊:成員交換機退出後,為保證網路的可靠性還需要把退出交換機連線的兩個埠通過堆疊線纜進行連線。
- 對於鍊形堆疊:拆除中間交換機會造成堆疊分裂。這時需要在拆除前進行業務分析,儘量減少對業務的影響。
④ 堆疊分裂
堆疊分裂是指穩定執行的堆疊系統中帶電移出部分成員交換機,或者堆疊線纜多點故障導致一個堆疊系統變成多個堆疊系統。根據原堆疊系統主備交換機分裂後所處位置的不同,堆疊分裂可分為以下兩類:
- 堆疊分裂後,原主備交換機被分裂到同一個堆疊系統中:原主交換機會重新計算堆疊拓撲,將移出的成員交換機的拓撲資訊刪除,並將新的拓撲資訊同步給其他成員交換機;而移出的成員交換機檢測到堆疊協議報文超時,將自行復位,重新進行選舉。
- 堆疊分裂後,原主備交換機被分裂到不同的堆疊系統中:原主交換機所在堆疊系統重新指定備交換機,重新計算拓撲資訊並同步給其他成員交換機;原備交換機所在堆疊系統將發生備升主,原備交換機升級為主交換機,重新計算堆疊拓撲並同步到其他成員交換機,並指定新的備交換機。
多主檢查:
① 直連檢查方式
由於堆疊系統中所有成員交換機都使用同一個IP地址和MAC地址(堆疊系統MAC),一個堆疊分裂後,可能產生多個具有相同IP地址和MAC地址的堆疊系統。為防止堆疊分裂後,產生多個具有相同IP地址和MAC地址的堆疊系統,引起網路故障,必須進行IP地址和MAC地址的衝突檢查。多主檢測MAD(Multi-Active Detection),是一種檢測和處理堆疊分裂的協議。鏈路故障導致堆疊系統分裂後,MAD可以實現堆疊分裂的檢測、衝突處理和故障恢復,降低堆疊分裂對業務的影響。
MAD檢測方式有兩種:直連檢測方式和代理檢測方式。在同一個堆疊系統中,兩種檢測方式互斥,不可以同時配置。
直連檢測方式是指堆疊成員交換機間通過普通線纜直連的專用鏈路進行多主檢測。在直連檢測方式中,堆疊系統正常執行時,不傳送MAD報文;堆疊系統分裂後,分裂後的兩臺交換機以1s為週期通過檢測鏈路傳送MAD報文以進行多主衝突處理。
通過中間裝置直連:堆疊系統的所有成員交換機之間至少有一條檢測鏈路與中間裝置相連。
Full-mesh方式直連:堆疊系統的各成員交換機之間通過檢測鏈路建立Full-mesh全連線,即每兩臺成員交換機之間至少有一條檢測鏈路。
通過中間裝置直連可以實現通過中間裝置縮短堆疊成員交換機之間的檢測鏈路長度,適用於成員交換機相距較遠的場景。與通過中間裝置直連相比,Full-mesh方式直連可以避免由中間裝置故障導致的MAD檢測失敗,但是每兩臺成員交換機之間都建立全連線會佔用較多的介面,所以該方式適用於成員交換機數目較少的場景。
② 代理檢查方式
代理檢測方式是在堆疊系統Eth-Trunk上啟用代理檢測,在代理裝置上啟用MAD檢測功能。此種檢測方式要求堆疊系統中的所有成員交換機都與代理裝置連線,並將這些鏈路加入同一個Eth-Trunk內。與直連檢測方式相比,代理檢測方式無需佔用額外的介面,Eth-Trunk介面可同時執行MAD代理檢測和其他業務。
在代理檢測方式中,堆疊系統正常執行時,堆疊成員交換機以30s為週期通過檢測鏈路傳送MAD報文。堆疊成員交換機對在正常工作狀態下收到的MAD報文不做任何處理;堆疊分裂後,分裂後的兩臺交換機以1s為週期通過檢測鏈路傳送MAD報文以進行多主衝突處理。
MAD衝突處理:
堆疊分裂後,MAD衝突處理機制會使分裂後的堆疊系統處於Detect狀態或Recovery狀態。Detect狀態表示堆疊正常工作狀態,Recovery狀態表示堆疊禁用狀態。
MAD衝突處理機制如下:MAD分裂檢測機制會檢測到網路中存在多個處於Detect狀態的堆疊系統,這些堆疊系統之間相互競爭,競爭成功的堆疊系統保持Detect狀態,競爭失敗的堆疊系統會轉入Recovery狀態;並且在Recovery狀態堆疊系統的所有成員交換機上,關閉除保留埠以外的其它所有物理埠,以保證該堆疊系統不再轉發業務報文。
MAD故障恢復:
通過修復故障鏈路,分裂後的堆疊系統重新合併為一個堆疊系統。重新合併的方式有以下兩種:
- 堆疊鏈路修復後,處於Recovery狀態的堆疊系統重新啟動,與Detect狀態的堆疊系統合併,同時將被關閉的業務埠恢復Up,整個堆疊系統恢復。
- 如果故障鏈路修復前,承載業務的Detect狀態的堆疊系統也出現了故障。此時,可以先將Detect狀態的堆疊系統從網路中移除,再通過命令列啟用Recovery狀態的堆疊系統,接替原來的業務,然後再修復原Detect狀態堆疊系統的故障及鏈路故障。故障修復後,重新合併堆疊系統。
CSS:
CSS與iStack的區別在於,一般框式交換機堆疊稱為CSS,盒式交換機堆疊稱為iStack,都可以稱為堆疊。兩者只是叫法和實現有些差異,但是功能是一樣的。
通過交換機叢集,可以實現網路高可靠性和網路大資料量轉發,同時簡化網路管理。
- 高可靠性:叢集系統兩臺成員交換機之間冗餘備份,同時利用鏈路聚合功能實現跨裝置的鏈路冗餘備份。
- 強大的網路擴充套件能力:通過組建叢集增加交換機,從而輕鬆的擴充套件埠數、頻寬和處理能力。
- 簡化配置和管理:叢集建立後,兩臺物理裝置虛擬成為一臺裝置,使用者只需登入一臺成員交換機即可對叢集系統所有成員交換機進行統一配置和管理。
基本概念:
主交換機:負責管理整個叢集。叢集中只有一臺主交換機。
備交換機:主交換機的備份交換機。當主交換機故障時,備交換機會接替原主交換機的所有業務。叢集中只有一臺備交換機。
叢集ID:即CSS ID,用來標識和管理成員交換機。叢集中成員交換機的叢集ID是唯一的。
叢集優先順序:
- 即Priority,是成員交換機的一個屬性,主要用於角色選舉過程中確定成員交換機的角色,優先順序值越大表示優先順序越高,優先順序越高當選為主交換機的可能性越大。
- 不同於iStack可以多臺裝置堆疊,對於CSS叢集,叢集中只能有一主一備兩臺交換機。
CSS叢集建立過程:
叢集建立時,成員交換機間相互傳送叢集競爭報文,通過競爭,一臺成為主交換機,負責管理整個叢集系統,另一臺則成為備交換機。
角色選舉
- 最先完成啟動,並進入單框叢集執行狀態的交換機成為主交換機。
- 當兩臺交換機同時啟動時,叢集優先順序高的交換機成為主交換機。
- 當兩臺交換機同時啟動,且叢集優先順序又相同時,MAC地址小的交換機成為主交換機。
- 當兩臺交換機同時啟動,且叢集優先順序和MAC都相同時,叢集ID小的交換機成為主交換機。
版本同步:叢集具有自動載入系統軟體的功能,待組成叢集的成員交換機不需要具有相同的軟體版本,只需要版本間相容即可。當主交換機選舉結束後,如果備交換機與主交換機的軟體版本號不一致時,備交換機會自動從主交換機下載系統軟體,然後使用新的系統軟體重啟,並重新加入叢集。
配置同步:叢集具有嚴格的配置檔案同步機制,來保證叢集中的多臺交換機能夠像一臺裝置一樣在網路中工作。
配置備份:交換機從非叢集狀態進入叢集狀態後,會自動將原有的非叢集狀態下的配置檔案加上.bak的副檔名進行備份,以便去使能叢集功能後,恢復原有配置。例如,原配置副檔名為.cfg,則備份配置副檔名為.cfg.bak。去使能交換機叢集功能時,使用者如果希望恢復交換機的原有配置,可以更改備份配置檔名並指定其為下一次啟動的配置檔案,然後重新啟動交換機,恢復原有配置。
CSS叢集連線方式:
叢集的操作:
① 叢集成員加入與合併
使能了叢集功能的單臺交換機即為單框叢集。
叢集成員加入是指向穩定執行的單框叢集系統中新增一臺新的交換機。如圖1所示,新交換機SwitchB將加入單框叢集系統從而形成新的叢集系統。原單框叢集的交換機成為主交換機,新加入的交換機成為備交換機。
叢集加入通常在以下兩種情形下出現:
- 在建立叢集時,先將一臺交換機使能叢集功能後重啟,重啟後這臺交換機將進入單框叢集狀態。然後再使能另外一臺交換機的叢集功能後重啟,則後啟動的交換機則按照叢集成員加入的流程加入叢集系統,成為備交換機。
- 在穩定執行的兩框叢集場景中,將其中一臺交換機重啟,則這臺交換機將以叢集成員加入的流程重新加入叢集系統,併成為備交換機。
叢集合併是指穩定執行的兩個單框叢集系統合併成一個新的叢集系統。如圖2所示,兩個單框叢集系統將自動選出一個更優的作為合併後叢集系統的主交換機。被選為主交換機的配置不變,業務也不會受到影響,框內的備用主控板將重啟。而備交換機將整框重啟,以叢集備的角色加入新的叢集系統,並將同步主交換機的配置,該交換機原有的業務也將中斷。
叢集合併通常在以下兩種情形下出現:
- 將兩臺交換機分別使能叢集功能後重啟(重啟後的兩臺交換機都屬於單框叢集),再使用叢集線纜將兩臺交換機連線,之後會進入叢集合併流程。
- 叢集鏈路或裝置故障導致叢集分裂。故障恢復後,分裂後的兩個單框叢集系統重新合併。
② 叢集分裂:
多組檢測:
由於叢集系統中所有成員交換機都使用同一個IP地址和MAC地址(叢集系統MAC),一個叢集分裂後,由於這些成員交換機執行著相同的配置檔案(即原叢集系統的配置檔案),就會產生兩個具有相同IP地址和MAC地址的叢集系統。為防止叢集分裂後,產生兩個具有相同IP地址和MAC地址的叢集系統,引起網路故障,必須進行IP地址和MAC地址的衝突檢查。
多主檢測MAD(Multi-Active Detection),是一種檢測和處理叢集分裂的協議。鏈路故障導致叢集系統分裂後,MAD可以實現叢集分裂的檢測、衝突處理和故障恢復,降低叢集分裂對業務的影響。
MAD檢測方式有兩種:直連檢測方式和代理檢測方式。在同一個叢集系統中,兩種檢測方式互斥,不可以同時配置。
① 直連檢測方式
直連檢測方式是指叢集成員交換機間通過普通線纜直連的專用鏈路進行多主檢測。在直連檢測方式中,叢集系統正常執行時,不傳送MAD報文;叢集系統分裂後,分裂後的兩臺交換機週期性地通過檢測鏈路傳送MAD報文以進行多主衝突處理。
直連檢測的連線方式包括通過中間裝置直連和叢集成員交換機直接直連:
- 通過中間裝置直連:叢集系統的成員交換機之間至少有一條檢測鏈路與中間裝置相連。此種方式適用於成員交換機相距較遠的場景。
- 直接直連:叢集成員交換機直接直連可以避免由中間裝置故障導致MAD檢測失敗。
② 代理檢查方式
代理檢測方式是在叢集系統Eth-Trunk上啟用代理檢測,在代理裝置上啟用MAD檢測功能。此種檢測方式要求叢集系統中的所有成員交換機都與代理裝置連線,並將這些鏈路加入同一個Eth-Trunk內。與直連檢測方式相比,代理檢測方式無需佔用額外的介面,Eth-Trunk介面可同時執行MAD代理檢測和其他業務。
在代理檢測方式中,叢集系統正常執行時,叢集成員交換機以30s為週期通過檢測鏈路傳送MAD報文。叢集成員交換機對在正常工作狀態下收到的MAD報文不做任何處理;叢集分裂後,分裂後的兩臺交換機週期性地通過檢測鏈路傳送MAD報文以進行多主衝突處理。
MAD衝突處理
- 叢集分裂後,MAD衝突處理機制會使分裂後的單框叢集系統處於Detect狀態或Recovery狀態。Detect狀態表示叢集正常工作狀態,Recovery狀態表示叢集禁用狀態。
- MAD衝突處理機制如下:MAD分裂檢測機制會檢測到網路中存在兩個處於Detect狀態的叢集系統即兩臺交換機,此時會進行叢集優先順序比較(優先順序相同比較MAC地址,MAC地址相同則比較叢集ID),優先順序高的交換機將成為主交換機繼續正常工作,另一臺交換機會轉入Recovery狀態;並且在Recovery狀態的交換機上,關閉除保留埠以外的其它所有物理埠,以保證該交換機不再轉發業務報文。
MAD故障恢復
通過修復故障鏈路,分裂後的叢集系統重新合併為一個叢集系統。重新合併的方式有以下兩種:
- 叢集鏈路修復後,處於Recovery狀態的叢集系統重新啟動,與Detect狀態的叢集系統合並,同時將被關閉的業務埠恢復Up,整個叢集系統恢復。
- 如果故障鏈路修復前,承載業務的Detect狀態的叢集系統也出現了故障。此時,可以先將Detect狀態的叢集系統從網路中移除,再通過命令列啟用Recovery狀態的叢集系統,接替原來的業務,然後再修復原Detect狀態叢集系統的故障。故障修復後,重新合併叢集系統。
整理資料來源:華為培訓資料
相關文章
- 堆疊的工作原理
- JS 堆疊JS
- java堆疊Java
- 堆疊圖
- 平衡堆疊
- JavaScript的工作原理:引擎,執行時和呼叫堆疊JavaScript
- (8)jvm堆疊底層原理,伺服器啟動JVM伺服器
- 圖的深度優先遍歷[非堆疊、堆疊實現]
- JavaScript 工作原理之一-引擎,執行時,呼叫堆疊(譯)JavaScript
- 記憶體堆疊記憶體
- C#堆疊(Stack)C#
- C#中堆和堆疊的區別C#
- 裝置原理與操作
- [golang]如何看懂呼叫堆疊Golang
- Thrift的網路堆疊
- C++堆疊詳解C++
- 泛型鏈式堆疊泛型
- 第六講 堆疊操作
- 益智補劑:Stamets堆疊
- 圖的深度優先遍歷(堆疊實現和非堆疊實現)
- 【譯】JavaScript的工作原理:引擎,執行時和呼叫堆疊的概述JavaScript
- Linphone SIP堆疊錯誤可允許攻擊者遠端使客戶端裝置崩潰客戶端
- junkman 遠端堆疊監控
- 什麼是網路堆疊?
- Java 堆疊記憶體分配Java記憶體
- iOS crash 日誌堆疊解析iOS
- (js佇列,堆疊) (FIFO,LIFO)JS佇列
- z-index堆疊規則Index
- StackOverflowError堆疊溢位錯誤Error
- 華為裝置ospf實現全網互通
- 華為通訊裝置密碼設定密碼
- JS 資料型別和堆疊JS資料型別
- CSS之定位和堆疊屬性CSS
- SQL隱碼攻擊-堆疊注入SQL
- Java堆疊的區別有哪些Java
- QT分局管理:堆疊窗體(三)QT
- 如何:強化TCP/IP堆疊安全TCP
- 【原創】命令堆疊(二十七)