本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域中的丟包管理技術(shù),尤其涉及鏈路聚合組成員端口的丟包管理方案。
背景技術(shù):
SMARTGROUP也稱鏈路聚合(Link Aggregation),是定義在IEEE802.3ad中的標(biāo)準(zhǔn)機(jī)制,是指將多個(gè)物理端口捆綁在一起,成為一個(gè)邏輯端口,以實(shí)現(xiàn)出/入流量在各成員端口中的負(fù)荷分擔(dān),交換機(jī)根據(jù)用戶配置的端口負(fù)荷分擔(dān)策略決定報(bào)文從哪一個(gè)成員端口發(fā)送到對(duì)端的交換機(jī)。當(dāng)交換機(jī)檢測(cè)到其中一個(gè)成員端口的鏈路發(fā)生故障時(shí),就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口,故障端口恢復(fù)后再次重新計(jì)算報(bào)文發(fā)送端口。鏈路聚合在增加鏈路帶寬、實(shí)現(xiàn)鏈路傳輸彈性和冗余等方面是一項(xiàng)很重要的技術(shù)。SMARTGROUP分為手工、靜態(tài)模式和動(dòng)態(tài)模式三種。手工模式將多個(gè)物理端口直接加入到SG中,形成一個(gè)邏輯端口,不運(yùn)行LACP協(xié)議。靜態(tài)和動(dòng)態(tài)模式遵循LACP(Link Aggregation Control Protocol,鏈路匯聚控制協(xié)議)。其中,標(biāo)準(zhǔn)LAG應(yīng)用如圖1所示。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種管理鏈路聚合成員端口丟包的方法和裝置,以解決現(xiàn)有鏈路聚合中端口丟包無(wú)法管理的問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種管理鏈路聚合成員端口丟包的方法,該方法包括:
開(kāi)啟動(dòng)態(tài)管理鏈路聚合成員端口帶寬管理功能后,當(dāng)前模式為靜/動(dòng)態(tài)鏈路聚合模式時(shí),檢測(cè)聚合鏈路中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率;
若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或等于設(shè)定門限,則將收普通丟包率超過(guò)或等于設(shè)定門限的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài);
若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限,則將發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài);
當(dāng)有任一或幾個(gè)成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)時(shí),根據(jù)負(fù)荷分擔(dān)策略在除非活動(dòng)狀態(tài)的成員端口以外的剩余鏈路中重新計(jì)算報(bào)文發(fā)送的端口,直到非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該非活動(dòng)狀態(tài)的成員端口的狀態(tài)更新為活動(dòng)狀態(tài),并重新計(jì)算報(bào)文發(fā)送的端口。
可選地,上述方法中,若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或等于設(shè)定門限,則將檢測(cè)到的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)的過(guò)程包括:
檢測(cè)到收普通丟包率超過(guò)或等于設(shè)定門限的成員端口A通過(guò)鏈路匯聚控制協(xié)議LACP將收普通丟包超過(guò)或等于設(shè)定門限的信息通知給對(duì)端的成員端口B;
所述成員端口B接收到成員端口A收普通丟包率超過(guò)或等于設(shè)定門限的信息,將成員端口B的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
可選地,上述方法中,若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限,則將檢測(cè)到的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)的過(guò)程包括:
檢測(cè)到發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口a分別向本端CPU和對(duì)端的成員端口b發(fā)送通知成員端口a發(fā)普通丟包率超過(guò)或等于設(shè)定門限的信息;
所述成員端口a的CPU獲取成員端口a發(fā)普通丟包率超過(guò)或等于設(shè)定門限的信息,則將本成員端口a的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
可選地,上述方法中,非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該非活動(dòng)狀態(tài)的成員端口的狀態(tài)更新為活動(dòng)狀態(tài)的過(guò)程包括:
成員端口A在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),分別向本端CPU和對(duì)端的成員端口B通知成員端口A收普通丟包正常的信息;
所述成員端口B收到成員端口A收普通丟包正常的信息后,若檢測(cè)成員端口B在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率也低于設(shè)定門限,則所述成員端口B將本成員端口B的狀態(tài)更新為活動(dòng)狀態(tài)。
可選地,上述方法還包括:
檢測(cè)鏈路聚合端口中是否有成員端口收、發(fā)超帶寬丟包;
若檢測(cè)到成員端口X收超帶寬丟包,則通過(guò)LACP將本端收超帶寬丟包的信息通知給本端CPU和對(duì)端的成員端口Y;
對(duì)端的成員端口Y接收到成員端口X收超帶寬丟包的信息后,如果判斷成員端口Y同時(shí)是某些業(yè)務(wù)重定向的目的端口,則將重定向到成員端口Y上的業(yè)務(wù)重定向到其他帶寬利用率低的端口。
可選地,上述方法中,將重定向到成員端口Y上的業(yè)務(wù)重定向到其他帶寬利用率低的端口后,若成員端口X仍然收超帶寬丟包,該方法還包括:
成員端口Y以哈希關(guān)鍵字做特征值,將重定向到成員端口Y上的業(yè)務(wù)用訪問(wèn)控制列表ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至成員端口X不再收超帶寬丟包。
可選地,上述方法還包括:
若檢測(cè)到成員端口x發(fā)超帶寬丟包,則通過(guò)LACP將本端發(fā)超帶寬丟包的信息通知給本端CPU和對(duì)端的成員端口y;
成員端口x的CPU獲取到本端發(fā)超帶寬丟包的信息后,若判斷成員端口x同時(shí)是某些業(yè)務(wù)重定向的目的端口,則將重定向到成員端口x上的業(yè)務(wù)重 定向到其他帶寬利用率低的端口。
可選地,上述方法中,將重定向到成員端口x上的業(yè)務(wù)重定向到其他帶寬利用率低的端口后,若成員端口x仍然發(fā)超帶寬丟包,該方法還包括:
成員端口x以哈希關(guān)鍵字做特征值,將重定向到成員端口x上的業(yè)務(wù)用ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至成員端口x不再發(fā)超帶寬丟包。
可選地,上述方法還包括:
當(dāng)前模式為手工鏈路聚合模式時(shí),若檢測(cè)到鏈路聚合端口中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率超過(guò)或等于設(shè)定門限,則將收或發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài),并根據(jù)負(fù)荷分擔(dān)策略在除已設(shè)置為非活動(dòng)狀態(tài)的成員端口以外剩余鏈路中重新計(jì)算報(bào)文發(fā)送的端口,直到所檢測(cè)到的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收/發(fā)丟包率低于設(shè)定門限,再將該成員端口的狀態(tài)更新為活動(dòng)狀態(tài),并再次重新計(jì)算報(bào)文發(fā)送端口。
本發(fā)明還公開(kāi)了一種管理鏈路聚合成員端口丟包的裝置,包括:
第一檢測(cè)單元,在開(kāi)啟動(dòng)態(tài)管理鏈路聚合成員端口帶寬管理功能后,當(dāng)前模式為靜/動(dòng)態(tài)鏈路聚合模式時(shí),檢測(cè)聚合鏈路中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率;
狀態(tài)設(shè)置單元,在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài),在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài),以及非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該成員端口的狀態(tài)更新為活動(dòng)狀態(tài);
負(fù)荷分擔(dān)單元,在有任一或幾個(gè)成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)時(shí),根據(jù)負(fù)荷分擔(dān)策略在除非活動(dòng)狀態(tài)的成員端口以外的剩余鏈路中重新計(jì)算報(bào)文發(fā)送的端口,以及在非活動(dòng)狀態(tài)的成員端口更新為活動(dòng)狀態(tài)時(shí),重新計(jì)算報(bào)文發(fā)送的端口。
可選地,上述裝置中,所述狀態(tài)設(shè)置單元,在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)指:
所述狀態(tài)設(shè)置單元,通過(guò)鏈路匯聚控制協(xié)議LACP將收普通丟包超過(guò)或等于設(shè)定門限的信息通知給對(duì)端的成員端口,以指示對(duì)端將對(duì)端自身的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
可選地,上述裝置中,所述狀態(tài)設(shè)置單元,在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)指:
所述狀態(tài)設(shè)置單元,分別向檢測(cè)到發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的CPU和對(duì)端發(fā)送通知本成員端口發(fā)普通丟包率超過(guò)或等于設(shè)定門限的信息,以及檢測(cè)到發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的CPU將自身的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
可選地,上述裝置中,所述狀態(tài)設(shè)置單元,非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該非活動(dòng)狀態(tài)的成員端口的狀態(tài)更新為活動(dòng)狀態(tài)指:
所述狀態(tài)設(shè)置單元,在檢測(cè)到非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限時(shí),分別向該成員端口的CPU和對(duì)端通知成員端口發(fā)普通丟包正常的信息,且該非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率也低于設(shè)定門限,則將該非活動(dòng)狀態(tài)的成員端口的狀態(tài)更新為活動(dòng)狀態(tài)。
可選地,上述裝置還包括:
第二檢測(cè)單元,檢測(cè)鏈路聚合端口中是否有成員端口收、發(fā)超帶寬丟包;
超帶寬丟包處理單元,在檢測(cè)到有成員端口收超帶寬丟包時(shí),通過(guò)LACP將該成員端口收超帶寬丟包的信息通知給對(duì)端,以及收到對(duì)端的成員端口發(fā)送的收超帶丟包的信息后,若判斷本成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則將重定向到本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口。
可選地,上述裝置中,所述超帶寬丟包處理單元,將重定向到本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口后,若對(duì)端的成員端口仍然收超帶寬丟包,則將本成員端口的哈希關(guān)鍵字做特征值,將重定向到本成員端口上的業(yè)務(wù)用訪問(wèn)控制列表ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至對(duì)端的成員端口不再收超帶寬丟包。
可選地,上述裝置中,所述超帶寬丟包處理單元,在檢測(cè)到成員端口發(fā)超帶寬丟包時(shí),通過(guò)LACP將本端發(fā)超帶寬丟包的信息通知給本端CPU和對(duì)端的成員端口,以及在本成員端口的CPU獲取到本端發(fā)超帶寬丟包的信息后,若判斷本成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則將重定向到本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口。
可選地,上述裝置中,所述超帶寬丟包處理單元,將重定向到本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口后,若本成員端口仍然發(fā)超帶寬丟包,則以本成員端口的哈希關(guān)鍵字做特征值,將重定向到本成員端口上的業(yè)務(wù)用ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至本成員端口不再發(fā)超帶寬丟包。
可選地,上述裝置中,所述第一檢測(cè)單元,在當(dāng)前模式為手工鏈路聚合模式時(shí),檢測(cè)鏈路聚合端口中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率;
所述狀態(tài)設(shè)置單元,在手工鏈路聚合模式時(shí),檢測(cè)鏈路聚合端口中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),將收或發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
與現(xiàn)有技術(shù)相比,本申請(qǐng)技術(shù)方案具有如下優(yōu)勢(shì):
1、對(duì)于鏈路有少量甚至大量普通丟包的情況,本申請(qǐng)技術(shù)方案也提供了對(duì)應(yīng)的管理方法,大大提高了線路傳輸?shù)馁|(zhì)量,對(duì)銀行等大客戶業(yè)務(wù)具有重要意義。
2、對(duì)于超帶寬流量的情況,本申請(qǐng)技術(shù)方案提高了流量重分配能力,大大提高了帶寬利用率。如果smartgroup成員數(shù)為k,成員端口承載的帶寬為g。按照本申請(qǐng)技術(shù)方案,最佳的,則所承載的帶寬r的范圍為g=<r<=(k-1)*g。
附圖說(shuō)明
圖1是現(xiàn)有標(biāo)準(zhǔn)LAG應(yīng)用組網(wǎng)示意圖;
圖2是本發(fā)明的手工LAG丟包越限處理流程圖;
圖3是本發(fā)明的靜、動(dòng)態(tài)LAG收普通丟包越限處理流程圖;
圖4是本發(fā)明的靜、動(dòng)態(tài)LAG發(fā)普通丟包越限處理流程圖;
圖5是本發(fā)明的靜、動(dòng)態(tài)LAG收超帶寬越限處理流程圖;
圖6是本發(fā)明的靜、動(dòng)態(tài)LAG發(fā)超帶寬越限處理流程圖;
圖7是本發(fā)明管理smartgroup成員端口丟包處理的完整流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。
實(shí)施例1
本申請(qǐng)發(fā)明人從圖1所示的標(biāo)準(zhǔn)LAG應(yīng)用中發(fā)現(xiàn),標(biāo)準(zhǔn)LAG應(yīng)用方法存在如下所述的自身缺陷:
1)當(dāng)交換機(jī)檢測(cè)到其中一個(gè)成員端口的鏈路發(fā)生故障時(shí),就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口,故障端口恢復(fù)后再次重新計(jì)算報(bào)文發(fā)送端口。這里說(shuō)的鏈路故障一般是指鏈路Link Down,或者能引起鏈路Link Down的其它嚴(yán)重鏈路故障;顯然,這是個(gè)嚴(yán)格的要求。對(duì)于鏈路中有丟包,這時(shí)候就無(wú)法及時(shí)進(jìn)行切換保證鏈路質(zhì)量。
2)對(duì)于標(biāo)準(zhǔn)LAG應(yīng)用,最佳的,要求所承載的帶寬不要超過(guò)其中一個(gè)成員端口的帶寬。因?yàn)闃O端的,如果特征數(shù)據(jù)比較特殊,使得全部流量都計(jì) 算到同一個(gè)成員端口,如果承載的帶寬超過(guò)成員端口的帶寬,顯然會(huì)發(fā)生業(yè)務(wù)損失,這顯然極大的浪費(fèi)了帶寬。
為了克服上述缺陷,本實(shí)施例提供一種管理smartgroup成員端口丟包的方法,其可應(yīng)用于smartgroup的現(xiàn)實(shí)組網(wǎng)中,提高smartgroup的傳輸質(zhì)量和帶寬利用率。該方法主要包括如下操作:
對(duì)于手工smartgroup方式,某端口收/發(fā)普通丟包持續(xù)一定時(shí)間T1超過(guò)設(shè)定丟包門限H1(包括CRC及其它非超帶寬丟包),則把此成員端口狀態(tài)置為inactive。當(dāng)然,對(duì)于嚴(yán)格要求質(zhì)量的鏈路,一旦檢測(cè)到丟包,就可以把端口成員狀態(tài)置為inactive。當(dāng)成員端口被置為inactive,就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口。當(dāng)成員端口為inactive的時(shí)候,開(kāi)啟端口檢測(cè)功能,當(dāng)本端端口收/發(fā)在一定時(shí)間T2持續(xù)不丟包或者沒(méi)超過(guò)設(shè)定丟包門限H1,就重新把成員端口狀態(tài)置為actvie,再次重新計(jì)算報(bào)文發(fā)送端口,此過(guò)程如圖2所示,包括手工LAG收、發(fā)普通丟包越限時(shí)的處理及手工LAG丟包越限消失時(shí)的處理過(guò)程。
對(duì)于靜態(tài)、動(dòng)態(tài)smartgroup方式,管理smartgroup成員端口丟包的方法主要包括如下操作:
開(kāi)啟動(dòng)態(tài)管理鏈路聚合成員端口帶寬管理功能后,當(dāng)前模式為靜/動(dòng)態(tài)鏈路聚合模式時(shí),檢測(cè)聚合鏈路中成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率;
若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或等于設(shè)定門限,則將檢測(cè)到的收普通丟包率超過(guò)或等于設(shè)定門限的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài);
若檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限,則將檢測(cè)到的發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài);
當(dāng)有任一或幾個(gè)成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)時(shí),根據(jù)負(fù)荷分擔(dān)策略在除非活動(dòng)狀態(tài)的成員端口以外的剩余鏈路中重新計(jì)算報(bào)文發(fā)送的端口,直到非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該成員端口的狀態(tài)更新為活動(dòng)狀態(tài),并重新計(jì)算報(bào)文發(fā)送 的端口。
一些優(yōu)選方案,在上述方法的基礎(chǔ)上,還考慮到了收發(fā)超帶寬丟包的問(wèn)題。
具體地,對(duì)于靜態(tài)、動(dòng)態(tài)smartgroup方式,可以采用LACP協(xié)議。而LACP報(bào)文中有3個(gè)保留字節(jié),Reserved[0]~Reserved[2],因此,實(shí)現(xiàn)過(guò)程中,可以用Reserved[0]的bit0~3來(lái)傳遞普通丟包告警和超帶寬告警,舉例如下:
1)本端收普通丟包率超過(guò)設(shè)定門限(包括CRC及其它非超帶寬丟包)--編碼為0001;
2)對(duì)端收普通丟包率超過(guò)設(shè)定門限(包括CRC及其它非超帶寬丟包)--編碼為0010;
3)本端發(fā)普通丟包率超過(guò)設(shè)定門限(包括CRC及其它非超帶寬丟包)--編碼為0011;
4)對(duì)端發(fā)普通包率超過(guò)設(shè)定門限(包括CRC及其它非超帶寬丟包)--編碼為0100;
5)本端收超帶寬丟包--------編碼為0101
6)對(duì)端收超過(guò)帶寬丟包-----編碼為0110
7)本端發(fā)超帶寬丟包--------編碼為0111
8)對(duì)端發(fā)超過(guò)帶寬丟包-----編碼為1000
有了以上定義,接下來(lái)設(shè)定收到各種編碼時(shí)候LACP協(xié)議的行為:
當(dāng)本端收普通丟包率超過(guò)設(shè)定的門限,上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0001,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0010。對(duì)端CPU收到Reserved[0]bit0~3為0010的報(bào)文后就把這個(gè)成員端口狀態(tài)置為inactive。當(dāng)成員端口被置為inactive,就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口,同時(shí)開(kāi)啟端口檢測(cè)。如果T1時(shí)間內(nèi)收普通丟包率繼續(xù)超過(guò)設(shè)定的門限Rx1,則保持成員端口inactive狀態(tài),如果T1時(shí)間內(nèi)收普通丟包率低于設(shè)定的門限Rx1,則上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0000,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0000。對(duì)端CPU收到Reserved[0]bit0~3為0000 的報(bào)文后,若確定本成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通率也低于設(shè)定的門限,則置成員端口為active狀態(tài),再次重新計(jì)算報(bào)文發(fā)送端口,同時(shí),關(guān)閉端口檢測(cè)功能。此過(guò)程如圖3所示。如此,對(duì)于提高鏈路的質(zhì)量具有巨大意義。
當(dāng)本端發(fā)普通丟包超過(guò)設(shè)定的門限,上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0011,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0100。本端CPU收到Reserved[0]bit0~3為0011的報(bào)文后就把這個(gè)成員端口狀態(tài)置為inactive。當(dāng)成員端口被置為inactive,就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口,同時(shí)開(kāi)啟端口檢測(cè)。如果T2時(shí)間內(nèi)發(fā)普通丟包繼續(xù)超過(guò)設(shè)定的門限Tx1,則保持成員端口inactive狀態(tài),如果T2時(shí)間內(nèi)發(fā)普通丟包低于設(shè)定的門限Tx1,則上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0000,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0000。本端CPU收到Reserved[0]bit0~3為0000的報(bào)文后,若確定本成員端口的對(duì)端在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通率也低于設(shè)定的門限,則置成員端口為active狀態(tài),再次重新計(jì)算報(bào)文發(fā)送端口,同時(shí),關(guān)閉端口檢測(cè)功能。此過(guò)程如圖4所示。如此,對(duì)于提高鏈路的質(zhì)量具有巨大意義。
當(dāng)本端某成員端口收超帶寬丟包,本端上送CPU的報(bào)文Reserved[0]的bit0~3置為0101。同時(shí)發(fā)送的LACP報(bào)文Reserved[0]的bit0~3置為0110。對(duì)端CPU收到Reserved[0]為0110的報(bào)文,如果成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則先把這些業(yè)務(wù)重定向到另外帶寬利用率最低的端口,如果還存在超帶寬丟包,則以hash key做classid,用ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至超帶寬丟包消失。此過(guò)程如圖5所示
當(dāng)本端某成員端口發(fā)超帶寬丟包,本端上送CPU的報(bào)文Reserved[0]的bit0~3置為0111。同時(shí)發(fā)送的LACP報(bào)文Reserved[0]的bit0~3置為1000。本端CPU收到Reserved[0]為0111的報(bào)文,如果成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則先把這些業(yè)務(wù)重定向到另外帶寬利用率最低的端口,如果還存在超帶寬丟包,則以hash key做classid,用ACL定向像到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至超帶寬丟包消失。此過(guò)程如圖6所示。
下面詳細(xì)描述一下上述方法的完整實(shí)施過(guò)程,如圖7所示,包括如下操作:
步驟701:版本正常啟動(dòng),配置smartgroup后,開(kāi)啟動(dòng)態(tài)管理smartgroup帶寬功能。如果是手工smartgroup模式,轉(zhuǎn)步驟702;如果是靜、動(dòng)態(tài)smartgroup模式,轉(zhuǎn)步驟703。
步驟702:如果是手工smartgroup模式,檢測(cè)端口是否持續(xù)時(shí)間T1收/發(fā)普通丟包超過(guò)指定門限H1,則置端口為inactive狀態(tài),同時(shí)開(kāi)啟端口丟包檢測(cè)功能,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口。如果端口T2時(shí)間收/發(fā)普通丟包未超過(guò)指定的門限H2,則重新置端口為active狀態(tài),再次重新計(jì)算報(bào)文發(fā)送端口。關(guān)閉端口丟包檢測(cè)功能。
步驟703:如果是靜/動(dòng)態(tài)smartgroup模式,檢測(cè)是收、發(fā)普通丟包率越限還是收/發(fā)超帶寬丟包越限。如果是收/發(fā)普通丟包率越限轉(zhuǎn)步驟704;如果是收/發(fā)超帶寬丟包越限轉(zhuǎn)步驟707;
步驟704:是收普通丟包率越限還是發(fā)普通丟包率越限。如果是收普通丟包率越限則轉(zhuǎn)步驟705;如果是發(fā)普通丟包率越限則轉(zhuǎn)步驟706。
步驟705:如果持續(xù)時(shí)間T1收普通丟包率超過(guò)指定門限H1,LACP報(bào)文Reserved[0]的bit0~3置為0001,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0010。對(duì)端CPU收到Reserved[0]bit0~3為0010的報(bào)文后就把這個(gè)成員端口狀態(tài)置為inactive。當(dāng)成員端口被置為inactive,就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文發(fā)送的端口,同時(shí)開(kāi)啟端口檢測(cè)。如果T1時(shí)間內(nèi)收普通丟包率繼續(xù)超過(guò)設(shè)定門限,則保持成員端口inactive狀態(tài);如果T1時(shí)間內(nèi)收普通丟包率低于設(shè)定門限了,則上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0000,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0000。對(duì)端CPU收到Reserved[0]bit0~3為0000的報(bào)文后,若對(duì)端CPU確定本端在設(shè)定時(shí)長(zhǎng)內(nèi)發(fā)普通丟包率也低于設(shè)定門限,則置本成員端口為active狀態(tài),再次重新計(jì)算報(bào)文發(fā)送端口,同時(shí),關(guān)閉端口檢測(cè)功能。
步驟706:如果持續(xù)時(shí)間T2發(fā)普通丟包率超過(guò)指定門限H2,上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0011,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0100。本端CPU收到Reserved[0]bit0~3為0011的報(bào)文后就把這個(gè)成員端口狀態(tài)置為inactive。當(dāng)成員端口被置為inactive,就停止在此端口上發(fā)送報(bào)文,并根據(jù)負(fù)荷分擔(dān)策略在剩下鏈路中重新計(jì)算報(bào)文 發(fā)送的端口,同時(shí)開(kāi)啟端口檢測(cè)。如果T2時(shí)間內(nèi)發(fā)普通丟包繼續(xù)超過(guò)設(shè)定的門限Tx1,則保持成員端口inactive狀態(tài),如果持續(xù)時(shí)間T2發(fā)普通丟包低于設(shè)定門限H2,則上送CPU的LACP報(bào)文Reserved[0]的bit0~3置為0000,往對(duì)端發(fā)送LACP報(bào)文Reserved[0]的bit0~3置為0000。本端CPU收到Reserved[0]bit0~3為0000的報(bào)文后,若確定對(duì)端在設(shè)定時(shí)長(zhǎng)內(nèi)收普通丟包率也低于設(shè)定門限,則置成員端口為active狀態(tài),再次重新計(jì)算報(bào)文發(fā)送端口,同時(shí),關(guān)閉端口檢測(cè)功能。
步驟707:是收超帶寬丟包越限還是發(fā)超帶寬丟包越限。如果是收超帶寬丟包越限則轉(zhuǎn)步驟708;如果是發(fā)超帶寬丟包越限則轉(zhuǎn)步驟709。
步驟708:當(dāng)本端某成員端口收超帶寬丟包,本端上送CPU的報(bào)文Reserved[0]的bit0~3置為0101。同時(shí)發(fā)送的LACP報(bào)文Reserved[0]的bit0~3置為0110。對(duì)端CPU收到Reserved[0]為0110的報(bào)文,如果成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則先把這些業(yè)務(wù)重定向到另外帶寬利用率最低的端口,如果還存在超帶寬丟包,則以hash key做classid,用ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至超帶寬丟包消失。
步驟709:當(dāng)本端某成員端口發(fā)超帶寬丟包,本端上送CPU的報(bào)文Reserved[0]的bit0~3置為0111。同時(shí)發(fā)送的LACP報(bào)文Reserved[0]的bit0~3置為1000。本端CPU收到Reserved[0]為0111的報(bào)文,如果成員端口同時(shí)是某些業(yè)務(wù)重定向的目的端口,則先把這些業(yè)務(wù)重定向到另外帶寬利用率最低的端口,如果還存在超帶寬丟包,則以hash key做classid,用ACL重定向到帶寬利用率最低的端口,重復(fù)重定向動(dòng)作直至超帶寬丟包消失。
實(shí)施例2
本實(shí)施例提供一種管理鏈路聚合成員端口丟包的裝置,可實(shí)現(xiàn)上述實(shí)施例1的方法,其至少包括如下各單元。
第一檢測(cè)單元,在開(kāi)啟動(dòng)態(tài)管理鏈路聚合成員端口帶寬管理功能后,當(dāng)前模式為靜/動(dòng)態(tài)鏈路聚合模式時(shí),檢測(cè)聚合鏈路中有成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收、發(fā)普通丟包率;
狀態(tài)設(shè)置單元,在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率超過(guò)或 等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的對(duì)端的狀態(tài)設(shè)置為非活動(dòng)狀態(tài),在檢測(cè)到成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),將檢測(cè)到的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài),以及非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限,且非活動(dòng)狀態(tài)的成員端口的對(duì)端在設(shè)定時(shí)長(zhǎng)內(nèi)的收普通丟包率低于設(shè)定門限時(shí),再將該成員端口的狀態(tài)更新為活動(dòng)狀態(tài);
具體地,第一檢測(cè)單元,檢測(cè)到某一成員端口的收普通丟包率超過(guò)或等于設(shè)定門限時(shí),上述狀態(tài)設(shè)置單元,可以通過(guò)LACP將收普通丟包超過(guò)或等于設(shè)定門限的信息通知給對(duì)端的成員端口,以指示對(duì)端將自身的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
第一檢測(cè)單元,檢測(cè)到某一成員端口的發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),狀態(tài)設(shè)置單元,可以分別向檢測(cè)該成員端口的CPU和對(duì)端發(fā)送通知本成員端口發(fā)普通丟包率超過(guò)或等于設(shè)定門限的信息,以指示檢測(cè)到發(fā)普通丟包率超過(guò)或等于設(shè)定門限的成員端口的CPU將自身的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
另外,第一檢測(cè)單元,檢測(cè)到非活動(dòng)狀態(tài)的成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的發(fā)普通丟包率低于設(shè)定門限時(shí),狀態(tài)設(shè)置單元,還可以分別向該成員端口的CPU和對(duì)端通知成員端口發(fā)普通丟包正常的信息,以指示該成員端口的CPU將自身的狀態(tài)更新為活動(dòng)狀態(tài)。
還要說(shuō)明的是,當(dāng)前模式除了包括靜態(tài)鏈路聚合模式和動(dòng)態(tài)鏈路聚合模式以外,還可以包括手工鏈路聚合模式。這樣,在當(dāng)前模式為手工鏈路聚合模式時(shí),狀態(tài)設(shè)置單元,可以在檢測(cè)到鏈路聚合端口中有成員端口在設(shè)定時(shí)長(zhǎng)內(nèi)的收/發(fā)普通丟包率超過(guò)或等于設(shè)定門限時(shí),直接將檢測(cè)到的成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)。
負(fù)荷分擔(dān)單元,在有任一或幾個(gè)成員端口的狀態(tài)設(shè)置為非活動(dòng)狀態(tài)時(shí),根據(jù)負(fù)荷分擔(dān)策略在除非活動(dòng)狀態(tài)的成員端口以外的剩余鏈路中重新計(jì)算報(bào)文發(fā)送的端口,以及在非活動(dòng)狀態(tài)的成員端口更新為活動(dòng)狀態(tài)時(shí),重新計(jì)算報(bào)文發(fā)送的端口。
除了考慮收、發(fā)普通丟包問(wèn)題外,本實(shí)施例的優(yōu)選方案還考慮到了,成 員端口收、發(fā)超帶寬丟包的問(wèn)題。此時(shí),在上述裝置的基礎(chǔ)上,可以增加第二檢測(cè)單元和超帶寬丟包處理單元。
其中,第二檢測(cè)單元,檢測(cè)鏈路聚合端口中是否有成員端口收、發(fā)超帶寬丟包;
超帶寬丟包處理單元,在檢測(cè)到有成員端口收超帶寬丟包時(shí),通過(guò)LACP協(xié)議將該成員端口收超帶寬丟包的信息通知給對(duì)端,以指示對(duì)端消除成員端口收超帶寬丟包的問(wèn)題,以及在檢測(cè)到成員端口發(fā)超帶寬丟包時(shí),通過(guò)LACP協(xié)議將該成員端口發(fā)超帶寬丟包的信息通知給該成員端口的CPU,以指示該成員端口的CPU消除發(fā)超帶寬丟包的問(wèn)題。
另外,超帶寬丟包處理單元,在收到對(duì)端的成員端口收超帶寬丟包的信息時(shí),則可以判斷本成員端口是否同時(shí)是某些業(yè)務(wù)重定向的目的端口,如果是其他業(yè)務(wù)重定向的目的端口,則需要將本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口,以消除對(duì)端的成員端口收超帶寬丟包的問(wèn)題,若本成員端口上的業(yè)務(wù)重定向到其他帶寬利用率低的端口后,仍未消除對(duì)端的成員端口收超帶寬丟包的問(wèn)題,則可以以合適的hash key,比如VLAN,做特征值class id,用ACL將本成員端口上的業(yè)務(wù)到帶寬重定向利用率最低的端口,重復(fù)重定向動(dòng)作直至消除對(duì)端的成員端口收超帶寬丟包的問(wèn)題。
本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本申請(qǐng)不限制于任何特定形式的硬件和軟件的結(jié)合。
以上所述,僅為本發(fā)明的較佳實(shí)例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。