專利名稱:轉(zhuǎn)發(fā)端口快速切換的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種轉(zhuǎn)發(fā)端口快速切換的方法及裝置。
背景技術(shù):
VPLS(Virtual Private Lan Services,虛擬專用局域網(wǎng)業(yè)務(wù))是一種典型的二層 VPN(VirtualPrivate Network,虛擬專用網(wǎng)絡(luò))應(yīng)用,基于以太網(wǎng),在邊緣設(shè)備之間,提供基于二層多點(diǎn)連接的網(wǎng)絡(luò)服務(wù)。從CE(CuStom Edge,用戶邊緣設(shè)備)的角度來(lái)看,整個(gè)提供 VPLS服務(wù)的網(wǎng)絡(luò)是不可見(jiàn)的,就好像這些CE直接連接在一個(gè)邏輯的交換機(jī)上一樣。但實(shí)際上,CE是與VPLS網(wǎng)絡(luò)中的PE(Provider Edge Router,骨干網(wǎng)上的邊緣路由器)相連, PE主要負(fù)責(zé)VPN業(yè)務(wù)的接入,它完成了報(bào)文從私網(wǎng)到公網(wǎng)隧道、從公網(wǎng)隧道到私網(wǎng)的映射與轉(zhuǎn)發(fā)。在VPLS網(wǎng)絡(luò)中,需要對(duì)接收的報(bào)文進(jìn)行轉(zhuǎn)發(fā)。當(dāng)一個(gè)PE從公網(wǎng)隧道收到報(bào)文時(shí), 根據(jù)該報(bào)文中的目的MAC (Media Access Control,介質(zhì)訪問(wèn)控制)地址和VSI (Virtual Switchhstance,虛擬交換實(shí)例),在MAC表中查找相匹配的表項(xiàng),并根據(jù)查找到的表項(xiàng)中的目的出端口信息把該報(bào)文從對(duì)應(yīng)的目的出端口發(fā)送給CE,完成報(bào)文的轉(zhuǎn)發(fā)。但是,在將報(bào)文轉(zhuǎn)發(fā)給某個(gè)CE之前,如果該CE更換了端口,例如該CE從端口 1更換到端口 2時(shí),如果 MAC表中相應(yīng)的表項(xiàng)沒(méi)有被刪除,就會(huì)造成一個(gè)老化周期的流量不通,即PE還會(huì)將該報(bào)文從端口 1轉(zhuǎn)發(fā)出去,而與端口 2連接的該CE接收不到該報(bào)文。MAC表的老化,是指每隔一個(gè)老化周期就檢查MAC表中的表項(xiàng)是否有需要?jiǎng)h除的,MAC表的老化周期一般為3分鐘。為了解決上述問(wèn)題,現(xiàn)有技術(shù)中當(dāng)CE從端口 1更換到端口 2時(shí),端口 1從該VSI 退出,遍歷MAC表,查找目的出端口為端口 1的表項(xiàng),并刪除查找到的表項(xiàng),這時(shí)PE在轉(zhuǎn)發(fā)報(bào)文時(shí)就會(huì)找不到相匹配的表項(xiàng),從而將該報(bào)文在該VSI內(nèi)廣播,即對(duì)屬于該VSI的除該報(bào)文的入端口之外的所有端口都發(fā)送一份該報(bào)文,這樣更換到端口 2的CE就能收到該報(bào)文。 現(xiàn)有技術(shù)是通過(guò)刪除屬于切換前端口的MAC表項(xiàng),盡可能快地恢復(fù)業(yè)務(wù)流量。在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題現(xiàn)有技術(shù)中,當(dāng)整個(gè)MAC表的表項(xiàng)少時(shí),查找并刪除退出的端口的表項(xiàng)用時(shí)少,流量恢復(fù)較快,但是當(dāng)MAC表中的表項(xiàng)很多(如64K)時(shí),查找并刪除退出的端口的表項(xiàng)會(huì)占用CPU相當(dāng)長(zhǎng)的時(shí)間,導(dǎo)致這段時(shí)間內(nèi)業(yè)務(wù)流量中斷,對(duì)大容量業(yè)務(wù)規(guī)格來(lái)說(shuō),該技術(shù)不太可行。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種轉(zhuǎn)發(fā)端口快速切換的方法及裝置。所述技術(shù)方案如下一方面,提供了一種轉(zhuǎn)發(fā)端口快速切換的方法,所述方法包括接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取所述報(bào)文攜帶的目的介質(zhì)訪問(wèn)控制MAC地址和虛擬交換實(shí)例VSI ;
在MAC表中查找是否存在與所述目的MAC地址和所述VSI相匹配的表項(xiàng),如果是, 則在VSI表中查找與所述VSI相匹配的表項(xiàng);判斷查找到的所述MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的所述VSI表的表項(xiàng)中的校驗(yàn)碼是否相同,如果不同,則在所述VSI內(nèi)廣播所述報(bào)文。另一方面,提供了一種轉(zhuǎn)發(fā)端口快速切換的裝置,所述裝置包括獲取模塊,用于接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取所述報(bào)文攜帶的目的介質(zhì)訪問(wèn)控制 MAC地址和虛擬交換實(shí)例VSI ;查找模塊,用于在MAC表中查找是否存在與所述獲取模塊獲取的所述目的MAC地址和所述VSI相匹配的表項(xiàng),如果是,則在VSI表中查找與所述VSI相匹配的表項(xiàng);判斷模塊,用于判斷所述查找模塊查找到的所述MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的所述VSI表的表項(xiàng)中的校驗(yàn)碼是否相同;廣播模塊,用于當(dāng)所述判斷模塊判斷校驗(yàn)碼不同時(shí),在所述VSI內(nèi)廣播所述報(bào)文。本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是通過(guò)在轉(zhuǎn)發(fā)報(bào)文時(shí)如果發(fā)現(xiàn)查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同,則不再按照查找到的MAC表項(xiàng)中的目的出端口信息轉(zhuǎn)發(fā)報(bào)文,而是將報(bào)文在該VSI域內(nèi)廣播出去,使報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,業(yè)務(wù)不會(huì)中斷,解決了現(xiàn)有VPLS網(wǎng)絡(luò)中,大量用戶切換端口后,短時(shí)間流量不通的問(wèn)題。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一提供的轉(zhuǎn)發(fā)端口快速切換的方法流程圖;圖2是本發(fā)明實(shí)施例二提供的切換前VPLS網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例二提供的切換后VPLS網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例二提供的VSI表和MAC表處理方法流程圖;圖5是本發(fā)明實(shí)施例二提供的轉(zhuǎn)發(fā)端口快速切換的方法流程圖;圖6是本發(fā)明實(shí)施例三提供的轉(zhuǎn)發(fā)端口快速切換的裝置結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例三提供的另一種轉(zhuǎn)發(fā)端口快速切換的裝置結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例三提供的又一種轉(zhuǎn)發(fā)端口快速切換的裝置結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例三提供的再一種轉(zhuǎn)發(fā)端口快速切換的裝置結(jié)構(gòu)示意圖;圖10是本發(fā)明實(shí)施例三提供的再一種轉(zhuǎn)發(fā)端口快速切換的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例一本發(fā)明實(shí)施例提供了一種轉(zhuǎn)發(fā)端口快速切換的方法,參見(jiàn)圖1,方法流程包括
101 接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取該報(bào)文攜帶的目的MAC地址和VSI ;102 在MAC表中查找是否存在與該目的MAC地址和VSI相匹配的表項(xiàng),如果是,則執(zhí)行步驟103,否則,執(zhí)行步驟106 ;103 在VSI表中查找與上述VSI相匹配的表項(xiàng);104 判斷查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼是否相同,如果相同,則執(zhí)行步驟105,如果校驗(yàn)碼不同,執(zhí)行步驟106 ;105 根據(jù)查找到的MAC表的表項(xiàng)中的目的出端口信息,將該報(bào)文從該目的出端口轉(zhuǎn)發(fā)給CE,流程結(jié)束;106 在上述VSI內(nèi)廣播該報(bào)文。本發(fā)明實(shí)施例提供的方法,通過(guò)在轉(zhuǎn)發(fā)報(bào)文時(shí)如果發(fā)現(xiàn)查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同,則不再按照查找到的MAC表項(xiàng)中的目的出端口信息轉(zhuǎn)發(fā)報(bào)文,而是將報(bào)文在該VSI域內(nèi)廣播出去,使報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,業(yè)務(wù)不會(huì)中斷,解決了現(xiàn)有VPLS網(wǎng)絡(luò)中,大量用戶切換端口后,短時(shí)間流量不通的問(wèn)題。實(shí)施例二本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是,在VPLS網(wǎng)絡(luò)中,當(dāng)CE更換端口后,在相應(yīng) MAC表項(xiàng)沒(méi)有被及時(shí)刪除時(shí),如何能夠快速切換轉(zhuǎn)發(fā)端口,且業(yè)務(wù)流量不中斷。如圖2所示,在VPLS網(wǎng)絡(luò)中,CEl和CE2同屬于VSI 1,建立鏈路AC1。若PE2上的MAC表中已經(jīng)存在到CE2的表項(xiàng),在CEl到發(fā)送給CE2的報(bào)文到達(dá)PE2時(shí),根據(jù)該報(bào)文中攜帶的VSI 1和目的MAC地址查詢MAC表,得到目的出端口為Portl,然后封裝報(bào)文,將該報(bào)文通過(guò)Portl發(fā)送到CE2,完成PE2上的報(bào)文轉(zhuǎn)發(fā)。當(dāng)CE2上的用戶切換到CE3上時(shí),如圖3所示,轉(zhuǎn)發(fā)報(bào)文的端口從Portl切換到 Port2, Portl退出VSI 1。因?yàn)榱髁砍掷m(xù)存在,MAC表不會(huì)被老化;Portl退出VSI 1的動(dòng)作對(duì)于設(shè)備的控制平面此操作是可見(jiàn)的,可以逐條刪除屬于Portl的MAC表的表項(xiàng)。但是在MAC表還未被刪除且Portl狀態(tài)是UP (工作中)的情況下,報(bào)文會(huì)通過(guò)Portl持續(xù)轉(zhuǎn)發(fā)到達(dá)CE2,而不會(huì)到達(dá)CE3,直到原先的MAC表被刪除,造成這段時(shí)間內(nèi)CE3上的用戶流量不通。為了解決CE更換端口后,在相應(yīng)MAC表項(xiàng)沒(méi)有被及時(shí)刪除的時(shí)間內(nèi)業(yè)務(wù)流量不通的問(wèn)題,本發(fā)明實(shí)施例提供了一種轉(zhuǎn)發(fā)端口快速切換的方法在進(jìn)行報(bào)文轉(zhuǎn)發(fā)之前,PE對(duì)VPLS網(wǎng)絡(luò)中的控制平面上的VSI表和轉(zhuǎn)發(fā)平面上的 MAC表做了一些處理,參見(jiàn)圖4,方法流程包括401 在VSI表和MAC表中均增加一個(gè)校驗(yàn)碼字段;具體地,在VSI表和MAC表的每一個(gè)表項(xiàng)中都增加一個(gè)校驗(yàn)碼字段,用于記錄校驗(yàn)碼。402 當(dāng)VSI實(shí)例創(chuàng)建時(shí),在VSI表的該VSI實(shí)例的表項(xiàng)中生成一個(gè)校驗(yàn)碼;具體地,控制平面上的VSI表的索引可以為具體的VSI,例如VSI UVSI 2、……、 VSIN等,各索引對(duì)應(yīng)的數(shù)據(jù)可以為校驗(yàn)碼,還可以包括MAC學(xué)習(xí)的上限等其它數(shù)據(jù)。校驗(yàn)碼的設(shè)置可以有多種形式,本發(fā)明實(shí)施例假設(shè)VSI實(shí)例創(chuàng)建時(shí)生成的初始校驗(yàn)碼為O。403 在MAC表的學(xué)習(xí)過(guò)程中,將VSI表中的校驗(yàn)碼一起學(xué)習(xí)到該MAC表中,保證同一 VSI域內(nèi)的MAC表中的校驗(yàn)碼與VSI表中的校驗(yàn)碼相同。
具體地,轉(zhuǎn)發(fā)平面在進(jìn)行MAC表的學(xué)習(xí)時(shí),需要將控制平面上的VSI表中的校驗(yàn)碼記錄到MAC表中相應(yīng)的VSI表項(xiàng)中,保證同一 VSI域內(nèi)的MAC表中的校驗(yàn)碼與VSI表中的校驗(yàn)碼相同,用于表示MAC表中與該VSI相關(guān)的表項(xiàng)有效。進(jìn)一步地,當(dāng)有端口從VSI實(shí)例退出時(shí),刷新VSI表中與該VSI實(shí)例對(duì)應(yīng)的表項(xiàng)中的校驗(yàn)碼,使其與刷新之前的校驗(yàn)碼不同,例如將0改為1,用于標(biāo)識(shí)該VSI實(shí)例中有端口退出,以使得當(dāng)判斷出查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同時(shí),認(rèn)為該MAC表中與該VSI相關(guān)的表項(xiàng)過(guò)期。過(guò)期時(shí)需要在該VSI內(nèi)廣播要轉(zhuǎn)發(fā)的報(bào)文,并觸發(fā)MAC表的重新學(xué)習(xí)。進(jìn)一步地,結(jié)合圖2和圖3,在有用戶切換端口時(shí),參見(jiàn)圖5,PE轉(zhuǎn)發(fā)端口快速切換的方法如下501 接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取該報(bào)文攜帶的目的MAC地址和VSI ;如圖3中的PE2接收由CEl發(fā)送的、經(jīng)PEl傳送過(guò)來(lái)的報(bào)文,收到報(bào)文后,獲取該報(bào)文所屬的VSI和要轉(zhuǎn)發(fā)到的目的MAC地址。以圖3為例該報(bào)文的VSI為VSI 1。502 在MAC表中查找是否存在與該目的MAC地址和VSI相匹配的表項(xiàng),如果是,則執(zhí)行步驟503,否則,執(zhí)行步驟506 ;具體地,可以以目的MAC地址+VSI為索弓丨,遍歷MAC表,查找與該目的MAC地址 +VSI相匹配的表項(xiàng),如果找得到,說(shuō)明之前已經(jīng)將該MAC地址學(xué)習(xí)到了 MAC表中,接著執(zhí)行步驟503,如果沒(méi)找到,說(shuō)明還未學(xué)習(xí)該MAC地址,無(wú)法知道具體從哪個(gè)端口轉(zhuǎn)發(fā)出去,則執(zhí)行步驟506,即在該VSI內(nèi)將該報(bào)文廣播出去。503 在VSI表中查找與上述VSI相匹配的表項(xiàng);504 判斷查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼是否相同,如果相同,則執(zhí)行步驟505,如果校驗(yàn)碼不同,執(zhí)行步驟506 ;具體地,獲取查找到的MAC表的表項(xiàng)中的校驗(yàn)碼和查找到的VSI表的表項(xiàng)中的校驗(yàn)碼,并比較兩個(gè)校驗(yàn)碼是否相同,如果相同,則說(shuō)明該VSI域內(nèi)沒(méi)有發(fā)生端口切換的現(xiàn)象,端口信息未改變,即MAC表中與該VSI相關(guān)的信息有效,可以使用;如果不同,則說(shuō)明該 VSI域內(nèi)的端口發(fā)生可變化,MAC表中與該VSI相關(guān)的信息過(guò)期,不能再使用。505 根據(jù)查找到的MAC表的表項(xiàng)中的目的出端口信息,將該報(bào)文從該目的出端口轉(zhuǎn)發(fā)給CE,流程結(jié)束;具體地,如果校驗(yàn)碼相同,說(shuō)明查找到的MAC表的表項(xiàng)中的信息有效,那么就可以從查找到的MAC表項(xiàng)中獲取目的出端口信息,將該報(bào)文從該目的出端口轉(zhuǎn)發(fā)給CE。例如圖 2中的CE2在切換之前,PE2就可以通過(guò)查找MAC表進(jìn)而將報(bào)文通過(guò)Portl發(fā)送到CE2。506 在上述VSI內(nèi)廣播該報(bào)文;具體地,如果校驗(yàn)碼不同,說(shuō)明查找到的MAC表的表項(xiàng)中的信息過(guò)期,不能再使用其中的目的出端口信息,那么就將該報(bào)文在該VSI內(nèi)廣播出去,使需要接收該報(bào)文的CE能夠及時(shí)收到該報(bào)文,業(yè)務(wù)不會(huì)中斷。例如圖3中CE2上的用戶從CE2切換到CE3時(shí),Portl 退出VSI l,Port2加入VSI 1,此時(shí),控制平面刷新VSI表中VSI 1對(duì)應(yīng)的表項(xiàng)中的校驗(yàn)碼,使其與刷新之前的校驗(yàn)碼不同,例如將0改為1,而未進(jìn)行學(xué)習(xí)的MAC表中的與VSI 1相關(guān)表項(xiàng)中的校驗(yàn)碼未改變,例如還是0,因此查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的 VSI表的表項(xiàng)中的校驗(yàn)碼不同,說(shuō)明查找到的MAC表的表項(xiàng)中的信息過(guò)期,目的出端口已經(jīng)不再是表項(xiàng)中記錄的Portl,因此為了使業(yè)務(wù)不中斷,報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,就將報(bào)文在VSI 1內(nèi)廣播出去。507 重新學(xué)習(xí)該VSI域內(nèi)的目的MAC地址和對(duì)應(yīng)的目的出端口信息,以及VSI表的對(duì)應(yīng)表項(xiàng)中的校驗(yàn)碼;具體地,由于MAC表中與該VSI相關(guān)的表項(xiàng)已經(jīng)過(guò)期,或者,步驟502在MAC表中沒(méi)有查找到與目的MAC地址和VSI相匹配的表項(xiàng),那么在VSI內(nèi)廣播該報(bào)文后,觸發(fā)MAC表重學(xué)習(xí)功能,重新學(xué)習(xí)該VSI域內(nèi)的目的MAC地址和對(duì)應(yīng)的目的出端口信息,以及VSI表中對(duì)應(yīng)表項(xiàng)的校驗(yàn)碼。例如延續(xù)506中的例子,重新學(xué)習(xí)到CE3的目的出端口為Port2,校驗(yàn)碼為1。508 用重新學(xué)習(xí)到的目的MAC地址、目的出端口信息和校驗(yàn)碼覆蓋原有MAC表中相應(yīng)的表項(xiàng)。具體地,將重新學(xué)習(xí)到的MAC地址、目的出端口信息和校驗(yàn)碼添加到MAC表中,事先已經(jīng)存在相應(yīng)表項(xiàng)的則替換相應(yīng)表項(xiàng)中的內(nèi)容。進(jìn)一步地,當(dāng)再有端口退出時(shí),則再次修改VSI表中相應(yīng)的校驗(yàn)碼,例如圖3中的用戶又從CE3切換到CE2時(shí),將VSI表中VSI 1表項(xiàng)的校驗(yàn)碼刷新為0。本發(fā)明實(shí)施例提供的方法,通過(guò)在VSI表和MAC表中同時(shí)增加一個(gè)校驗(yàn)碼字段, MAC表學(xué)習(xí)VSI表中的校驗(yàn)碼,當(dāng)一個(gè)VSI內(nèi)有用戶切換端口時(shí),通過(guò)修改VSI表中相應(yīng)表項(xiàng)的校驗(yàn)碼來(lái)標(biāo)識(shí)MAC表中的相關(guān)表項(xiàng)已經(jīng)過(guò)期,這樣在轉(zhuǎn)發(fā)報(bào)文時(shí)如果發(fā)現(xiàn)查找到的 MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同,則不再按照查找到的 MAC表項(xiàng)中的目的出端口信息轉(zhuǎn)發(fā)報(bào)文,而是將報(bào)文在該VSI域內(nèi)廣播出去,使報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,業(yè)務(wù)不會(huì)中斷,解決了現(xiàn)有VPLS網(wǎng)絡(luò)中,大量用戶切換端口后,短時(shí)間流量不通的問(wèn)題,并可以減少瞬間CPU占用率或內(nèi)存占用率,提高切換效率。實(shí)施例三參見(jiàn)圖6,本發(fā)明實(shí)施例提供了一種轉(zhuǎn)發(fā)端口快速切換的裝置,可以用于VPLS網(wǎng)絡(luò)中的PE上,該裝置包括獲取模塊601,用于接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取該報(bào)文攜帶的目的MAC地址和 VSI ;查找模塊602,用于在MAC表中查找是否存在與獲取模塊601獲取的目的MAC地址和VSI相匹配的表項(xiàng),如果是,則在VSI表中查找與該VSI相匹配的表項(xiàng);判斷模塊603,用于判斷查找模塊602查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼是否相同;廣播模塊604,用于當(dāng)判斷模塊603判斷校驗(yàn)碼不同時(shí),在該VSI內(nèi)廣播該報(bào)文。參見(jiàn)圖7,該裝置還包括轉(zhuǎn)發(fā)模塊605,用于當(dāng)判斷模塊603判斷校驗(yàn)碼相同時(shí),根據(jù)查找到的MAC表的表項(xiàng)中的目的出端口信息,將該報(bào)文從該目的出端口轉(zhuǎn)發(fā)給CE。參見(jiàn)圖8,該裝置還包括重學(xué)習(xí)模塊606,用于廣播模塊604在VSI內(nèi)廣播該報(bào)文之后,重新學(xué)習(xí)該VSI域內(nèi)的目的MAC地址和對(duì)應(yīng)的目的出端口信息,以及VSI表的對(duì)應(yīng)表項(xiàng)中的校驗(yàn)碼,并用重新學(xué)習(xí)到的目的MAC地址、目的出端口信息和校驗(yàn)碼覆蓋原有MAC表中相應(yīng)的表項(xiàng)。
參見(jiàn)圖9,該裝置還包括生成模塊607,用于在獲取模塊601接收需要轉(zhuǎn)發(fā)的報(bào)文之前,在VSI表和MAC表中同時(shí)增加一個(gè)校驗(yàn)碼字段;當(dāng)VSI實(shí)例創(chuàng)建時(shí),在VSI表的該VSI實(shí)例的表項(xiàng)中生成一個(gè)校驗(yàn)碼;學(xué)習(xí)模塊608,用于在MAC表的學(xué)習(xí)過(guò)程中,將生成模塊607生成的VSI表中的校驗(yàn)碼一起學(xué)習(xí)到MAC表中,保證同一 VSI域內(nèi)的MAC表中的校驗(yàn)碼與VSI表中的校驗(yàn)碼相同。參見(jiàn)圖10,該裝置還包括刷新模塊609,用于當(dāng)有端口從VSI實(shí)例退出時(shí),刷新VSI表中與該VSI實(shí)例對(duì)應(yīng)的表項(xiàng)中的校驗(yàn)碼,使其與刷新之前的校驗(yàn)碼不同,用于標(biāo)識(shí)該VSI實(shí)例中有端口退出,以使得當(dāng)判斷模塊603判斷出查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同時(shí),認(rèn)為該MAC表過(guò)期。綜上所述,本發(fā)明實(shí)施例通過(guò)在VSI表和MAC表中同時(shí)增加一個(gè)校驗(yàn)碼字段,MAC 表學(xué)習(xí)VSI表中的校驗(yàn)碼,當(dāng)一個(gè)VSI內(nèi)有用戶切換端口時(shí),通過(guò)修改VSI表中相應(yīng)表項(xiàng)的校驗(yàn)碼來(lái)標(biāo)識(shí)MAC表中的相關(guān)表項(xiàng)已經(jīng)過(guò)期,這樣在轉(zhuǎn)發(fā)報(bào)文時(shí)如果發(fā)現(xiàn)查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同,則不再按照查找到的MAC表項(xiàng)中的目的出端口信息轉(zhuǎn)發(fā)報(bào)文,而是將報(bào)文在該VSI域內(nèi)廣播出去,使報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,業(yè)務(wù)不會(huì)中斷,解決了現(xiàn)有VPLS網(wǎng)絡(luò)中,大量用戶切換端口后,短時(shí)間流量不通的問(wèn)題,并可以減少瞬間CPU占用率或內(nèi)存占用率,提高切換效率。需要說(shuō)明的是上述實(shí)施例提供的轉(zhuǎn)發(fā)端口快速切換的裝置在切換轉(zhuǎn)發(fā)端口時(shí), 僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的轉(zhuǎn)發(fā)端口快速切換的裝置與轉(zhuǎn)發(fā)端口快速切換的方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種轉(zhuǎn)發(fā)端口快速切換的方法,其特征在于,所述方法包括接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取所述報(bào)文攜帶的目的介質(zhì)訪問(wèn)控制MAC地址和虛擬交換實(shí)例VSI ;在MAC表中查找是否存在與所述目的MAC地址和所述VSI相匹配的表項(xiàng),如果是,則在 VSI表中查找與所述VSI相匹配的表項(xiàng);判斷查找到的所述MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的所述VSI表的表項(xiàng)中的校驗(yàn)碼是否相同,如果不同,則在所述VSI內(nèi)廣播所述報(bào)文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述VSI內(nèi)廣播所述報(bào)文之后,所述方法還包括重新學(xué)習(xí)所述VSI域內(nèi)的目的MAC地址和對(duì)應(yīng)的目的出端口信息,以及所述VSI表的對(duì)應(yīng)表項(xiàng)中的校驗(yàn)碼,并用重新學(xué)習(xí)到的目的MAC地址、目的出端口信息和校驗(yàn)碼覆蓋所述MAC表中相應(yīng)的表項(xiàng)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,接收需要轉(zhuǎn)發(fā)的報(bào)文之前,所述方法還包括在VSI表和MAC表中均增加一個(gè)校驗(yàn)碼字段;當(dāng)VSI實(shí)例創(chuàng)建時(shí),在所述VSI表的所述VSI實(shí)例的表項(xiàng)中生成一個(gè)校驗(yàn)碼;在MAC表的學(xué)習(xí)過(guò)程中,將所述VSI表中的校驗(yàn)碼一起學(xué)習(xí)到所述MAC表中,保證同一 VSI域內(nèi)的MAC表中的校驗(yàn)碼與VSI表中的校驗(yàn)碼相同。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括當(dāng)有端口從VSI實(shí)例退出時(shí),刷新VSI表中與所述VSI實(shí)例對(duì)應(yīng)的表項(xiàng)中的校驗(yàn)碼,使其與刷新之前的校驗(yàn)碼不同,用于標(biāo)識(shí)所述VSI實(shí)例中有端口退出。
5.根據(jù)權(quán)利要求1至4任一權(quán)利要求所述的方法,其特征在于,判斷查找到的所述MAC 表的表項(xiàng)中的校驗(yàn)碼與查找到的所述VSI表的表項(xiàng)中的校驗(yàn)碼是否相同之后,還包括如果校驗(yàn)碼相同,則根據(jù)查找到的所述MAC表的表項(xiàng)中的目的出端口信息,將所述報(bào)文從所述目的出端口轉(zhuǎn)發(fā)給用戶邊緣設(shè)備。
6.一種轉(zhuǎn)發(fā)端口快速切換的裝置,其特征在于,所述裝置包括獲取模塊,用于接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取所述報(bào)文攜帶的目的介質(zhì)訪問(wèn)控制MAC 地址和虛擬交換實(shí)例VSI ;查找模塊,用于在MAC表中查找是否存在與所述獲取模塊獲取的所述目的MAC地址和所述VSI相匹配的表項(xiàng),如果是,則在VSI表中查找與所述VSI相匹配的表項(xiàng);判斷模塊,用于判斷所述查找模塊查找到的所述MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的所述VSI表的表項(xiàng)中的校驗(yàn)碼是否相同;廣播模塊,用于當(dāng)所述判斷模塊判斷校驗(yàn)碼不同時(shí),在所述VSI內(nèi)廣播所述報(bào)文。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括重學(xué)習(xí)模塊,用于所述廣播模塊在所述VSI內(nèi)廣播所述報(bào)文之后,重新學(xué)習(xí)所述VSI域內(nèi)的目的MAC地址和對(duì)應(yīng)的目的出端口信息,以及所述VSI表的對(duì)應(yīng)表項(xiàng)中的校驗(yàn)碼,并用重新學(xué)習(xí)到的目的MAC地址、目的出端口信息和校驗(yàn)碼覆蓋原有MAC表中相應(yīng)的表項(xiàng)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括生成模塊,用于在所述獲取模塊接收需要轉(zhuǎn)發(fā)的報(bào)文之前,在VSI表和MAC表中均增加一個(gè)校驗(yàn)碼字段;當(dāng)VSI實(shí)例創(chuàng)建時(shí),在所述VSI表的所述VSI實(shí)例的表項(xiàng)中生成一個(gè)校驗(yàn)碼;學(xué)習(xí)模塊,用于在MAC表的學(xué)習(xí)過(guò)程中,將所述生成模塊生成的所述VSI表中的校驗(yàn)碼一起學(xué)習(xí)到所述MAC表中,保證同一 VSI域內(nèi)的MAC表中的校驗(yàn)碼與VSI表中的校驗(yàn)碼相同。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括刷新模塊,用于當(dāng)有端口從VSI實(shí)例退出時(shí),刷新VSI表中與所述VSI實(shí)例對(duì)應(yīng)的表項(xiàng)中的校驗(yàn)碼,使其與刷新之前的校驗(yàn)碼不同,用于標(biāo)識(shí)所述VSI實(shí)例中有端口退出,以使得當(dāng)所述判斷模塊判斷出查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同時(shí),認(rèn)為所述MAC表過(guò)期。
10.根據(jù)權(quán)利要求6至9任一權(quán)利要求所述的裝置,其特征在于,所述裝置還包括轉(zhuǎn)發(fā)模塊,用于當(dāng)所述判斷模塊判斷校驗(yàn)碼相同時(shí),根據(jù)查找到的所述MAC表的表項(xiàng)中的目的出端口信息,將所述報(bào)文從所述目的出端口轉(zhuǎn)發(fā)給用戶邊緣設(shè)備。
全文摘要
本發(fā)明實(shí)施例提供了一種轉(zhuǎn)發(fā)端口快速切換的方法及裝置,涉及通信領(lǐng)域,所述方法包括接收需要轉(zhuǎn)發(fā)的報(bào)文,并獲取該報(bào)文攜帶的目的MAC地址和VSI;在MAC表中查找是否存在與該目的MAC地址和VSI相匹配的表項(xiàng),如果是,則在VSI表中查找與該VSI相匹配的表項(xiàng);判斷查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼是否相同,如果不同,則在該VSI內(nèi)廣播該報(bào)文。本發(fā)明通過(guò)在發(fā)現(xiàn)查找到的MAC表的表項(xiàng)中的校驗(yàn)碼與查找到的VSI表的表項(xiàng)中的校驗(yàn)碼不同時(shí),認(rèn)為MAC表已經(jīng)過(guò)期,從而將報(bào)文在該VSI域內(nèi)廣播出去,使報(bào)文能夠及時(shí)轉(zhuǎn)發(fā)給相應(yīng)的用戶,業(yè)務(wù)不會(huì)中斷。
文檔編號(hào)H04L12/46GK102308539SQ201180001327
公開(kāi)日2012年1月4日 申請(qǐng)日期2011年7月8日 優(yōu)先權(quán)日2011年7月8日
發(fā)明者宣慧 申請(qǐng)人:華為技術(shù)有限公司