概述:
堆疊技術分爲硬堆疊和軟堆疊2種。硬堆疊技術採用專用的堆疊線及堆疊接口以實現堆疊效果;軟堆疊通常利用千兆端口,以軟件的方式實現堆疊。
該文檔介紹的堆疊技術指的是硬堆疊,包括3750中的StackWise技術以及2960中的FlexStack技術,主要被應用於接入層、匯聚層。
1.概述
1.1 堆疊技術帶來的好處
便於管理
傳統接入網絡架構拓撲如圖1.1所示,在該網絡中,管理員需要管理4臺相互獨立的設備,而隨着接入模塊的增多,其管理任務也將相應增大。這種增大不僅體現在需管理設備的數量上,同時也使得網絡拓撲變得更爲複雜。
圖1.1傳統網絡架構拓撲
當接入層設備採用堆疊技術後,如圖1.2所示,網絡中需要管理的設備從4臺減少到了3臺。由於堆疊技術支持多設備的堆疊(如3750支持最多9臺設備堆疊,2960支持4臺設備堆疊),當需要引入新的接入模塊時,需管理員管理的設備數量並不會因此而增加,而且網絡拓撲也不會發生改變。
圖1.2接入層堆疊
堆疊組一旦構建,設備的接口編號將發生改變。如圖1.2中,假設爲2臺2960-S堆疊,堆疊組形成後,第一臺接口編號爲G1/0/X,第二臺接口編號爲G2/0/X。如有多臺設備堆疊,以此類推。
當接入層和匯聚層都採用堆疊技術後,如圖1.3所示,網絡拓撲得到了進一步的簡化,待管理的設備從4臺減少到了2臺。再加之EtherChannel技術的引入,生成樹也被消除了,這使得邏輯拓撲也變得非常簡單。
圖1.3接入層、匯聚層堆疊
冗餘及高可靠性
堆疊技術把多臺物理交換機在邏輯上組成爲1臺交換機,並能夠允許跨交換機建立EtherChannel,這使得網絡在具備冗餘的同時能夠充分利用上聯鏈路。
如在圖1.3中,當匯聚層與接入層都採用堆疊技術後,4臺交換機被虛擬化爲了2臺,由於消除了生成樹環路,接入層交換機與匯聚層交換機間的EtherChannel鏈路能夠提供非常良好的負載,充分利用各條鏈路帶寬。
此外,堆疊組中的一臺設備出現故障,對整個堆疊組其它成員不會造成影響。
可擴展性
堆疊組內可以隨時增加或移除組成員而不會從功能上對其它成員造成影響。此外,組成員的增加或移除還不會影響網絡的邏輯拓撲,依然可以保證其簡單、冗餘的特點。
1.2 堆疊組的構成
術語
Stack Member:
堆疊組中的每臺設備都是stack member。
Master:
從stack member中選舉1臺爲master,實現控制、管理層面的功能。
Switch Number:
stack組中每臺設備都會有1個編號以作爲stack member區分標識。
默認取值爲1,stack member有選取儘可能小的switch number的趨勢。
該編號還將決定設備的端口編號,如switch number爲3,則對應端口編號爲G3/0/X、
Stack Priority:
用於Master選舉,越大越優。
範圍1-15,默認取值爲1。
概述
如圖1.4所示,幾臺設備堆疊後,就如同一臺高端口密度的交換機。堆疊組內選取一個master,主要負責控制層面的信息處理,就好比是高端交換機中的supervisor;而其他組成員就好比是高端交換機中的I/O modules,主要負責數據層面的data轉發。
圖1.4堆疊效果
Master做什麼
對堆疊組而言
①同步設備配置。
②監控並同步各個member狀態信息。
③StackWise技術應用的可路由設備中,下發routing-table、forwarding-table、QoS策略等三層信息。
對管理員而言
①提供CLI窗口,無論接到哪臺stack member中,實際上都是對master進行操作。
②提供telnet、ssh等遠程登錄。
對網絡其它設備而言
其它網絡設備在控制層面,實際上直接與master進行交互。
Slave做什麼
接受master的管理,履行數據轉發層面的工作。
2.堆疊的實現
2.1 Master選舉
何時選舉
Master發生改變
Master故障或從堆疊組中被移除。
Master被重啓。
堆疊組被重啓。
有master設備加入到當前堆疊組中
既然是master,該設備是在已開機選舉完畢,帶電的情況下加入到當前堆疊組中的。
何時不選舉
有Slave從堆疊組中退出
設備在連接到堆疊組後開機加電
設備開機加電時,會有一個約2 minutes的election window。在此時間段內如果檢測到已存在master,當前設備則只能成爲slave;否則,則會通過選舉規則選出master。
選舉規則
堆疊組中已有master
該條規則僅適用於新加入堆疊組並加電的設備。
Stack Priority
取值1-15,越大越優。
配置文件
有配置文件的優於無配置文件的,新出廠交換機未執行write或copy run start命令時,本地是沒有配置文件的。
開機時間
開機時間越長的越優。
MAC地址
MAC地址越小越優。
配置繼承關係
在可堆疊設備中,配置應當被認爲是隸屬於整個堆疊組的。特殊情況是隻有1臺設備構成堆疊組。
涉及到整個堆疊組的變遷:當堆疊組A加入到堆疊組B時,如果選舉出的master依然在堆疊組B中,則堆疊組A將被重啓並繼承堆疊組B的配置。
堆疊組內成員的調整:當堆疊組A中的master由於特殊原因而放棄該角色時,新選舉出的slave將依然繼承原有的配置。
案例
設備加入堆疊組後加電
設備通過堆疊線纜,接入某個已經在運作的堆疊組後,加電開機。
設備檢測到已存在master,自己只能成爲slave。
設備以slave身份參與堆疊組的工作。
master運行後加入堆疊組
設備帶電運行並在其堆疊組內爲master。
設備在帶電運作情況下,通過堆疊線纜加入到新的堆疊組中。
Master選舉被觸發,根據選舉規則選出新的master。
放棄master身份的那整個堆疊組被重啓,並都成爲勝出堆疊組的內的slave設備。
2.2 StackWise與FlexStack的比較
首先,FlexStack技術是基於StackWise開發的。兩者最大的差別在於:
FlexStack技術中,packet沿堆疊鏈路傳輸是hop-by-hop這種形式的,每臺設備收到packet時,都要端口上將packet加入到傳輸隊列,且該隊列受到QoS的影響。Packet在FlexStack中,傳輸到目標設備後就不再繼續轉發。當有某條stack鏈路故障時,故障2端的設備都只有half的堆疊帶寬,但是其它設備堆疊帶寬依然是full。
StackWise技術中,所有stack member構成的ring可以被看成是一個整體,一個環形軌道。packet一旦進入軌道,將沿軌道繞行,不受制於QoS影響,packet沿途被需要的設備複製取下,並繼續傳遞。通常情況下, packet傳遞迴起始設備後纔會被移除。當有某條stack鏈路故障時,整個stack帶寬降到half。
2.3 StackWise & StackWise Plus
與StackWise相比,StackWise Plus的優勢主要體現在數據包轉發效率的提升上。該技術只在3750-E以及3750-X中支持,如果這些設備與只支持StackWise的設備堆疊,將只能以StackWise方式工作。StackWise Plus主要的優勢如下:
Destination stripping
圖2.1 destination stripping說明
在StackWise中,採用的是一種source stripping技術。如有一個packet需要從switch 1發送到switch2,switch 1將packet複製發送到ring上,packet將沿着ring一直傳遞,即便中途已經被switch 2按需獲取到了,該packet也必須繞ring一圈回到switch 1後,纔會終止對stack cable帶寬的佔用。
StackWisePlus採用destination stripping技術,同樣的案例,當switch 2收到packet時,直接“取下”此packet,釋放帶寬,而不用packet再回到起點。
注意:
對於broadcast以及multicast的流量,由於可能有多臺交換機需要,因此在StackWise Plus中對這類流量依然採用source stripping方式。
Local switching
圖2.2local switching說明
在StackWise中,即便由同一臺設備接收並轉發的出去的packet,也要走一圈ring回來再被轉發出去;而StackWise Plus則能做到本地接收直接從本地轉發,無需佔用ring的帶寬。
3.堆疊的部署
3.1 IOS限制
IOS版本必須一致
IOS版本號影響stack protocol的版本,stack protocol是stack members之間交互的協議,stack的部署要求stack protocol版本必須一致。
IOS feature set必須一致
LAN Base:提供基礎二層功能。
IP Base:提供基礎三層功能。
例如,2960-XR使用的是IP Lite的feature,而2960-X、2960-S都不能使用這一的feature,這將導致2960-XR無法與2960-X、2960-S堆疊使用。
3.2 物理連接
StackWise堆疊線的連接要求構成一個ring topology,此時交換機間通過堆疊線傳輸的速率能夠達到最大。而一旦其中有一條堆疊線故障,閉環被打破,在StackWise技術中傳輸速率降爲full值的一半。
在FlexStack中,是以每一跳設備爲對象進行考慮的,連接成ring topology時,每臺設備都具有雙向通路,每臺設備可利用的堆疊帶寬都達到最大。而當其中一條堆疊線路故障時,只有仍具有雙向連接的設備具有full speed。
圖3.1環形拓撲雙向通路
2臺設備連接方式
①->②->①構成環
3臺設備連接方式
①->②->③->①構成環
7臺設備連接方式
①->③->⑤->⑦->⑥->④->②->①構成環
注意:
Stack的連接方式並沒有嚴格的限制,但是需要連接成環形拓撲。
3.3 部署
構建一個新的stack組
方案一:設定各個設備的priority,誘發master競選,確保高priority勝出。
設定各設備的priority
將欲指定爲master的設備配置較高的優先級,其它設備配置較低優先級。
保存配置關機
設備上架,連接堆疊線纜
各設備逐臺開啓
這裏設備開啓時間上務必儘可能同步。
校驗
方案二:適用於需要給升級IOS的情況。
設定各設備priority,保存配置關機
設備上架
此時不連接堆疊線纜
先升級欲成爲master設備的IOS,重啓
先升級完並重啓後,使得該設備由於沒有檢測到其它member,直接成爲master。
升級第二臺設備並重啓
連接堆疊線纜,將第二臺設備加入堆疊組
在第二臺設備重啓過程中連接堆疊線纜,使得該設備由於檢測到“堆疊組內已有master”而自動成爲slave。
後續設備相同步驟
校驗
加入1臺設備成爲slave
設定priority
設定欲成爲slave設備的優先級低於現有堆疊組內master設備。
保存配置關機
設備上架,連接堆疊線纜
此時不要給設備上電。
開機運行
當前設備由於檢測到堆疊組內已經有了master,直接成爲slave。
由於還配置了priority,即便觸發了master競選,該設備也無法勝出。
校驗
注意:
成爲slave的設備將放棄原有的配置,而與堆疊組保持一致。
移除1臺slave
刪除相關配置、provision
硬件上設備被移除時,與其相關的配置文件實際上還是保存在stack組內的,徹底的刪除要求與其相關的配置也被清除。
設備斷電及線纜移除
這裏的線纜包括堆疊線的移除以及調整。
設備下架
校驗
替換1臺slave
舊設備斷電及線纜移除
設備下架
新設備上架
線纜連接及加電運行
校驗
注意:
即便是將1臺2960-X替換爲2960-S,相關的配置文件還是會被頂替的設備繼承。需要注意的是,替換設備的端口數量最好與之前的設備保持一致,否則可能會有部分端口配置丟失。
3.4 配置
Stack Provision
概述
通常情況下,操作人員需要等到堆疊組構建完畢後才能對其它組成員所屬接口進行相關配置。
Stackprovision使得多臺設備在還沒有構成堆疊組之前,就能夠在master上進行預配置,一旦其它slaves加入到堆疊組中,這些預配置就會在組成員中生效。
例如:在1臺3750-X上進行provision配置,指定共有3臺3750-X進行堆疊時,該設備上就會相應地出現G1/0/X、G2/0/X、G3/0/X這些端口,並能對這些端口進行配置。
如果進行預配置的設備無法成員master,則根據配置繼承原則,該設備將放棄這些配置而接受新加入堆疊組的配置。因此,provision配置在希望成爲master的設備上纔是有意義的。
術語
Provisionedconfiguration——由管理員offline添加的配置,這個操作是在期望成爲master的設備上進行的,該設備加入其它stack後如果無法成爲master,provisionedconfiguration便不會被應用。
Provisionedswitch——加入stack並接受provisionedconfiguration的交換機爲provisioned switch。
配置
①創建provision組成員
Switch(config)#switch<number> provision <switch-type>
注意:
switch-type可以通過show version命令查看。
示例:
3臺交換機進行堆疊時,在期望成爲master的設備上進行如下預配置
交換機一 ws-c3750g-12t
交換機二 ws-c3750g-24ts
交換機三 ws-c3750g-48ts
switch1 provision ws-c3750g-12t
switch2 provision ws-c3750g-24ts
switch3 provision ws-c3750g-48ts
②檢查
Switch#show switch //此時在CurrentState欄可看到狀態爲“Provisioned”
Switch#show ip interbr
③對新出現的端口進行配置
Stack Member Numbers
概述
未進行配置時,設備默認number爲1,交換機加入到stack組中時,如果出現number與組內設備重複的情況,將放棄原有number,自動選取可用number中最小的。
Master & stack membernumber
①Master與stack member number間沒有必然關係,但是通常情況下master的number爲1。
②當slave通過競選成爲master時,它原有的stack member number不會改變。
修改stack member number
Switch(config)# switch<current-number> renumber <new-number>
Switch# reload slot<current-number>
Switch#show switch
Stack Priority
概述
默認優先級爲1,可配置優先級從1-15,越大越優。
優先級的修改主要用以影響master選舉,立即生效,但修改的效果將在下一次master election中體現。
配置
Switch(config)#switch<number> priority <pri-value>
Switch#show switch
配置保存
Switch#copyrunning-config startup-config //不能使用write命令
查看命令
檢查堆疊組摘要信息
Switch#show switch
檢查堆疊端口情況
Switch#show switch neighbors
圖中爲每臺設備端口對端連接的設備number。
Switch#show switchstack-ports
該命令主要查看對端端口線纜連接情況,OK表示已經連接,DOWN則表示線纜故障或未連接。
檢查堆疊帶寬
Switch#show switchstack-ring speed
檢查Stack Protocol版本
Switch#show platformstack manager all
參考文檔:
Cisco官方文檔《Creation and Management ofCatalyst 3750 Switch Stacks》
Cisco官方文檔《Cisco Catalyst 3750-E SeriesSwitches Q&A》
Cisco官方文檔《Cisco StackWise and StackWise PlusTechnology》
Cisco官方文檔《Catalyst 3750 Switch HardwareInstallation Guide》
博客《Stacking Cisco 3750 switches》:
http://www.brandontek.com/cisco/stacking-cisco-3750-switches/
Cisco官方文檔《Cisco Catalyst 2960-S, 2960-X, and2960-XR Stacking with FlexStack and FlexStack-Plus Technology: Description,Usage, and Best Practices》