一種轉發流量的方法及節點與流程
2023-05-23 13:50:06 2

本發明涉及通信技術領域,尤其涉及一種轉發流量的方法及節點。
背景技術:
在當前數據中心建設中,機房拉遠,資源池化,跨數據中心應用高可用,容災切換自動化以及應用遷移與搬遷的需求都要求數據中心網絡滿足大二層,因此廣泛使用vxlan(virtualextensiblelocalareanetwork,虛擬擴展區域網)技術組網。同時為了提高可靠性、保障業務不中斷,在網關設計時,網關跨分區或跨數據中心雙重部署是最普遍的做法。
vxlan是建立在物理網絡之上的虛擬乙太網,採用macinudp(userdatagramprotocol,)封裝方式,是一種網絡虛擬化技術。通過將vm(virtualmachine,虛擬機)或物理伺服器發出的數據包封裝在udp報文中,並使用物理網絡的ip/mac作為報文頭進行封裝,然後在ip網絡上傳輸,到達目的地後由隧道終結點解封裝並將數據發送給目標虛擬機或物理伺服器,如圖1所示:
vtep(vxlantunnelendpoints,vxlan隧道端點),用於vxlan報文的封裝和解封裝。vtep與物理網絡相連,分配有物理網絡的ip地址,該地址與虛擬網絡無關。
在採用vxlan技術,網關跨分區、跨數據中心多活組網時,業務流量通過此大二層廣播域內節點間建立的隧道轉發,流量模型一般可以簡單分為三種,如圖2所示:第一種是二層東西流量:指二層域內同子網互訪流量,由源和目的vtep間建立隧道轉發;第二種是三層東西流量:指二層域內跨子網互訪流量,由源vtep和業務網關vtep以及業務網關和目的vtep間建立的隧道轉發;第三種是南北流量:指進出此二層域的業務流量,由源vtep和業務 網關vtep間建立隧道轉發到網關,再通過查找路由表獲得到目的地址的轉發路徑。
目前的這種組網運行情形下,vtep不知道選擇下級哪個vtep節點建立隧道進行流量轉發,並且在網關故障時,vtep節點無法快速感知,存在業務中斷風險,極大影響網絡性能以及用戶體驗。
技術實現要素:
本發明實施例提供一種轉發流量的方法及節點,用以解決目前組網運行情形下,普通節點不知道選擇與下級哪個節點建立隧道進行流量轉發,並且在網關故障時,普通節點無法快速感知網關節點,存在業務中斷風險的問題。
第一方面,提供的一種轉發流量的方法,包括:
第一節點與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道,廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同;
第一節點基於第一vxlan隧道向第二節點發送探測報文,並接收第二節點返回的第一確認報文,探測報文用於探測第二節點的運行情況;
第一節點在確定第二節點運行正常之後,基於第一vxlan隧道通過第二節點轉發流量。
結合第一方面,在第一方面的第一種可能的實現方式中,還包括:
第一節點獲取分級廣播域表,分級廣播域表包括節點信息,節點信息包括流量轉發優先級信息,或者流量轉發優先級信息和角色信息;其中具有相同流量轉發優先級的節點歸屬於同一子廣播域;
第一節點根據分級廣播域表與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道。
結合第一方面,在第一方面的第二種可能的實現方式中,角色信息包括節 點類型信息用於確定廣播域中的節點是網關節點還是普通節點;第二節點為流量轉發優先級最高的子廣播域中的網關節點。
結合第一方面或者第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,當流量轉發優先級最高的子廣播域中有多個網關節點時,第一節點向多個網關節點轉發流量以實現負載分擔或者第一節點根據選擇策略向多個網關節點中的至少一個網關節點轉發流量。
結合第一方面或者第一方面的第一種可能的實現方式至第三種可能的實現方式中任一種可能的實現方式,在第一方面的第四種可能的實現方式中,第一節點為vxlan組網中的普通vtep節點,第二節點為網關vtep節點。
結合第一方面或者第一方面的第一種可能的實現方式至第四種可能的實現方式中任一種可能的實現方式,在第一方面的第五種可能的實現方式中,獲取分級廣播域表具體包括:
第一節點獲取廣播域內各節點的節點信息;
第一節點根據廣播域內各節點的節點信息中的流量轉發優先級信息,創建分級廣播域表。
進一步地,第一節點根據廣播域內各節點的節點信息中的角色信息以及流量轉發優先級信息,創建分級廣播域表。
結合第一方面或者第一方面的第一種可能的實現方式至第四種可能的實現方式中任一種可能的實現方式,在第一方面的第六種可能的實現方式中,獲取分級廣播域表具體包括:
第一節點獲取自身的節點信息;
第一節點向廣播域中流量轉發優先級最高的子廣播域中的第二節點發送第一協商報文,第一協商報文中包括第一節點的節點信息;
第一節點接收第二節點發送的第二確認報文,第二確認報文中攜帶第二節點的分級廣播域表;
第一節點將分級廣播域表進行存儲。
結合第一方面或者第一方面的第一種可能的實現方式至第四種可能的實現方式中任一種可能的實現方式,在第一方面的第七種可能的實現方式中,獲取分級廣播域表具體包括:
第一節點獲取自身的節點信息;
第一節點向廣播域中流量轉發優先級最高的子廣播域中的第二節點發送第一協商報文,第一協商報文中包括第一節點的節點信息;
第一節點接收第二節點發送的第二確認報文,第二確認報文中攜帶第二節點的分級廣播域表中各節點的節點信息;
第一節點根據第二節點的分級廣播域表中各節點的節點信息中的流量轉發優先級信息,創建分級廣播域表。
結合第一方面或者第一方面的第一種可能的實現方式至第四種可能的實現方式中任一種可能的實現方式,在第一方面的第八種可能的實現方式中,方法進一步包括:
第一節點接收第二節點發送的協商報文,協商報文指示第二節點的流量轉發優先級有更新;
第一節點根據更新後的流量轉發優先級更新分級廣播域表,並根據更新後的分級廣播域表選擇節點建立vxlan隧道以進行流量轉發。
結合第一方面,在第一方面的第九種可能的實現方式中,方法還包括:
第一節點在確定第二節點運行不正常之後,與流量轉發優先級次高的子廣播域中的第三節點建立第二vxlan隧道,並通知收發單元基於第二vxlan隧道通過第三節點轉發流量。
結合第一方面,在第一方面的第十種可能的實現方式中,還包括:
第一節點在確定第二節點運行不正常之後,若第一節點接收到第二節點發送的招呼報文,則與第二節點建立第三vxlan隧道,並基於第三vxlan隧道通過第二節點轉發流量,招呼報文用於向第一節點通知第二節點運行正常。
結合第一方面,在第一方面的第十一種可能的實現方式中,第一節點向第 二節點發送探測報文,包括:
第一節點每間隔設定時長向第二節點發送一次探測報文。
第二方面,提供一種轉發流量的方法,包括:
第二節點接收廣播域中的第一節點發送的第一隧道建立請求,所述第一節點為待轉發流量的節點;廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,第二節點為廣播域中流量轉發優先級最高的子廣播域中的節點;
第二節點根據第一節點發送的第一隧道建立請求與第一節點建立第一vxlan隧道;
第二節點接收第一節點發送的探測報文,並向第一節點返回第一確認報文第一確認報文用於指示第一節點該第二節點的運行情況;
第二節點通過第一vxlan隧道接收所述第一節點轉發的流量。
結合第二方面,在第二方面的第一種可能的實現方式中,第二節點向第一節點返回第一確認報文,包括:
第二節點在確認自身運行正常時在規定時長內向第一節點返回第一確認報文。
結合第二方面或者第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,第二節點向第一節點返回第一確認報文,還包括:
若第二節點在確認自身運行不正常時在規定時長後向第一節點返回第一確認報文,並
第二節點在確認自身恢復到運行正常時,向第一節點發送招呼報文,招呼報文用於向第一節點通知自身運行正常。
結合第二方面,在第二方面的第三種可能的實現方式中,第二節點向第一節點發送招呼報文之後,還包括:
第二節點接收第一節點發送的第二隧道建立請求;
第二節點根據第一節點發送的第二隧道建立請求與第一節點建立第二vxlan隧道。
結合第二方面,在第二方面的第四種可能的實現方式中,第二節點與第一節點建立第一vxlan隧道之後,還包括:
第二節點接收第一節點發送的第一協商報文,第一協商報文中包括第一節點的節點信息;
第二節點根據第一節點的節點信息,確定第一節點是否為新增節點;
若是,則第二節點根據第一節點的節點信息更新第二節點的分級廣播域表,並向第一節點發送第二確認報文,第二確認報文中攜帶更新後的分級廣播域表;
否則第二節點向第一節點發送第三確認報文,第三確認報文中攜帶第二節點的分級廣播域表。
結合第二方面,在第二方面的第五種可能的實現方式中,第二節點與第一節點建立第一vxlan隧道之後,還包括:
若第二節點確定自身的帶寬佔用率大於第一閾值時,則第二節點基於第一vxlan隧道向第一節點發送第二協商報文,第二協商報文用於指示第一節點將第一節點的分級廣播域表存儲的第二節點對應的節點信息所具備的流量轉發優先級降低;或
若第二節點確定自身的帶寬佔用率小於第二閾值時,則第二節點基於第一vxlan隧道向第一節點發送第三協商報文,第三協商報文用於指示第一節點將第一節點的分級廣播域表存儲的第二節點對應的節點信息所具備的流量轉發優先級修改為最高流量轉發優先級,第二閾值小於第一閾值。
第三方面,提供一種轉發流量的節點,包括:
處理單元,用於與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道,廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先 級與該節點所在的子廣播域的流量轉發優先級相同;
收發單元,用於基於第一vxlan隧道向第二節點發送探測報文,並接收第二節點返回的第一確認報文,探測報文用於探測第二節點的運行情況;以及在處理單元確定第二節點運行正常之後,基於第一vxlan隧道通過第二節點轉發流量。
結合第三方面,在第三方面的第一種可能的實現方式中,收發單元,還用於:
獲取分級廣播域表,分級廣播域表包括節點信息,節點信息包括流量轉發優先級信息以及角色信息;其中具有相同流量轉發優先級的節點歸屬於同一子廣播域;並根據分級廣播域表與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道。
結合第三方面,在第三方面的第二種可能的實現方式中,角色信息包括節點類型信息用於確定廣播域中的節點是網關節點還是普通節點;第二節點為流量轉發優先級最高的子廣播域中的網關節點。
結合第三方面或者第三方面的第二種可能的實現方式,在第三方面的第三種可能的實現方式中,處理單元,還用於:
當流量轉發優先級最高的子廣播域中有多個網關節點時,向多個網關節點轉發流量以實現負載分擔或者根據選擇策略向多個網關節點中的至少一個網關節點轉發流量。
結合第三方面或者第三方面的第一種可能的實現方式至第三種可能的實現方式中任一可能的實現方式,在第三方面的第四種可能的實現方式中,收發單元具體用於:
獲取廣播域內各節點的節點信息;
處理單元,還用於根據廣播域內各節點的節點信息中的流量轉發優先級信息,創建分級廣播域表。
結合第三方面或者第三方面的第一種可能的實現方式至第三種可能的實 現方式中任一可能的實現方式,在第三方面的第五種可能的實現方式中,收發單元具體用於:
獲取第一節點的節點信息,第一節點為待轉發流量的節點;
向廣播域中流量轉發優先級最高的子廣播域中的第二節點發送第一協商報文,第一協商報文中包括第一節點的節點信息;
接收第二節點發送的第二確認報文,第二確認報文中攜帶第二節點的分級廣播域表;
存儲單元,用於將分級廣播域表進行存儲。
結合第三方面或者第三方面的第一種可能的實現方式至第三種可能的實現方式中任一可能的實現方式,在第三方面的第六種可能的實現方式中,收發單元,還用於接收第二節點發送的第二協商報文,第二協商報文指示第二節點的流量轉發優先級有更新;並
在處理單元根據更新後的流量轉發優先級更新分級廣播域表之後,根據更新後的分級廣播域表選擇節點建立vxlan隧道以進行流量轉發。
結合第三方面,在第三方面的第七種可能的實現方式中,處理單元,還用於:
在確定第二節點運行不正常之後,與流量轉發優先級次高的子廣播域中的第三節點建立第二vxlan隧道,並基於第二vxlan隧道通過第三節點轉發流量。
結合第三方面,在第三方面的第八種可能的實現方式中,處理單元,還用於:
在確定第二節點運行不正常之後,若收發單元接收到第二節點發送的招呼報文,則與第二節點建立第三vxlan隧道,並基於第三vxlan隧道通過第二節點轉發流量,招呼報文用於向第一節點通知第二節點運行正常。
結合第三方面,在第三方面的第九種可能的實現方式中,收發單元具體用於:
每間隔設定時長向第二節點發送一次探測報文。
第四方面,提供一種轉發流量的節點,包括處理單元和收發單元,其中:
收發單元,用於接收廣播域中的第一節點發送的第一隧道建立請求,第一節點為待轉發流量的節點;廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,第二節點為廣播域中流量轉發優先級最高的子廣播域中的節點;
處理單元,用於根據第一節點發送的第一隧道建立請求與第一節點建立vxlan隧道;
收發單元,還用於接收第一節點發送的探測報文,並向第一節點返回第一確認報文,第一確認報文用於指示第一節點第二節點的運行情況;並通過vxlan隧道接收第一節點轉發的流量。
結合第四方面,在第四方面的第一種可能的實現方式中,收發單元具體用於:
在確認自身運行正常時在規定時長內向第一節點返回第一確認報文。
結合第四方面,在第四方面的第二種可能的實現方式中,收發單元,還用於:
若在處理單元確認第二節點運行不正常時,在規定時長後向第一節點返回第一確認報文,並
在處理單元確認第二節點恢復到運行正常時,向第一節點發送招呼報文,招呼報文用於向第一節點通知第二節點運行正常。
結合第四方面,在第四方面的第三種可能的實現方式中,收發單元,還用於:
在向第一節點發送招呼報文之後,接收第一節點發送的第二隧道建立請求;
處理單元,還用於根據第一節點發送的第二隧道建立請求與第一節點建立 第二vxlan隧道。
結合第四方面,在第四方面的第四種可能的實現方式中,收發單元,還用於在處理單元與第一節點建立第一vxlan隧道之後,接收第一節點發送的第一協商報文,第一協商報文中包括第一節點的節點信息;
處理單元,還用於根據第一節點的節點信息,確定第一節點是否為新增節點;
收發單元,還用於在處理單元確定第一節點為新增節點時,根據第一節點的節點信息更新第二節點的分級廣播域表,並向第一節點發送第二確認報文,第二確認報文中攜帶更新後的分級廣播域表;以及
在處理單元確定第一節點不為新增節點時,向第一節點發送第三確認報文,第三確認報文中攜帶第二節點的分級廣播域表。
結合第四方面,在第四方面的第五種可能的實現方式中,收發單元,還用於在處理單元與第一節點建立第一vxlan隧道之後,若確定第二節點的帶寬佔用率大於第一閾值時,則基於第一vxlan隧道向第一節點發送第二協商報文,第二協商報文用於指示第一節點將第一節點的分級廣播域表存儲的第二節點對應的節點信息所具備的流量轉發優先級降低;或
收發單元,還用於在處理單元與第一節點建立第一vxlan隧道之後,若確定第二節點的帶寬佔用率小於第二閾值時,則基於第一vxlan隧道向第一節點發送第三協商報文,第三協商報文用於指示第一節點將第一節點的分級廣播域表存儲的第二節點對應的節點信息所具備的流量轉發優先級修改為最高流量轉發優先級;
其中,第二閾值小於第一閾值。
第五方面,提供一種轉發流量的網絡設備,該網絡設備可以執行上述各實施例中第一節點所實施的步驟或執行的功能。該從設備可包括:收發器、處理器和存儲器。處理器用於控制節點的操作;存儲器可以包括只讀存儲器和隨機存取存儲器,存儲有處理器可以執行的指令和數據。存儲器的一部分還可以包 括非易失行隨機存取存儲器(nvram)。收發器、處理器和存儲器等各組件通過總線連接,其中總線除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線。
本發明實施例揭示的一種轉發流量的方法可以應用於處理器中,或者由處理器實現。在實現過程中,處理流程的各步驟可以通過處理器中的硬體的集成邏輯電路或者軟體形式的指令完成。處理器可以是通用處理器、數位訊號處理器、專用集成電路、現場可編程門陣列或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件,可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器,處理器讀取存儲器中存儲的信息,結合其硬體完成一種轉發流量的方法的步驟。
所述處理器與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan虛擬擴展區域網隧道,所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同;所述收發器基於所述第一vxlan隧道向所述第二節點發送探測報文,並接收所述第二節點返回的第一確認報文,所述探測報文用於探測所述第二節點的運行情況;以及在所述處理器確定所述第二節點運行正常之後,基於所述第一vxlan隧道通過所述第二節點轉發流量。
第六方面,提供一種轉發流量的網絡設備,該網絡設備可以執行上述各實施例中第二節點所實施的步驟或執行的功能。該從設備可包括:收發器、處理器和存儲器。處理器用於控制節點的操作;存儲器可以包括只讀存儲器和隨機存取存儲器,存儲有處理器可以執行的指令和數據。存儲器的一部分還可以包 括非易失行隨機存取存儲器(nvram)。收發器、處理器和存儲器等各組件通過總線連接,其中總線除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線。
本發明實施例揭示的一種轉發流量的方法可以應用於處理器中,或者由處理器實現。在實現過程中,處理流程的各步驟可以通過處理器中的硬體的集成邏輯電路或者軟體形式的指令完成。處理器可以是通用處理器、數位訊號處理器、專用集成電路、現場可編程門陣列或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件,可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器,處理器讀取存儲器中存儲的信息,結合其硬體完成一種轉發流量的方法的步驟。
所述處理器與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan虛擬擴展區域網隧道,所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同;所述收發器基於所述第一vxlan隧道向所述第二節點發送探測報文,並接收所述第二節點返回的第一確認報文,所述探測報文用於探測所述第二節點的運行情況;以及在所述處理器確定所述第二節點運行正常之後,基於所述第一vxlan隧道通過所述第二節點轉發流量。
本發明實施例表明,第一節點根據廣播域內各節點所具備的流量轉發優先級不同,優選選擇廣播域中流量轉發優先級最高的子廣播域中的第二節點建立vxlan隧道,在與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立vxlan隧道之後,向該第二節點發送探測報文,可以快速感知該第二節點 是否故障,避免出現業務中斷風險,同時只與第二節點建立vxlan隧道可以避免轉發流量的過程中在多個節點之間頻繁的切換,防止出現流量迂迴的現象。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹。
圖1為現有技術中一種vxlan組網結構示意圖;
圖2為現有技術中一種流量模型的結構示意圖;
圖3為本發明實施例中提供的一種系統架構示意圖;
圖4為本發明實施例中提供的一種轉發流量的方法的流程示意圖;
圖5為本發明實施例中提供的第一節點與第二節點交互的流程示意圖;
圖6為本發明實施例中提供的第一節點與第二節點交互的流程示意圖;
圖7為本發明實施例中提供的一種轉發流量的方法的流程示意圖;
圖8為本發明實施例中提供的一種轉發流量的方法的流程示意圖;
圖9為本發明實施例中提供的一種轉發流量的方法的流程示意圖;
圖10為本發明實施例中提供的一種轉發流量的節點的結構示意圖;
圖11為本發明實施例中提供的一種轉發流量的節點的結構示意圖;
圖12為本發明實施例中提供的一種節點的結構示意圖;
圖13為本發明實施例中提供的一種節點的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步地詳細描述。
本發明實施例適用於使用vxlan組網,pod(pointofdelivery,數據中心規劃時的匯聚區域)或者跨數據中心多活部署的場景,如圖3所示的系統架 構圖,pod1和pod2分區網絡二層打通,通過分布於兩個分區內的多個網關節點(gw-1、gw-2、gw-3、gw-4)保障業務轉發不中斷。pod1分區內的網關節點gw-1和gw-2分別與普通節點vtep1、vtep2、vtep3連接,pod2分區內的網關節點gw-1和gw-2分別與普通節點vtep4、vtep5、vtep6連接,每個普通節點vtep管理一個或多個vm(virtualmachine,虛擬機)。
在本發明實施例中,第一節點可以是上述普通節點vtep,第二節點可以是上述網關節點。
基於上述描述,圖4示例性的示出了本發明實施例提供的一種轉發流量的方法流程,該方法流程可以由第一節點執行,該第一節點為待轉發流量的節點。
如圖4所示,該方法流程具體步驟包括:
步驟401,第一節點與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan虛擬擴展區域網隧道。
步驟402,第一節點基於第一vxlan隧道向第二節點發送探測報文,並接收第二節點返回的第一確認報文。
步驟403,第一節點在確定第二節點運行正常之後,基於第一vxlan隧道通過第二節點轉發流量。
在上述流程中,廣播域中包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,其中具有相同流量轉發優先級的節點歸屬於同一子廣播域。每個節點都有與所述廣播域相對應的分級廣播域表,該分級廣播域表包括廣播域中各節點的節點信息,該節點信息包括流量轉發優先級信息,該流量轉發優先級信息表示節點所具有的流量轉發優先級。進一步地,該節點信息還包括角色信息,該角色信息包括節點類型,可以用於確定廣播域中的節點是網關節點還是普通節點。為了優先與本地網關節點建立vxlan隧道,本地網關節點的流量轉發優先級信息可以是流量轉發優先級最高,相應地該本地網關節點位於流量轉發優先級最高的子廣播域中。在本發明 實施例中,該第二節點為流量轉發優先級最高的子廣播域中的網關節點。
舉例來說,廣播域中的每個節點都有節點信息,該節點信息可以為一個二元屬性因子。每個節點的節點信息包括該節點的兩個屬性因子,一個屬性因子是該節點的角色信息,如用於區分節點的類型,可以分為普通節點和網關節點兩類。另一個屬性因子是該節點的流量轉發優先級信息;可以根據該流量轉發優先級信息進行選擇第一節點優先與哪個節點建立隧道,流量轉發優先級信息高的節點優先與第一節點建立隧道。該流量轉發優先級信息的設置可以根據節點的位置或者具體需求設置,例如主備需求或負載分擔需求時。
該節點信息可以使用二元屬性因子(α,β)來表示,α表示節點的角色信息,如可以設置α=0是普通節點,α=1是網關節點。β表示節點具備的流量轉發優先級信息,如可以設置β=0時優先級最高,β=1時,優先級次高,以此類推,可以設置多個優先級。此處的α,β取值僅是示意作用,實際應用中可以按此規則進行賦值。在實際使用時,可以通過將任意希望優先轉發的節點的β的值設為0來實現優先轉發的目的,而不一定是只能通過本地網關節點優先轉發。具體的,如圖3中所示的廣播域內,對於pod1分區內的vtep1節點,該vtep1節點的節點信息為(0,0),gw-1、gw-2的節點信息為(1,0),gw-3、gw-4的節點信息為(1,1)。
上述廣播域包括多個子廣播域,根據節點信息中的流量轉發優先級信息的不同,可以對廣播域內的節點進行劃分,可以將同一流量轉發優先級的節點歸屬於同一個子廣播域內,該子廣播域對應的流量轉發優先級與該子廣播域內各節點的節點信息對應的流量轉發優先級相同。如圖3所示,在普通節點vtep1節點的分級廣播域表分為兩個優先級別的子廣播域表,流量轉發優先級最高的子廣播域表中包括普通節點vtep2、vtep3、vtep4、vtep5、vtep6的節點信息以及網關節點gw-1和gw-2的節點信息,流量轉發優先級次高的子廣播域表中包括網關節點gw-3和gw-4的節點信息。
可選地,本發明實施例中第一節點可以是普通vtep節點,第二節點可以 是本地網關vtep節點。當第二節點為本地網關節點時,當三層東西流量與南北流量通過廣播域內節點間建立的隧道轉發時,普通節點優先選擇與本地網關節點進行建立隧道和轉發流量,可以使得本地三層東西向流量不會通過遠端網關節點,從而避免在轉發流量的過程中在本地網關節點和遠端網關節點來回切換,造成流量迂迴的現象。另外,也可以進一步的避免在南北流量場合所帶來的出入數據中心流量來迴路徑不一致的問題。
在上述第一節點與第二節點建立第一vxlan隧道之前,第一節點還需要獲取分級廣播域表,然後根據該分級廣播域表與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道。該第一vxlan隧道用於向所述第二節點發送探測報文,並使得所述第二節點基於該第一vxlan隧道為第一節點轉發流量。若存在多個相同流量轉發優先級的第二節點時,可以選擇其中至少一個第二節點建立第一vxlan隧道,也可以與每個第二節點建立第一vxlan隧道。
具體實施方式中,第一節點獲取分級廣播域表以下方式獲取,以下實施例中的獲取方式也僅僅是舉例說明,其並不限制本發明的獲取方式。
其中一種分級廣播域表的獲取方式是第一節點通過獲取相應的信息創建分級廣播域表。具體實施方式中可以包括:獲取所述廣播域內各節點的節點信息。然後該第一節點根據該廣播域內各節點的節點信息中的流量轉發優先級信息,創建分級廣播域表。其中,第一節點獲取的廣播域內各節點的節點信息可以是人工設置或者控制器下發的。進一步地,該第一節點還可以根據該廣播域內各節點的角色信息,對分級廣播域表進行更新,具體的更新方式在後續流程中描述。
另一種獲取分級廣播域表的具體實施方式為:第一節點與第二節點進行協商,通過該第二節點獲取廣播域內各節點的節點信息。如圖5所示的第一節點與第二節點交互的流程,該流程的具體步驟包括:
步驟s501,第一節點獲取自身的節點信息。具體實現中,該第一節點的節 點信息是由人工配置或控制器下發的,廣播域中各節點的節點信息都是由人工配置或控制器下發的,該第一節點的節點信息內包括該第一節點的流量轉發優先級信息。進一步地,該第一節點的節點信息還包括該第一節點的角色信息,用於指示第二節點判斷該第一節點是普通節點還是網關節點。
步驟s502,第一節點向廣播域中的第二節點發送第一協商報文。該第一協商報文中包括該第一節的節點信息。
步驟s503,第一節點接收廣播域中的第二節點發送的第二確認報文,該第二確認報文中攜帶所述第二節點的分級廣播域表中各節點的節點信息。該第二節點在收到第一節點發送的第一協商報文之後,先判斷該第一節點是否在自身的分級廣播域表中,若自身的分級廣播域表中不存在,則可以確定該第一節點為新增節點,然後根據該第一節點的節點信息更新自身的分級廣播域表,並根據更新後的分級廣播域表向第一節點發送第二確認報文。
步驟s504,第一節點創建分級廣播域表。第一節點根據第二節點發送的該第二節點的分級廣播域表中各節點的節點信息中的流量轉發優先級信息,創建該分級廣播域表。
進一步地,本發明實施例還提供了一種獲取分級廣播域表的具體實施方式,具體為:第一節點與第二節點進行協商,通過該第二節點獲取廣播域內各節點的節點信息。如圖6所示的第一節點與第二節點交互的流程,該流程的具體步驟包括:
步驟s601,第一節點獲取自身的節點信息。具體實現中,該第一節點的節點信息是由人工配置或控制器下發的,廣播域中各節點的節點信息都是由人工配置或控制器下發的,該第一節點的節點信息內包括該第一節點的流量轉發優先級信息。進一步地,該第一節點的節點信息還包括該第一節點的角色信息,用於指示第二節點判斷該第一節點是普通節點還是網關節點。
步驟s602,第一節點向廣播域中的第二節點發送第一協商報文。該第一協商報文中包括該第一節的節點信息。
步驟s603,第一節點接收廣播域中的第二節點發送的第二確認報文,該第二確認報文中攜帶所述第二節點的分級廣播域表。該第二節點在收到第一節點發送的第一協商報文之後,先判斷該第一節點是否在自身的分級廣播域表中,若自身的分級廣播域表中不存在,則可以確定該第一節點為新增節點,然後根據該第一節點的節點信息更新自身的分級廣播域表,並向第一節點發送第二確認報文,該第二確認報文中包括該第二節點更新後的分級廣播域表。
步驟s604,第一節點存儲分級廣播域表。第一節點收到第二節點發送的該第二節點的分級廣播域表之後,存儲該分級廣播域表,作為自己的分級廣播域表。
具體的,在創建分級廣播域表時,節點信息中β=0的節點對應的節點信息位於流量轉發優先級最高的子廣播域表內,節點信息中β=1的節點對應的節點信息位於流量轉發優先級次高的子廣播域表內,依次類推。通過設置流量轉發優先級不同的子廣播域表,節點在需要轉發流量時,優先選擇流量轉發優先級最高的子廣播域表中的節點信息對應的第二節點進行轉發,而流量轉發優先級最高的子廣播域表中的節點信息對應的第二節點為本地網關節點,遠端網關節點位於流量轉發優先級次高的子廣播域中,第一節點優先選擇與本地網關節點進行流量轉發,可以避免出現轉發流量的過程中在本地網關節點與遠端網關節點之間頻繁的切換的問題以及出現的流量迂迴問題。
在步驟402中,第一節點基於第一vxlan隧道向向流量轉發優先級最高的子廣播域中的第二節點發送探測報文,第一節點可以通過節點信息中的角色信息來確定是否為第二節點,該第一節點為普通節點,第二節點為本地網關節點,第一節點根據自身的分級廣播域表中流量轉發優先級最高的子廣播域表中的節點信息識別出本地網關節點,先後向該本地網關節點發送探測報文。若該第二節點有多個,則可以選擇其中一個發送,也可以是多個第二節點同時發送。在發送探測報文之後,第一節點需要接收該第二節點返回的第一確認報文。上述探測報文用於探測第二節點的運行情況。該第二節點若運行正常,則會按時 返回第一確認報文,若運行不正常,則會超時返回第一確認報文。該第一節點可以每隔設定時長向第二節點發送一次探測報文,該設定時長可以依據經驗進行設置,比如可以設定1s。若第一確認報文返回不超時,則說明第二節點運行正常,若第一確認報文返回超時,則說明第二節點運行不正常。
在步驟403中,當第一節點確定第二節點運行正常時,則第一節點基於上述第一vxlan隧道通過該第二節點轉發流量。具體的,當流量轉發優先級最高的子廣播域中有多個第二節點時,第一節點可以通過vxlan隧道向該多個第二節點轉發流量以實現負載分擔。或者第一節點根據選擇策略向多個網關節點中至少一個網關節點轉發流量。該選擇策略可以依據經驗進行設置,比如,可以根據第二節點與第一節點的位置關係,來確定選擇策略,距離第一節點近的第二節點優先選擇。
第一節點在確定第二節點運行不正常之後,還可以與流量轉發優先級次高的子廣播域中的第三節點建立第二vxlan隧道,並基於第二vxlan隧道通過該第三節點轉發流量。該第三節點為遠端網關節點,流量轉發優先級低於本地網關節點的流量轉發優先級。
相應地,第一節點在確定第二節點運行不正常之後,若第一節點接收到第二節點發送的招呼報文,則與第二節點建立第三vxlan隧道,並基於第三vxlan隧道通過第二節點轉發流量,該招呼報文用於向第一節點通知第二節點運行正常。
為了更好的管理自身的分級廣播域表,第一節點還可以接收第二節點發送的第二協商報文,該第二協商報文用於指示該第二節點的流量轉發優先級有更新,第一節點根據更新後的流量轉發優先級更新自身的分級廣播域表,並根據更新後的分級廣播域表選擇節點建立vxlan隧道以進行流量轉發。
具體的,第二協商報文指示第二節點的流量轉發優先級降低,則第一節點將自身的分級廣播域表中存儲的該第二節點對應的節點信息中的流量轉發優先級信息降低,並將該第二節點的節點信息存儲在降低後的流量轉發優先級相 對應的子廣播域表中。若第二協商報文指示第二節點的流量轉發優先級修改為最高流量轉發優先級,則第一節點將自身的分級廣播域表中存儲的該第二節點對應的節點信息中的流量轉發優先級信息修改為最高流量轉發優先級,並將該第二節點的節點信息存儲在流量轉發優先級最高的子廣播域表中。
上述實施例表明,第一節點與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan隧道,第一節點基於該第一vxlan隧道向第二節點發送探測報文,並接收第二節點返回的第一確認報文,在確定第二節點運行不正常之後,基於第一vxlan隧道通過第二節點轉發流量。第一節點根據廣播域內各節點所具備的流量轉發優先級不同,在轉發流量時,優先選擇廣播域中流量轉發優先級最高的子廣播域中的本地網關節點建立vxlan隧道,並基於該vxlan隧道通過該本地網關節點轉發流量,可以避免轉發流量的過程中在本地網關節點與遠端網關節點之間頻繁的切換的問題;並且第一節點只通過本地網關節點轉發流量,不會在多個網關節點之間來回的流轉,避免了出現流量迂迴的現象,解決了鏈路帶寬浪費和性能下降的問題。
為了更好的解釋本發明實施例,下面以圖3中普通節點vtep1為例描述上述轉發流量的具體流程。
如圖7所示,該流程步驟具體包括:
步驟701,初始狀態。普通節點vtep1在初始化時,可以獲取人工配置或控制器下發的廣播域內各節點的節點信息。
步驟702,普通節點vtep1創建分級廣播域表。該分級廣播域表包括多個子廣播域表,不同的子廣播域表對應的流量轉發優先級不同。普通節點vtep1根據獲取的廣播域內各節點的節點信息中的流量轉發優先級信息創建該分級廣播域表。
步驟703,普通節點vtep1與廣播域中流量轉發優先級最高的本地網關節點建立vxlan隧道。普通節點vtep1根據自身分級廣播域表的流量轉發優先級最高的子廣播域表中節點信息,與節點信息為(α=1,β=0)對應的本地網 關建立vxlan隧道節點定時發送探測報文。
步驟704,普通節點vtep1向本地網關節點定時發送探測報文。
步驟705,普通節點vtep1確定本地網關節點返回的ack報文是否超時,若是,則轉入步驟706,若否,則轉入步驟707。本地網關節點在收到探測報文之後會返回ack報文,普通節點vtep1根據設定時間閾值確定ack報文是否超時。
步驟706,普通節點vtep1基於與本地網關節點建立的vxlan隧道進行轉發流量。本地網關節點有多個時,南北流量與三層東西流量會在多個本地網關節點間進行負載分擔。
步驟707,普通節點vtep1與廣播域中流量轉發優先級次高的子廣播域中的遠端網關節點建立vxlan隧道。普通節點vtep1在確定本地網關節點返回的ack報文超時之後,認為該本地網關節點故障,普通節點vtep1跟據自身分級廣播域表中流量轉發優先級次高的子廣播域表中的節點信息,與節點信息為(α=1,β=1)對應的遠端網關節點建立vxlan隧道。
步驟708,在本地網關節點故障恢復之後,會向普通節點vtep1發送hello報文,普通節點vtep1收到該hello報文之後,重新與本地網關節點建立vxlan隧道。
基於相同的技術構思,圖8示例性的示出了本發明實施例提供的一種轉發流量的方法流程,該方法流程可以由第二節點執行,該第二節點可以為網關節點。
如圖8所示,該方法流程的具體步驟包括:
步驟801,第二節點接收廣播域中的第一節點發送的第一隧道建立請求,第一節點為待轉發流量的節點。
步驟802,第二節點根據第一節點發送的第一隧道建立請求與第一節點建立第一vxlan隧道。
步驟803,第二節點接收第一節點發送的探測報文,並向第一節點返回第 一確認報文。
步驟804,第二節點通過第一vxlan隧道接收第一節點轉發的流量。
在步驟801中,第二節點接收的第一節點發送的第一隧道建立請求,是該第一節點需要轉發流量時發送的,該第一節點選擇了廣播域內流量轉發優先級最高的子廣播域中的第二節點發送的第一隧道建立請求。該廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,第二節點為廣播域中流量轉發優先級最高的子廣播域中的節點。第二節點設有分級廣播域表,該分級廣播域表包括廣播域中各節點的節點信息,該節點信息包括流量轉發優先級信息和角色信息,該流量轉發優先級信息表示節點所具有的流量轉發優先級,該角色信息包括節點類型,可以用於確定廣播域中的節點是網關節點還是普通節點。第二節點首先與流量轉發優先級最高的子廣播域中的第一節點建立第一vxlan隧道,該第一vxlan隧道用於為第一節點轉發流量。該第一節點為待轉發流量的普通節點,如可以為普通vtep節點,該第二節點為網關節點,可以是本地網關節點或遠端網關節點。
在步驟802中,第二節點根據第一節點發送的第一隧道建立請求,可以與該第一節點建立第一vxlan隧道,該第二節點可以基於該第一vxlan隧道與該第一節點進行交互通信。
在步驟803中,第二節點在於第一節點建立第一vxlan隧道之後,基於該第一vxlan隧道接收第一節點發送的探測報文,該探測報文用於探測第二節點的運行情況。該第一確認報文用於向第一節點通知第二節點的運行情況。
具體的,該第二節點是在確認自身運行正在時在規定時長內向第一節點返回第一確認報文的。相應地,若第二節點在確認自身運行不正常時在規定時長後向第一節點返回第一確認報文,並在確認自身恢復到運行正常時,向第一節點發送招呼報文,該招呼報文用於向第一節點指示該第二節點運行正常。
相應地,在第二節點向第一節點發送招呼報文之後,第二節點接收第一節 點發送的第二隧道建立請求,第二節點根據該第二隧道建立請求與第一節點建立第二vxlan隧道,從而實現在第二節點恢復運行正常之後,可以通過該第二vxlan隧道接收該第一節點轉發的流量。本發明實施例中的第二vxlan隧道相當於上述第一節點實施的流程中的第三vxlan隧道,vxlan隧道的建立過程相同,在此不再贅述。
在步驟804中,第二節點通過上述第一vxlan隧道可以轉發接收到的第一節點轉發過來的流量,根據第一節點確定的目標節點,將接收到的第一節點轉發的流量向該目標節點轉發。
可選地,在第二節點與第一節點建立第一vxlan隧道之後,該第二節點接收該第一節點發送的第一協商報文,該第一協商報文包括第一節點的節點信息。該第二節點根據該第一節點的節點信息的角色信息,對比自身分級廣播域表,來確定該第一節點是否為新增節點。若自身分級廣播域表中沒有該第一節點的節點信息,說明該第一節點為新增節點,則根據第一節點的節點信息更新自身的分級廣播域表,並根據更新後的分級廣播域表向該第一節點發送第二確認報文,該第二確認報文中攜帶自身的分級廣播域表中各節點的節點信息。若自身分級廣播域表中有該第一節點的節點信息,則該第二節點根據自身的分級廣播域表向該第一節點發送第三確認報文,該第三確認報文中攜帶自身的分級廣播域表中各節點的節點信息。該攜帶自身的分級廣播域表中各節點的節點信息用於使得第一節點創建分級廣播域表。
可選地,在第二節點與第一節點建立第一vxlan隧道之後,該第二節點接收該第一節點發送的第一協商報文,該第一協商報文包括第一節點的節點信息。該第二節點根據該第一節點的節點信息的角色信息,對比第二節點自身的分級廣播域表,來確定該第一節點是否為新增節點。若第二節點的分級廣播域表中沒有該第一節點的節點信息,說明該第一節點為新增節點,則根據第一節點的節點信息更新自身的分級廣播域表,並根據更新後的分級廣播域表向該第一節點發送第二確認報文,該第二確認報文中攜帶更新後的分級廣播域表。若 第二節點自身的分級廣播域表中有該第一節點的節點信息,則該第二節點向該第一節點發送第三確認報文,該第三確認報文中攜帶第二節點的分級廣播域表。
為了更好的解決鏈路帶寬浪費的問題,第二節點在與第一節點建立第一vxlan隧道之後,若該第二節點確定自身的帶寬佔用率大於第一閾值時,則該第二節點基於第一vxlan隧道向該第一節點發送第二協商報文,該第二協商報文用於指示第一節點將第一節點的分級廣播域表存儲的該第二節點對應的節點信息所具備的流量轉發優先級降低。
相應地,若該第二節點確定自身的帶寬佔用率小於第二閾值時,則該第二節點基於第一vxlan隧道向該第一節點發送第三協商報文,該第三協商報文用於指示第一節點將第一節點的分級廣播域表存儲的該第二節點對應的節點信息所具備的流量轉發優先級修改為最高流量轉發優先級,其中,第二閾值小於第一閾值,該第一閾值和第二閾值可以依據經驗進行設置。
具體的,當第一vxlan隧道建立之後,進入流量轉發時,若網關節點檢測到自身帶寬佔用率超過80%時,觸發向指定的普通vtep節點發送一個協商報文,通知該普通vtep節點將自身分級廣播域表中存儲的網關節點對應的節點信息中的流量轉發優先級信息修改為低優先級,並觸發普通vtep節點與流量轉發優先級次高的網關節點建立vxlan隧道並轉發流量。
當網關節點檢測到自身帶寬佔用率低於40%時,通過協商報文通過普通vtep節點將其分級廣播域表中存儲的該網關節點對應的節點信息中流量轉發優先級信息修改為最高優先級。通過上述流程可以實現對網絡流量轉發狀態的感知與自動均衡,解決鏈路帶寬浪費的問題。
為了更好的解釋本發明實施例,下面以圖3中網關節點gw-1為例描述上述轉發流量的具體流程。
如圖9所示,該流程步驟具體包括:
步驟901,初始狀態。網關節點獲取人工配置或控制器下發的廣播域內各 節點的節點信息。
步驟902,網關節點創建分級廣播域表。網關節點根據廣播域內各節點的節點信息中的流量轉發優先級信息,創建自身的分級廣播域表。
步驟903,網關節點與廣播域中流量轉發優先級最高的子廣播域中的普通節點vtep1建立vxlan隧道。網關節點根據自身的分級廣播域表中的流量轉發優先級最高的子廣播域表中的節點信息,與節點信息為(α=0,β=0)對應的普通節點vtep1建立vxlan隧道。
步驟904,網關節點接收普通節點vtep1發送的探測報文,並確定自身是否運行正常,若是,則轉入步驟905,若否,則轉入步驟906。網關節點基於該vxlan隧道接收普通節點vtep1發送的探測報文。
步驟905,網關節點在規定時長內向普通節點vtep1發送ack報文,並為所述第一節點轉發流量。網關節點在確認自身運行正常之後,在規定時長內向普通節點vtep1發送ack報文。
步驟906,網關節點在故障恢復之後向普通節點vtep1發送hello報文。
基於相同的技術構思,圖10示例性的示出了本發明實施例提供的一種轉發流量的節點的結構,該節點可以執行轉發流量的方法流程,該節點可以為待轉發流量的節點,該節點可以是上述各實施例中所描述的第一節點1001。
如圖10所示,該節點具體包括:
處理單元10011,用於與廣播域中流量轉發優先級最高的子廣播域中的第二節點1002建立第一vxlan虛擬擴展區域網隧道,所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同;
收發單元10012,用於基於所述第一vxlan隧道向所述第二節點1002發送探測報文,並接收所述第二節點1002返回的第一確認報文,所述探測報文用於探測所述第二節點1002的運行情況;以及在所述處理單元確定所述第二 節點1002運行正常之後,基於所述第一vxlan隧道通過所述第二節點1002轉發流量。
可選地,所述收發單元10012,還用於:
獲取分級廣播域表,所述分級廣播域表包括節點信息,所述節點信息包括流量轉發優先級信息以及角色信息;其中具有相同流量轉發優先級的節點歸屬於同一子廣播域;所述處理單元,還用於根據所述分級廣播域表與所述廣播域中流量轉發優先級最高的子廣播域中的第二節點1002建立第一vxlan隧道。
可選地,所述角色信息包括節點類型信息用於確定所述廣播域中的節點是網關節點還是普通節點;所述第二節點1002為所述流量轉發優先級最高的子廣播域中的網關節點。
可選地,所述收發單元10012,還用於:
當所述流量轉發優先級最高的子廣播域中有多個網關節點時,向所述多個網關節點轉發流量以實現負載分擔或者根據選擇策略向所述多個網關節點中的至少一個網關節點轉發流量。
可選地,所述收發單元10012具體用於:
獲取所述廣播域內各節點的節點信息;
所述處理單元10011,還用於根據所述廣播域內各節點的節點信息中的流量轉發優先級信息,創建所述分級廣播域表。
可選地,所述收發單元10012具體用於:
獲取第一節點1001的節點信息,所述第一節點1001為待轉發流量的節點;
向所述廣播域中流量轉發優先級最高的子廣播域中的第二節點1002發送第一協商報文,所述第一協商報文中包括所述第一節點1001的節點信息;
接收所述第二節點1002發送的第二確認報文,所述第二確認報文中攜帶所述第二節點1002的分級廣播域表;
存儲單元10013,用於存儲所述分級廣播域表。
可選地,所述收發單元10012,還用於接收所述第二節點1002發送的第二 協商報文,所述第二協商報文指示所述第二節點1002的流量轉發優先級有更新;並
在所述處理單元10011根據更新後的流量轉發優先級更新所述分級廣播域表之後,根據更新後的分級廣播域表選擇節點建立vxlan隧道以進行流量轉發。
可選地,所述處理單元10011,還用於:
在確定所述第二節點1002運行不正常之後,與流量轉發優先級次高的子廣播域中的第三節點(圖中未示出)建立第二vxlan隧道,並通知所述收發單元10012基於所述第二vxlan隧道通過所述第三節點轉發流量。
可選地,所述處理單元10011,還用於:
在確定所述第二節點1002運行不正常之後,若所述收發單元10012接收到所述第二節點1002發送的招呼報文,則與所述第二節點1002建立第三vxlan隧道,並基於所述第三vxlan隧道通過所述第二節點1002轉發流量,所述招呼報文用於向第一節點1001通知所述第二節點1002運行正常。
可選地,所述收發單元10012具體用於每間隔設定時長向所述第二節點1002發送一次所述探測報文。
基於相同的技術構思,圖11示例性的示出了本發明實施例提供的一種轉發流量的節點的結構,該節點可以執行轉發流量的方法流程,該節點可以是上述各實施例中描述的第二節點1102,例如該節點可以為本地網關節點或遠端網關節點。
如圖11所示,該節點具體包括處理單元11021和收發單元11022,其中:
所述收發單元11022,用於接收廣播域中的第一節點1101發送的第一隧道建立請求,所述第一節點1101為待轉發流量的節點;所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個所述子廣播域中包括多個節點,每個所述節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,所述第二節點1102為所述廣播域中流量轉發優先級最高的 子廣播域中的節點;
所述處理單元11021,用於根據所述第一節點1101發送的第一隧道建立請求與所述第一節點1101建立第一vxlan隧道;
所述收發單元11022,還用於接收第一節點1101發送的探測報文,並向所述第一節點1101返回第一確認報文,所述第一確認報文用於指示所述第一節點1101該第二節點1102的運行情況;並通過所述第一vxlan隧道接收所述第一節點1101轉發的流量。
可選地,所述收發單元11022具體用於:
在所述處理單元11021確認自身運行正常時在規定時長內向所述第一節點1101返回所述第一確認報文。
可選地,所述收發單元11022,還用於若在所述處理單元11021確認第二節點1102運行不正常時,在規定時長後向所述第一節點1101返回第一確認報文,並在所述處理單元11021確認所述第二節點1102恢復到運行正常時,向所述第一節點1101發送招呼報文,所述招呼報文用於向所述第一節點1101通知所述第二節點1102運行正常。
可選地,所述收發單元11022,還用於:
向所述第一節點1101發送招呼報文之後,接收所述第一節點1101發送的第二隧道建立請求;
所述處理單元11021,還用於根據所述第一節點1101發送的第二隧道建立請求與所述第一節點1101建立第二vxlan隧道。
可選地,所述收發單元11022,還用於所述處理單元11021與所述第一節點1101建立第一vxlan隧道之後,接收所述第一節點1101發送的第一協商報文,所述第一協商報文中包括所述第一節點1101的節點信息;
所述處理單元11021,還用於根據所述第一節點1101的節點信息,確定所述第一節點1101是否為新增節點;
所述收發單元11022,還用於在所述處理單元11021確定所述第一節點1101 為新增節點時,根據所述第一節點1101的節點信息更新第二節點1102的分級廣播域表,並向所述第一節點1101發送第二確認報文,所述第二確認報文中攜帶更新後的分級廣播域表;以及
在所述處理單元11021確定所述第一節點1101不為新增節點時,根據向所述第一節點1101發送第三確認報文,所述第三確認報文中攜帶所述第二節點1102的分級廣播域表。
一種可選方案,所述收發單元11022,還用於在所述處理單元11021與所述第一節點建立第一vxlan隧道之後,若確定所述第二節點1102的帶寬佔用率大於第一閾值時,則基於所述第一vxlan隧道向所述第一節點1101發送第二協商報文,所述第二協商報文用於指示所述第一節點1101將所述第一節點1101的分級廣播域表存儲的所述第二節點1102對應的節點信息所具備的流量轉發優先級降低;或
另一種可選方案,所述收發單元11022,還用於在所述處理單元11021與所述第一節點1101建立第一vxlan隧道之後,若確定所述第二節點1102的帶寬佔用率小於第二閾值時,則基於所述第一vxlan隧道向所述第一節點1101發送第三協商報文,所述第三協商報文用於指示所述第一節點1101將所述第一節點1101的分級廣播域表存儲的所述第二節點1102對應的節點信息所具備的流量轉發優先級修改為最高流量轉發優先級;
其中,所述第二閾值小於所述第一閾值。
基於相同構思,參見圖12,為本發明實施例提供的一種網絡設備1200。該網絡設備1200可以執行上述各實施例中第二節點所實施的步驟或執行的功能。該從設備可包括:收發器1201、處理器1202和存儲器1203。處理器1202用於網絡設備1200的操作;存儲器1203可以包括只讀存儲器和隨機存取存儲器,存儲有處理器1202可以執行的指令和數據。存儲器1203的一部分還可以包括非易失行隨機存取存儲器(nvram)。收發器1201、處理器1202和存儲器1203等各組件通過總線1209連接,其中總線1209除包括數據總線之外, 還可以包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線1209。
本發明實施例揭示的一種轉發流量的方法可以應用於處理器1202中,或者由處理器1202實現。在實現過程中,處理流程的各步驟可以通過處理器1202中的硬體的集成邏輯電路或者軟體形式的指令完成。處理器1202可以是通用處理器、數位訊號處理器、專用集成電路、現場可編程門陣列或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件,可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器1203,處理器1202讀取存儲器1203中存儲的信息,結合其硬體完成一種轉發流量的方法的步驟。
所述處理器1202與廣播域中流量轉發優先級最高的子廣播域中的第二節點建立第一vxlan虛擬擴展區域網隧道,所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個子廣播域中包括多個節點,每個節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同;所述收發器1201基於所述第一vxlan隧道向所述第二節點發送探測報文,並接收所述第二節點返回的第一確認報文,所述探測報文用於探測所述第二節點的運行情況;以及在所述處理器1202確定所述第二節點運行正常之後,基於所述第一vxlan隧道通過所述第二節點轉發流量。
可選地,所述收發器1201獲取分級廣播域表,所述分級廣播域表包括節點信息,所述節點信息包括流量轉發優先級信息以及角色信息;其中具有相同流量轉發優先級的節點歸屬於同一子廣播域;所述處理器1202根據所述分級廣播域表與所述廣播域中流量轉發優先級最高的子廣播域中的第二節點建立 第一vxlan隧道。
可選地,當所述流量轉發優先級最高的子廣播域中有多個網關節點時,所述收發器1201向所述多個網關節點轉發流量以實現負載分擔或者根據選擇策略向所述多個網關節點中的至少一個網關節點轉發流量。
可選地,所述收發器1201獲取所述廣播域內各節點的節點信息;並根據所述廣播域內各節點的節點信息中的流量轉發優先級信息,創建所述分級廣播域表。
可選地,所述收發器1201獲取第一節點的節點信息,所述第一節點為待轉發流量的節點;向所述廣播域中流量轉發優先級最高的子廣播域中的第二節點發送第一協商報文,所述第一協商報文中包括所述第一節點的節點信息;接收所述第二節點發送的第二確認報文,所述第二確認報文中攜帶所述第二節點的分級廣播域表;所述存儲器1203存儲所述分級廣播域表。
可選地,所述收發器1201接收所述第二節點發送的第二協商報文,所述第二協商報文指示所述第二節點的流量轉發優先級有更新;並在所述處理器1202根據更新後的流量轉發優先級更新所述分級廣播域表之後,根據更新後的分級廣播域表選擇節點建立vxlan隧道以進行流量轉發。
可選地,所述處理器1202在確定所述第二節點運行不正常之後,與流量轉發優先級次高的子廣播域中的第三節點建立第二vxlan隧道,並通知所述收發器1201基於所述第二vxlan隧道通過所述第三節點轉發流量。
可選地,所述處理器1202在確定所述第二節點運行不正常之後,若所述收發器1201接收到所述第二節點發送的招呼報文,則與所述第二節點建立第三vxlan隧道,並基於所述第三vxlan隧道通過所述第二節點轉發流量,所述招呼報文用於向第一節點通知所述第二節點運行正常。
可選地,所述收發器1201每間隔設定時長向所述第二節點發送一次所述探測報文。
基於相同構思,參見圖13,為本發明實施例提供的一種網絡設備1300。 該網絡設備1300可以執行上述各實施例中第一節點所實施的步驟或執行的功能.該網絡設備1300可包括:收發器1301、處理器1302和存儲器1303。處理器1302用於網絡設備1300的操作;存儲器1303可以包括只讀存儲器和隨機存取存儲器,存儲有處理器1302可以執行的指令和數據。存儲器1303的一部分還可以包括非易失行隨機存取存儲器(nvram)。收發器1301、處理器1302和存儲器1303等各組件通過總線1309連接,其中總線1309除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線1309。
本發明實施例揭示的一種轉發流量的方法可以應用於處理器1302中,或者由處理器1302實現。在實現過程中,處理流程的各步驟可以通過處理器1302中的硬體的集成邏輯電路或者軟體形式的指令完成。處理器1302可以是通用處理器、數位訊號處理器、專用集成電路、現場可編程門陣列或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件,可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器1303,處理器1302讀取存儲器1303中存儲的信息,結合其硬體完成一種轉發流量的方法的步驟。
所述收發器1301接收廣播域中的第一節點發送的第一隧道建立請求,所述第一節點為待轉發流量的節點;所述廣播域包括多個子廣播域,不同的子廣播域對應的流量轉發優先級不同,每個所述子廣播域中包括多個節點,每個所述節點的流量轉發優先級與該節點所在的子廣播域的流量轉發優先級相同,所述第二節點為所述廣播域中流量轉發優先級最高的子廣播域中的節點;所述處理器1302根據所述第一節點發送的第一隧道建立請求與所述第一節點建立第 一vxlan隧道;所述收發器1301接收第一節點發送的探測報文,並向所述第一節點返回第一確認報文,所述第一確認報文用於指示所述第一節點該第二節點的運行情況;並通過所述第一vxlan隧道接收所述第一節點轉發的流量。
可選地,在所述處理器1302確認自身運行正常時在規定時長內向所述第一節點返回所述第一確認報文。
可選地,若在所述處理器1302確認所述第二節點運行不正常時,所述收發器1301在規定時長後向所述第一節點返回第一確認報文,並
在所述處理器1302確認所述第二節點恢復到運行正常時,所述收發器1301向所述第一節點發送招呼報文,所述招呼報文用於向所述第一節點通知所述第二節點運行正常。
可選地,所述收發器1301向所述第一節點發送招呼報文之後,接收所述第一節點發送的第二隧道建立請求;所述處理器1302根據所述第一節點發送的第二隧道建立請求與所述第一節點建立第二vxlan隧道。
可選地,所述收發器1301在所述處理器1302與所述第一節點建立第一vxlan隧道之後,接收所述第一節點發送的第一協商報文,所述第一協商報文中包括所述第一節點的節點信息;所述處理器1302根據所述第一節點的節點信息,確定所述第一節點是否為新增節點;所述收發器1301在所述處理器1302確定所述第一節點為新增節點時,根據所述第一節點的節點信息更新第二節點的分級廣播域表,並向所述第一節點發送第二確認報文,所述第二確認報文中攜帶更新後的分級廣播域表;以及在所述處理器1302確定所述第一節點不為新增節點時,向所述第一節點發送第三確認報文,所述第三確認報文中攜帶所述第二節點的分級廣播域表。
可選地,所述收發器1301在所述處理器1302與所述第一節點建立第一vxlan隧道之後,若確定所述第二節點的帶寬佔用率大於第一閾值時,則基於所述第一vxlan隧道向所述第一節點發送第二協商報文,所述第二協商報文用於指示所述第一節點將所述第一節點的分級廣播域表存儲的所述第二節 點對應的節點信息所具備的流量轉發優先級降低;或
所述收發器1301在所述處理器1302與所述第一節點建立第一vxlan隧道之後,若確定所述第二節點的帶寬佔用率小於第二閾值時,則基於所述第一vxlan隧道向所述第一節點發送第三協商報文,所述第三協商報文用於指示所述第一節點將所述第一節點的分級廣播域表存儲的所述第二節點對應的節點信息所具備的流量轉發優先級修改為最高流量轉發優先級;其中,所述第二閾值小於所述第一閾值。
本領域內的技術人員應明白,本發明的實施例可提供為方法、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個 流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明範圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。