背景介紹
項目中涉及4臺核心交換機做虛擬化,實施中發現不同的檢測方式在腦裂情況下存活設備並不是一樣的現象,在BFD監測、萬兆業務單板的情況下,一旦主master節點主業務單板故障,則業務會全部中斷、所有存活設備均會抑制端口,必須採用lacp mad方式監測,以保留腦裂後存活節點多的一組設備。
1.IRF介紹
H3C 交換機支持IRF2功能,可將多臺設備虛擬化爲一臺邏輯設備,可簡化管理並提高可靠性。
IRF是利用設備普通的萬兆接口建立的,某些特殊性況下(如物理線路故障)會導致IRF設備之間通信中斷,一個IRF變成多個新的IRF。這些IRF擁有相同的IP地址等三層配置,會引起地址衝突,導致故障在網絡中擴大。爲了提高系統的可用性,當IRF分裂時我們就需要一種機制,能夠檢測出網絡中同時存在多個IRF,並進行相應的處理,儘量降低IRF分裂對業務的影響。MAD(Multi-ActiveDetection,多Active檢測)就是這樣一種檢測和處理機制。
2.BFD和LACP檢測原理
BFD MAD檢測原理
BFD MAD檢測是通過BFD協議來實現的。要使BFD MAD檢測功能正常運行,除在三層接口下使能BFD MAD檢測功能外,還需要在該接口上配置MAD IP地址。MAD IP地址與普通IP地址不同的地方在於:MAD IP地址與成員設備是綁定的,IRF中的每個成員設備上都需要配置,且所有成員設備的MAD IP必須屬於同一網段。
當IRF正常運行時,只有主設備上配置的MAD IP地址生效,從設備上配置的MAD IP地址不生效,BFD會話處於down狀態;(使用display bfd session命令查看BFD會話的狀態。如果Session State顯示爲Up,則表示激活狀態;如果顯示爲Down,則表示處於down狀態)
當IRF分裂形成多個IRF時,不同IRF中主設備上配置的MADIP地址均會生效,BFD會話被激活,此時會檢測到多Active衝突。
衝突處理原則:對於BFD MAD,與ARP MAD、ND MAD檢測處理原則相同,衝突處理會直接讓主設備成員編號小的IRF繼續正常工作;其它IRF遷移到Recovery狀態。
LACP MAD檢測原理
LACP MAD檢測是通過擴展LACP協議報文內容實現的,即在LACP協議報文的擴展字段內定義新的TLV(Type/Length/Value,類型/長度/值)數據域——用於交互IRF的DomainID(域編號)和ActiveID(等於主設備的成員編號)及成員數量。
使能LACP MAD檢測後,成員設備通過LACP協議報文和其它成員設備交互DomainID和ActiveID信息。
當成員設備收到LACP協議報文後,先比較DomainID。如果DomainID相同,再比較ActiveID;如果DomainID不同,則認爲報文來自不同IRF,不再進行MAD處理。
如果ActiveID相同,則表示IRF正常運行,沒有發生多Active衝突;如果ActiveID值不同,則表示IRF分裂,檢測到多Active衝突。
衝突處理原則:對於LACP MAD檢測,衝突處理會先比較兩個IRF中成員設備的數量:數量多的IRF繼續正常工作;數量少的遷移到Recovery狀態(即禁用狀態);如果成員數量相等,則主設備成員編號小的IRF繼續正常工作,其它IRF遷移到Recovery狀態。爲減小當IRF分裂對網絡的影響,當只有兩個成員設備組成IRF時,建議您配置成員編號小的成員設備爲Master。
3.核心區域IRF拓撲圖
4.核心交換IRF互聯端口
本端設備 | 本端接口 | 對端設備 | 對端接口 | 備註 |
CSW-01 | Ten-GE10/0/1 Ten-GE10/0/2 | DWDM-01 | Ten-GE10/0/1 Ten-GE10/0/2 | IRF 1/1 |
CSW-01 | Ten-GE10/0/4 Ten-GE10/0/5 | CSW-02 | Ten-GE10/0/4 Ten-GE10/0/5 | IRF1/2 |
CSW-02 | Ten-GE10/0/1 Ten-GE10/0/2 | DWDM-02 | Ten-GE10/0/1 Ten-GE10/0/2 | IRF 2/2 |
CSW-02 | Ten-GE10/0/4 Ten-GE10/0/5 | CSW-01 | Ten-GE10/0/4 Ten-GE10/0/5 | IRF 2/1 |
CSW-01 | Ten-GE10/0/1 Ten-GE10/0/2 | DWDM-01 | Ten-GE10/0/1 Ten-GE10/0/2 | IRF 3/2 |
CSW-01 | Ten-GE10/0/4 Ten-GE10/0/5 | CSW-02 | Ten-GE10/0/4 Ten-GE10/0/5 | IRF 3/1 |
CSW-02 | Ten-GE10/0/1 Ten-GE10/0/2 | DWDM-02 | Ten-GE10/0/1 Ten-GE10/0/2 | IRF 4/1 |
CSW-02 | Ten-GE10/0/4 Ten-GE10/0/5 | CSW-01 | Ten-GE10/0/4 Ten-GE10/0/5 | IRF 4/2 |
5核心交換機規劃
交換機1/2/3/4 IRF端口都是採用萬兆端口建立鄰居關係,BFD檢測採用的千兆端口互聯,核心交換機優先級設置規則:1號交換機對應20,2號交換機對應15,3號交換機對應10,4號交換機對應5,虛擬組內的交換機將根據設置的優先級進行master和slave選舉,優先級高的將會成爲虛擬組內的master機器,在虛擬組合並過程中將根據設備的成員編號進行選舉,成員編號低的將選舉成爲虛擬組內存活設備。
6.核心萬兆單板處理過程
原來核心區域部署方式採用BFD MAD檢測,在模擬故障測試過程中,將核心交換機1的萬兆板卡拔掉後,交換機1和交換機2/3/4IRF端口失效,鄰居關係中斷。由於BFD檢測採用的是千兆板卡互聯,所以交換機1和交換機2/3/4之間BFD檢測是正常的,但是萬兆板卡故障後IRF鄰居關係卻失效了,BFD檢測發現IRF鄰居出現異常了,交換機1優先級高會成爲master,成員編號最低會成爲存活設備。反之交換機2/3/4 被遷移爲Recovery狀態,業務無法通過交換機1的萬兆板卡傳輸(萬兆板卡故障),同時交換機2/3/4處於Recovery狀態無法傳輸萬兆業務,造成亦莊和東壩數據中心萬兆業務全部中斷。
目前核心區域部署方式改爲LACP MAD檢測,LACP MAD檢測和BFD MAD處理原則不同,LACP MAD衝突處理會先比較兩個IRF中成員設備的數量:數量多的IRF繼續正常工作;數量少的遷移到Recovery狀態(即禁用狀態);如果成員數量相等,則主設備成員編號小的IRF繼續正常工作,其它IRF遷移到Recovery狀態。
當模擬核心交換機1萬兆板卡故障時,LACP MAD同樣會檢測到1和2/3/4之間的IRF鄰居關係失效。選舉方式會先比較成員設備數量,2/3/4交換機 IRF鄰居關係是正常的並且設備成員數量多會繼續存活下去,相反交換機1只有一臺存活被遷移爲Recovery狀態。交換機2/3/4會形成一個虛擬組並正常轉發數據和處理業務。交換機1被Recovery後,交換機2優先級最高選舉成爲master。
7.IRF注意事項
當IRF分裂後,不要在存活的交換機上敲save命令,一旦保存配置會將分裂的狀態寫入設備,將丟失掉分裂出去的設備配置。
當虛擬組中的設備萬兆板卡出現故障時,儘量將故障設備斷電將萬兆板卡更換完畢後再啓動設備,這樣分裂出去的交換機會重新加入虛擬組中,並且不會與現有的虛擬組設備進行競爭。如果在線更換板卡,交換機IRF鄰居將會以新的角色與現有的虛擬組以合併的方式進行競選,競選失敗的交換機會重啓併成爲slave。