本發(fā)明涉及一種MLAG技術(shù),尤其是涉及一種優(yōu)化MLAG孤立口廣播流量的芯片實現(xiàn)方法。
背景技術(shù):
在高可靠性的數(shù)據(jù)中心拓撲中,典型的會通過兩臺聚合交換機來連接架頂(Top Of Rack,TOR)交換機和服務(wù)器以提供冗余保護。在這樣的拓撲結(jié)構(gòu)中,生成樹協(xié)議(Spanning Tree Protocol,STP)通過阻塞(block)聚合交換機的一半的端口來防止網(wǎng)絡(luò)環(huán)路,但這樣做會降低50%的帶寬。
通過部署MLAG(Multi-Chassis Link Aggregation,跨設(shè)備鏈路聚合)可以解決上述這個問題。即在兩臺聚合交換機的中間通過一條MLAG鏈路進行連接,使其在邏輯上如同一臺設(shè)備。兩臺設(shè)備上的端口共同形成聚合口,使得所有端口可以共同參與數(shù)據(jù)流量的轉(zhuǎn)發(fā)。
在實現(xiàn)MLAG對二層轉(zhuǎn)發(fā)表(Forwarding DataBase,F(xiàn)DB)的保護時,傳統(tǒng)的方案就是進行刷表操作。即在保護切換發(fā)生的時候,進行FDB出口的更新,將原有的MLAG口,刷新成peer link(連接兩臺MLAG設(shè)備的鏈路)口。或者還有一種方式,就是將原有的基于此MLAG口的FDB全部清除,依賴FDB的重新學(xué)習(xí),從鄰居同步,來進行刷新FDB出口的操作,把FDB原有的MLAG的出口,更新成peer link口,以此達到保護切換的作用。
通過上述兩種方案進行FDB的保護切換,存在的缺點也是明顯的。進行FDB端口刷新,由于是cpu進行處理,會在一段時間之內(nèi)斷流。清除全 部的基于此端口的FDB,會造成在此臺設(shè)備上一定時間之內(nèi)的廣播。甚至在某些情況下,F(xiàn)DB如果沒有機會重新學(xué)習(xí),會導(dǎo)致長時間的廣播。
為解決上述兩種方案的不足,可使用自動保護倒換(Automatic Protection Switching,APS)機制來實現(xiàn)MLAG端口間的快速倒換。通過APS機制實現(xiàn)MLAG單播的具體過程為:
1、創(chuàng)建好MLAG的peer link;
2、進行聚合端口和MLAG組的綁定;
3、根據(jù)綁定了MLAG組的聚合端口的信息和peer link的信息,創(chuàng)建aps group(組)。芯片中的DsApsBridge這張表中的workingDestMap使用被綁定的聚合端口,protectingDestMap使用peer link所對應(yīng)的端口或者聚合端口。創(chuàng)建完成這個保護組之后,能得到一個NEXTHOP ID,并且在軟件層面保存MLAG ID和對應(yīng)的NEXTHOP ID的對應(yīng)關(guān)系;
4、在進行FDB學(xué)習(xí)的時候,根據(jù)源端口屬于哪個MLAG組,查找上述的對應(yīng)關(guān)系,得到保護組對應(yīng)的NEXTHOP ID,使用這個NEXTHOP ID進行FDB的添加;
5、當(dāng)檢測到本地MLAG端口由up變down的時候,即當(dāng)保護切換發(fā)生時,可以直接進行APS的切換,將DsApsBridge中的protectingEn置起來即可;
6、當(dāng)檢測到本地MLAG端口由down變up的時候,即當(dāng)保護恢復(fù)時,則直接進行APS的恢復(fù),將DsApsBridge中的protectingEn清除掉即可;
7、在聚合端口和MLAG組解除綁定關(guān)系,或者刪除peer link,兩者任何一個事件發(fā)生時,刪除保護組,釋放APS資源。
但是,上述方案存在的缺點是:使用APS機制時,Peer Link上不會進行FDB的學(xué)習(xí),導(dǎo)致孤立口的FDB條目無法通過Peer Link學(xué)習(xí)到對端,同時由于孤立口不在MLAG域內(nèi),軟件層面不會進行孤立口FDB同步,導(dǎo)致MLAG對端設(shè)備無法獲得來自孤立口設(shè)備的FDB條目,反向發(fā)往孤 立口設(shè)備的流量只能在VLAN內(nèi)廣播,導(dǎo)致網(wǎng)絡(luò)中存在大量不必要的廣播流量。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種優(yōu)化MLAG孤立口廣播流量的芯片實現(xiàn)方法,通過芯片機制以遏制由MLAG孤立口引起的無效的廣播流量,提高網(wǎng)絡(luò)性能。
為實現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種優(yōu)化MLAG孤立口廣播流量的芯片實現(xiàn)方法,包括:
S1,芯片配置:在MLAG本地芯片和遠端芯片中的Mac數(shù)據(jù)表中增加isMlagMerged屬性及增加macDaRefreshAging屬性,在ApsBridge數(shù)據(jù)表中增加isMlagAps屬性;
S2,當(dāng)MLAG本地芯片上收到從MLAG遠端芯片反向發(fā)送過來的報文時,報文處理過程包括:
S21,MLAG本地芯片解析報文是否是發(fā)往MLAG孤立端口,若是,所述MLAG本地芯片轉(zhuǎn)發(fā)報文的同時exception一份報文給CPU;
S22,CPU獲取exception后,在MLAG遠端芯片上下一條指向Peer-Link的第一轉(zhuǎn)發(fā)條目,使得反向發(fā)往MLAG本地芯片的報文按照所述第一轉(zhuǎn)發(fā)條目通過Peer-Link發(fā)送給MLAG本地芯片。
優(yōu)選地,步驟S21中,MLAG本地芯片采用報文的macDa查找Mac數(shù)據(jù)表,根據(jù)查找到的isMlagMerged屬性、報文源端口和報文轉(zhuǎn)發(fā)出口,判斷報文是否是發(fā)往MLAG孤立端口。
優(yōu)選地,若同時滿足isMlagMerged屬性值為0、報文源端口為Peer-Link端口、轉(zhuǎn)發(fā)出口為非MLAG口,則判斷報文是發(fā)往MLAG孤立端口。
優(yōu)選地,步驟S21中,在MLAG本地芯片exception一份報文給CPU后,重新配置isMlagMerged屬性的值,并配置一個計時器,若計時器設(shè)定時間內(nèi)CPU無響應(yīng),則將isMlagMerged屬性的值再配置回來。
優(yōu)選地,在MLAG本地芯片exception一份報文給CPU后,配置isMlagMerged屬性的值為3,并配置一個計時器,若計時器設(shè)定時間內(nèi)CPU無響應(yīng),則將isMlagMerged屬性的值重新配置為0。
優(yōu)選地,步驟S22中,所述第一轉(zhuǎn)發(fā)條目為:MAC+VLAN→MLAG Peer-Link,且置所述第一轉(zhuǎn)發(fā)條目的macDaRefreshAging屬性為1,且置MLAG本地芯片上指向MLAG孤立端口的第二轉(zhuǎn)發(fā)條目的isMlagMerged屬性值置為1。
優(yōu)選地,所述方法還包括:
S3,當(dāng)報文從MLAG本地芯片的MLAG孤立端口發(fā)往MLAG孤立端口時,則在MLAG本地芯片上學(xué)習(xí)報文MACSA對應(yīng)的第二轉(zhuǎn)發(fā)條目,DsMac表中的isMlagMerged的屬性值為0,所述第二轉(zhuǎn)發(fā)條目為:
MAC+VLAN→MLAG孤立端口。
優(yōu)選地,所述S2中,報文處理過程還包括:
S23,在MLAG遠端芯片上的流量消失大于或等于其老化計時器設(shè)定的時間后,MLAG遠端芯片內(nèi)的老化計數(shù)器歸零,觸發(fā)MLAG遠端芯片內(nèi)第一轉(zhuǎn)發(fā)條目的老化,此時CPU將第一轉(zhuǎn)發(fā)條目刪除,并通知MLAG本地芯片將對應(yīng)的第二轉(zhuǎn)發(fā)條目中的isMlagMerged屬性值重新置為0。
優(yōu)選地,所述S2中,報文處理過程還包括:
S24,若MLAG遠端芯片上,指向Peer-Link的第一轉(zhuǎn)發(fā)條目存在后,MLAG本地芯片對應(yīng)的第二轉(zhuǎn)發(fā)條目發(fā)生老化或端口遷移,CPU通知MLAG遠端芯片刪除對應(yīng)的第一轉(zhuǎn)發(fā)條目。
與現(xiàn)有技術(shù)相比,本發(fā)明通過芯片機制有效遏制了MLAG孤立口導(dǎo)致的MLAG域內(nèi)無效廣播流量,提高網(wǎng)絡(luò)性能,并且使得MLAG系統(tǒng)能夠精確同步孤立端口上有效流量對應(yīng)的FDB。
附圖說明
圖1是現(xiàn)有網(wǎng)絡(luò)中存在不必要的廣播流量的原理示意圖;
圖2是本發(fā)明數(shù)據(jù)僅從MLAG孤立端口發(fā)往MLAG孤立端口的原理示意圖;
圖3是本發(fā)明數(shù)據(jù)在MLAG孤立端口和MLAG本地端口間的通信時的原理示意圖;
圖4是本發(fā)明從Peer-Link反向過來數(shù)據(jù)流量時的原理示意圖;
圖5是圖4中MLAG本地端口down掉時的原理示意圖;
圖6是本發(fā)明的流程示意圖。
具體實施方式
下面將結(jié)合本發(fā)明的附圖,對本發(fā)明實施例的技術(shù)方案進行清楚、完整的描述。
在MLAG中,考慮孤立端口存在的情況,由于傳統(tǒng)MLAG設(shè)備Peer-Link上不進行MAC學(xué)習(xí),反向發(fā)往孤立端口的流量會在MLAG遠端設(shè)備上泛洪,導(dǎo)致網(wǎng)絡(luò)中存在大量不必要的廣播流量。
如圖1所示,從孤立端口進來一個MACSA未知的報文發(fā)往MLAG3,左側(cè)設(shè)備會按轉(zhuǎn)發(fā)表將報文發(fā)往MLAG3,由于本設(shè)備端口down(關(guān)閉)了,根據(jù)APS機制,流量會經(jīng)過Peer-Link發(fā)往右側(cè)設(shè)備,同時左側(cè)設(shè)備會學(xué)習(xí)到這個MACSA。當(dāng)反向流量從MLAG3進入右側(cè)設(shè)備時,由于Peer-Link上沒有進行FDB學(xué)習(xí),右側(cè)設(shè)備沒有這個MAC地址的轉(zhuǎn)發(fā)條目,只能在VLAN內(nèi)廣播,這樣MLAG1,MLAG2,MLAG4就收到了無效的廣播流量。
本發(fā)明所揭示的一種優(yōu)化MLAG孤立口廣播流量的芯片實現(xiàn)方法,通過CPU下發(fā)指向MLAG孤立口的FDB條目到MLAG遠端設(shè)備,使得MLAG遠端設(shè)備可將流量反向發(fā)往孤立口設(shè)備;并且通過相應(yīng)的老化機制,使得MLAG系統(tǒng)能夠精確同步孤立端口上有效流量對應(yīng)的FDB條目。
另外,在描述本發(fā)明方案之前,先簡單介紹下報文通用轉(zhuǎn)發(fā)機制:
一個報文進交換芯片進行轉(zhuǎn)發(fā)時,一般會查找兩次FDB表,F(xiàn)DB表以MAC+VLAN為索引。一次使用MACDA+VLAN進行查找,用于得到轉(zhuǎn)發(fā)出口;另一次使用MACSA+VLAN進行查找,用于決定是否學(xué)習(xí)該FDB,若有結(jié)果則需要比較,出口是否為當(dāng)前入口,不一致則觸發(fā)該FDB條目的更新,若無結(jié)果則學(xué)習(xí)該FDB條目。
結(jié)合圖2~圖6所示,本發(fā)明所揭示的一種優(yōu)化MLAG孤立口廣播流量的芯片實現(xiàn)方法,包括以下步驟:
S1,芯片配置:在MLAG本地芯片和遠端芯片中的Mac數(shù)據(jù)表中增加isMlagMerged屬性及增加macDaRefreshAging屬性,在ApsBridge數(shù)據(jù)表中isMlagAps屬性。
本實施例具體配置為:MLAG本地芯片和遠端芯片之間的MLAGPeer-Link關(guān)閉FDB學(xué)習(xí)功能;在端口上設(shè)置MLAG成員端口和MLAG_Peer端口的的PortType;DsMac表中增加isMlagMerged屬性;DsMac表中增加macDaRefreshAging屬性,當(dāng)macDaRefreshAging置1時,根據(jù)MACDA查找到該條目時,會觸發(fā)Aging計數(shù)器的更新;在DsApsBridge表中增加isMlagAps屬性,在APS用作MLAG時,該值配置為1。
下面分三種情況來具體描述本方案的數(shù)據(jù)轉(zhuǎn)發(fā)處理過程:1、數(shù)據(jù)僅從MLAG孤立端口發(fā)往MLAG孤立端口時,2、僅存在MLAG孤立端口和MLAG本地端口間的通信時,3、當(dāng)存在從Peer-Link過來的數(shù)據(jù)流量時。
如圖2,當(dāng)數(shù)據(jù)僅從MLAG孤立端口發(fā)往MLAG孤立端口時,僅在MLAG本地設(shè)備上學(xué)習(xí)數(shù)據(jù)MACSA對應(yīng)的FDB條目,DsMac表中的isMlagMerged默認為0,MACSA對應(yīng)的FDB條目為:
MAC+VLAN→MLAG孤立端口;為了便于描述,將該FDB條目記為條目1。
如圖3,當(dāng)僅存在MLAG孤立端口和MLAG本地端口間的通信時,僅在MLAG本地設(shè)備上學(xué)習(xí)MLAG孤立端口對應(yīng)的FDB條目,DsMac表中的isMlagMerged默認為0,MLAG孤立端口對應(yīng)的FDB條目為:
MAC(MLAG孤立端口)+VLAN→MLAG孤立端口。
如圖4,步驟S2,當(dāng)存在從Peer-Link過來的數(shù)據(jù)流量時,即當(dāng)MLAG本地芯片上收到從MLAG遠端芯片反向發(fā)送過來的報文時,報文處理過程具體包括:
S21,MLAG本地芯片解析報文是否是發(fā)往MLAG孤立端口,若是,所述MLAG本地芯片轉(zhuǎn)發(fā)報文的同時exception一份報文給CPU。
具體地,在MLAG本地設(shè)備芯片中用MACDA查找DsMac表,若發(fā)現(xiàn)同時滿足以下條件:
1、isMlagMerged屬性值為0;
2、數(shù)據(jù)是從MLAG Peer-Link來的;
3、出口是非MLAG口。
則解析判斷出報文是從Peer-Link過來反向發(fā)往MLAG孤立端口的,這時候MLAG本地設(shè)備在轉(zhuǎn)發(fā)報文的同時exception一份報文給CPU??蛇x地,此時可以把isMlagMerged設(shè)置為3,并配置一個計時器,若計時器時間內(nèi)CPU無響應(yīng),重新把isMlagMerged設(shè)置為0。
S22,CPU獲取exception后,在MLAG遠端芯片上下一條指向Peer-Link的FDB條目,使得反向發(fā)往MLAG本地芯片的報文按照所述FDB條目通過Peer-Link發(fā)送給MLAG本地芯片。
具體地,當(dāng)CPU獲取exception后,會通過軟件協(xié)議在右側(cè)MLAG遠端設(shè)備上下一條FDB條目:
MAC+VLAN→MLAG Peer-Link;其中的macDaRefreshAging置1,并把左側(cè)MLAG本地設(shè)備上MACSA對應(yīng)的FDB條目(MAC+VLAN →MLAG孤立端口)中的isMlagMerged置為1。為了便于描述,將該FDB條目記為條目2。
這樣,以后所有來自右側(cè)MLAG遠端設(shè)備去往左側(cè)MLAG本地設(shè)備的MLAG孤立口的流量在右側(cè)MLAG遠端設(shè)備上都會按條目2進行轉(zhuǎn)發(fā)。
當(dāng)右邊流量消失后一段時間(即右側(cè)MLAG遠端設(shè)備停止反向發(fā)送流量給左側(cè)MLAG本地設(shè)備一段時間后),右側(cè)設(shè)備內(nèi)的Aging(老化)計數(shù)器歸零,從而會觸發(fā)右側(cè)條目2的老化,此時右側(cè)CPU會把條目2刪除,并通知左側(cè)設(shè)備將對應(yīng)的條目1中的isMlagMerged重新置成0。
若右邊設(shè)備上,指向Peer-Link的條目2存在后,左側(cè)對應(yīng)的條目1發(fā)生老化或端口遷移,CPU通知右側(cè)設(shè)備刪除對應(yīng)的條目2。
如圖5,當(dāng)本端設(shè)備MLAG口down的時候,從Peer-Link反向發(fā)往左側(cè)設(shè)備的數(shù)據(jù)流處理流程與上述描述并無差別,可參照圖4和上述描述。
本發(fā)明通過在設(shè)備芯片的DsMac表中增加isMlagMerged和macDaRefreshAging屬性;DsApsBridge表中增加isMlagAps屬性;macDaRefreshAging使能時,芯片能夠基于MACDA觸發(fā)Aging計數(shù)器的更新;檢測到流量從Peer-Link發(fā)往非MLAG端口且isMlagMerged為0時,能夠觸發(fā)exception給CPU,從而通過芯片機制遏制了孤立口導(dǎo)致的MLAG域內(nèi)無效的廣播流量,提高網(wǎng)絡(luò)性能。
本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護范圍應(yīng)不限于實施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請權(quán)利要求所涵蓋。