動態分配虛埠VPLS轉發防錯方法及系統與流程
2023-08-03 09:57:01 1

本發明涉及vpls網絡模型領域,具體是涉及一種動態分配虛埠vpls轉發防錯方法及系統。
背景技術:
vpls(virtualprivatelanservic,虛擬專用區域網業務)網絡模型中,基於vp(virtualport,虛埠)的mac(mediaaccesscontrol,介質訪問控制)地址學習和業務數據轉發是基礎,需要保證用戶間通信的準確性。在動態的vpls業務場景中,業務場景的變化會導致業務及業務中vp的動態刪除和增加。
典型的業務場景是兩個通信設備之間創建兩條vpls業務,支持vp的動態刪除和增加。vpls的mac地址學習表項內容為mac地址和vp之間建立的映射關係。圖1為基本網絡拓撲模型的結構示意圖,如圖所示兩個vpls復用同一個物理鏈路。圖1中通信設備a和通信設備b之間的通信鏈路發生瞬間閃斷時,鏈路的保護機制會通知控制層面進行vpls業務中vp的快速刪除和增加;同時故障過程持續時間短,即使對於有基於vp的撤銷機制模型,由於刪除和增加時間短,也會存在瞬時轉發錯誤現象,不能避免通信的不準確、不可靠現象。故障過程可分為如下步驟舉例說明:
一、鏈路閃斷之前,vpid1屬於vsi1(virtualswitchinstance,虛擬交換實例)中成員,vsi1表示vpls的索引id1;vpid2屬於vsi2中成員,vsi2表示vpls的索引id2。mac地址表中學習到的條目如下:
vsi1+mac1-->vpid1
vsi2+mac2-->vpid2
二、鏈路閃斷之後沒有恢復之前,控制層面刪除了vsi1中的成員vpid1、vsi2中的vpid2,同時回收vpid資源;此時mac地址表沒有快速撤銷機制,mac地址表中學習到的條目保持不變,如下:
vsi1+mac1-->vpid1
vsi2+mac2-->vpid2
三、鏈路閃斷之後恢復後,控制層面重新創建了這兩條vpls中vp成員,但分配的vpid資源有變化,vpid1屬於vsi2,vpid2屬於vsi1;由於故障時間短,mac地址表中的學習到的條目尚未老化或者更新,導致之前學習到的條目依然保持不變,如下:
vsi1+mac1-->vpid1
vsi2+mac2-->vpid2
到了步驟三,發現此時轉發出現了問題,數據通過查詢mac地址表後,vsi1+mac1的數據流從vpid1發送出去,而此時vpid1為vsi2中成員;vsi2+mac2的數據流從vpid2發送出去,而此時vpid2為vsi1中成員;至此,兩個不同vpls業務之間的數據流發生了串流情況,轉發出錯。因此,如何實現vpls業務的成員vp動態刪除和增加時,mac地址表中對應的條目沒有刪除或者更新情況下,不同vpls業務間數據流不出現串流問題,具有很重要的研究價值。
技術實現要素:
本發明的目的是為了克服上述背景技術的不足,提供一種動態分配虛埠vpls轉發防錯方法及系統。本發明的轉發層能夠識別出vpls中vp存在重新創建過程,進而保證轉發正確,不發生串流情況,為用戶間通信準確性、可靠性等方面提供可預期的服務。
本發明提供一種動態分配虛埠vpls轉發防錯方法,包括如下步驟:
a、在虛埠vp表中增加用於轉發防錯的等級level欄位;
b、虛擬專用區域網業務vpls申請成員vp表,分配對應的vp表的索引vpid;
根據分配的vpid讀出對應的vp表,保存讀出vp表的level欄位的值;
在讀出vp表的level欄位的值的基礎上增加固定整數後,再將level欄位的值寫入vpid對應的vp表中的level欄位中;
c、vpls進行源mac地址學習得到源vpid,將源vpid寫入mac地址表,然後將vp表中level欄位的值讀出,寫入mac地址表中的vp等級vp_level欄位;
d、vpls查找mac地址表,獲得轉發目的vpid,讀出查找到的mac地址表中vp_level欄位的值;
讀出獲得的轉發目的vpid,查找vp表,獲得vp表中的level欄位的值,比較vp_level欄位的值和level欄位的值;
若結果不相等,業務轉發數據在vpls內廣播轉發,直至mac地址表更新為止;若結果相等,業務轉發數據從獲得的轉發目的vpid中轉發出去。
在上述技術方案的基礎上,步驟a和步驟b之間,還包括以下步驟:將vp表中level欄位的值初始化設為0。
在上述技術方案的基礎上,步驟b中所述在讀出vp表的level欄位的值的基礎上增加固定整數數值的具體過程為:將level欄位的值加1後寫入vpid對應的vp表中的level欄位,並在vpls動態分配vp表的過程中循環累加。
在上述技術方案的基礎上,步驟c中所述vpls進行源mac地址學習得到源vpid的具體過程為:vpls進行源mac地址學習,通過源mac和虛擬交換實例vsi學習得到源vpid,vsi為vpls的索引id。
在上述技術方案的基礎上,步驟d中所述vpls查找mac地址表,獲得轉發目的vpid的具體過程為:所述vpls根據vsi和目的mac地址查找mac地址表,獲得轉發目的vpid。
在上述技術方案的基礎上,步驟d之後,還包括如下步驟:
e:vpls刪除成員vp表,讀取刪除vp表的vpid對應的表項,保存讀出的level欄位;然後將vp表中所有欄位清零;再將保存的level欄位的值寫入該vp表中level欄位。
在上述技術方案的基礎上,步驟e之後,還包括如下步驟:
f:回收mac地址表,將vp表對應的mac地址表所有欄位清零;再將mac地址表中vp_level欄位清零。
本發明還提供一種動態分配虛埠vpls轉發防錯系統,用於轉發分布式設備之間虛擬專用區域網業務vpls的業務,該系統包括vpls處理模塊、vp表處理模塊、mac地址學習模塊、業務防錯轉發模塊、vp表回收更新模塊、mac地址表回收模塊;
所述vpls處理模塊用於:申請成員vp表,分配vp表的索引vpid,並建立mac地址表和vp表之間的映射關係;
所述vp表處理模塊用於:在vp表中增加等級level欄位,並在vpls動態分配vp表的過程中改變level欄位的值;
所述mac地址學習模塊用於:將vp表中level欄位的值讀出,寫入mac地址表中的vp等級vp_level欄位;
所述業務防錯轉發模塊用於:比較mac地址表中vp_level欄位的值和vp表中的level欄位的值,將業務轉發數據從轉發目的vpid轉發出去;
所述vp表回收更新模塊用於:回收vp表資源,保存讀出的vp表中的level欄位後,將vp表中所有欄位清零;
所述mac地址表回收模塊用於:將vp表對應的mac地址表所有欄位清零,並將mac地址表中vp_level欄位清零。
在上述技術方案的基礎上,所述vp表處理模塊將level欄位的值初始化設為0,在vpls動態分配vp表的過程中,將通過vp表回收更新模塊保存的level欄位的值加1後寫入vp表中,並循環累加。
在上述技術方案的基礎上,所述mac地址學習模塊通過源mac和虛擬交換實例vsi學習得到源vpid,將源vpid寫入mac地址表,其中,vsi為vpls的索引id;所述vpls處理模塊根據目的mac地址和虛擬交換實例vsi查找mac地址表,獲得轉發目的vpid。
與現有技術相比,本發明的優點如下:本發明的轉發層能夠識別出vpls中vp存在重新創建過程,進而保證轉發正確,不發生串流情況。
本發明在vp表中增加屬性level欄位;該level值硬體初始化為0,每次vp資源在刪除後重新分配,保留刪除前vp中level值,重新分配後在該保留level值基礎上加1寫到vp表中,循環累加。
mac地址學習時,需要將vp屬性中level欄位的值寫到mac地址表中;vpls在進行查找mac地址錶轉發時,將mac地址表中vp_level欄位的值,evel1和目的vp表中leve2值進行比較,相等轉發,不相等在vpls內廣播,直至mac地址表更新為止,保證業務轉發正確。
本發明能夠支持動態的vpls業務模型,能夠實時反映實際的業務應用場景,為用戶間通信準確性、可靠性等方面提供可預期的服務。
附圖說明
圖1為基本網絡拓撲模型的結構示意圖。
圖2為本發明實施例動態分配虛埠vpls轉發防錯方法的處理流程圖。
圖3為本發明實施例動態分配虛埠vpls轉發防錯方法的vp表初始化的處理流程圖。
圖4為本發明實施例動態分配虛埠vpls轉發防錯方法的vpls分配vp表的處理流程圖。
圖5為本發明實施例動態分配虛埠vpls轉發防錯方法的vpls進行mac地址學習處理流程圖。
圖6為本發明實施例動態分配虛埠vpls轉發防錯方法的vpls業務轉發防錯的處理流程圖。
圖7為本發明實施例動態分配虛埠vpls轉發防錯方法的回收vp表的處理流程圖。
圖8為本發明實施例動態分配虛埠vpls轉發防錯方法的回收mac地址表的處理流程圖。
圖9為本發明實施例動態分配虛埠vpls轉發防錯系統的結構框圖。
具體實施方式
下面結合附圖及具體實施例對本發明作進一步的詳細描述。
參見圖1所示,為基本網絡拓撲模型的結構示意圖,在背景技術中已經詳細說明,在此不再贅述。
參見圖2所示,本發明實施例提供一種分布式設備動態分配虛埠vpls轉發防錯方法,包括如下步驟:
s1:虛埠vp表初始化;
s2:虛擬專用區域網業務vpls分配vp表;
s3:vpls進行介質訪問控制mac地址學習後寫入mac地址表;
s4:vpls業務轉發防錯;
s5:回收vp表資源,用於後續動態分配使用;
s6:回收mac地址表,用於後續繼續轉發防錯使用。
參見圖3所示,步驟s1具體包括如下步驟:
s101:業務轉發硬體板卡上電,在vp表中增加用於轉發防錯的等級level欄位;
s102:vp表中level欄位的值初始化設為0。
參見圖4所示,步驟s2具體包括如下步驟:
s201:vpls申請成員vp表,分配對應的vp表的索引vpid;
s202:根據分配的vpid讀出對應的vp表,保存讀出vp表的level欄位的值;
s203:在讀出vp表的level欄位的值的基礎上加1後,再將level欄位的值寫入vpid對應的vp表中的level欄位中。
本實施例中,將level欄位的值加1後寫入vpid對應的vp表中的level欄位,並在vpls動態分配vp表的過程中循環累加,level欄位的值不同用於表明vp表是新分配的。在實際應用中,vp表中level欄位的值初始化也可以設為1、2、3等不同的數值,在vpls動態分配vp表的過程,level欄位的值也可以同理加上1、2、3等其他數值。
參見圖5所示,步驟s3具體包括如下步驟:
s301:vpls進行源mac地址學習,通過源mac和虛擬交換實例vsi學習得到源vpid,將源vpid寫入mac地址表,vsi為vpls的索引id。
s302:將vp表中level欄位的值讀出,寫入mac地址表中vp等級vp_level欄位;
參見圖6所示,步驟s4具體包括如下步驟:
s401:vpls根據vsi和目的mac地址查找mac地址表,獲得轉發目的vpid;
s402:讀出查找到的mac地址表中vp_level欄位的值,記為level1;
s403:讀出獲得的轉發目的vpid,查找vp表,獲得vp表中的level欄位的值,記為level2;
s404:比較level1和level2的值,若比較的結果不相等,轉到s405,若比較的結果相等,轉到s406;
s405:業務轉發數據在vpls內廣播轉發,直至mac地址表更新為止;
s406:業務轉發數據從獲得的轉發目的vpid中轉發出去。
參見圖7所示,步驟s5具體包括如下步驟:
s501:vpls刪除成員vp表,讀取刪除vp表的vpid對應的表項,保存讀出的level欄位;
s502:將vp表中所有欄位清零;
s503:將步驟s501中保存的level欄位的值寫入該vp表中level欄位。
參見圖8所示,步驟s6具體包括如下步驟:
s601:回收mac地址表,將vp表對應的mac地址表所有欄位清零;
s602:mac地址表中vp_level欄位清零。
參見圖9所示,本發明實施例還提供一種動態分配虛埠vpls轉發防錯系統,用於轉發分布式設備之間虛擬專用區域網業務vpls的業務,該系統包括vpls處理模塊、vp表處理模塊、mac地址學習模塊、業務防錯轉發模塊、vp表回收更新模塊、mac地址表回收模塊;
所述vpls處理模塊用於:申請成員vp表,分配vp表的索引vpid,並建立mac地址表和vp表之間的映射關係;
所述vp表處理模塊用於:在vp表中增加等級level欄位,並在vpls動態分配vp表的過程中改變level欄位的值;
所述mac地址學習模塊用於:將vp表中level欄位的值讀出,寫入mac地址表中的vp等級vp_level欄位;
所述業務防錯轉發模塊用於:比較mac地址表中vp_level欄位的值和vp表中的level欄位的值,將業務轉發數據從轉發目的vpid轉發出去;
所述vp表回收更新模塊用於:回收vp表資源,保存讀出的vp表中的level欄位後,將vp表中所有欄位清零;
所述mac地址表回收模塊用於:將vp表對應的mac地址表所有欄位清零,並將mac地址表中vp_level欄位清零。
其中,vpid用於查找並讀出對應的vp表,level欄位用於vpls業務間數據流的轉發防錯。
在本實施例中,所述vp表處理模塊將level欄位的值初始化設為0,在vpls動態分配vp表的過程中,將通過vp表回收更新模塊保存的level欄位的值加1後寫入vp表中,並循環累加。在實際應用中,vp表中level欄位的值初始化也可以設為1、2、3等不同的數值,在vpls動態分配vp表的過程,level欄位的值也可以同理加上1、2、3等其他數值。在實際應用中,vp表中level欄位的值初始化也可以設為1、2、3等不同的數值,在vpls動態分配vp表的過程,level欄位的值也可以同理加上1、2、3等其他數值。
在本實施例中,所述mac地址學習模塊通過源mac和虛擬交換實例vsi學習得到源vpid,將源vpid寫入mac地址表,其中,vsi為vpls的索引id;所述vpls處理模塊根據目的mac地址和虛擬交換實例vsi查找mac地址表,獲得轉發目的vpid。
本領域的技術人員可以對本發明實施例進行各種修改和變型,倘若這些修改和變型在本發明權利要求及其等同技術的範圍之內,則這些修改和變型也在本發明的保護範圍之內。
說明書中未詳細描述的內容為本領域技術人員公知的現有技術。