【技術領域】
本發明涉及通信技術領域,尤其涉及一種隧道建立的方法及通信系統。
背景技術:
虛擬可擴展局域網技術(vxlan)是一種隧道封裝技術,能在三層網絡的基礎上建立二層網絡隧道,從而實現跨地域的二層互連,實現大二層。目前在某些實際應用場景中,利用vxlan實現大二層需要hub-spoke組網模式。在這種組網模式下,存在一個中心節點(hub站點)和多個接入節點(spoke站點),spoke-vtep(vtep-client,vxlan隧道終端節點客戶機)之間的數據交換必須通過hub-vtep(vtep-server,vxlan隧道終端節點服務器),而不允許各個spoke-vtep之間直接進行數據交換。很多情況下,hub-spoke組網模式下的網絡規模比較大。同時在這種組網模式下,要求spoke站點動態的加入和刪除,實現大二層的可伸縮擴展。
現有技術中,通過靜態配置法建立vxlan隧道,靜態配置法通過配置命令或管理頁面配置網絡中的每個vxlan隧道。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題:
在hub-spoke組網模式下,網絡規模大,且網絡環境處于動態變化過程中,此時通過靜態配置法配置網絡中每個vxlan隧道,需要單個vxlan隧道一一人工配置,過程繁多,操作復雜。
技術實現要素:
有鑒于此,本發明實施例提供了一種隧道建立的方法及通信系統,利用sdn控制思想,在sdn控制器感知到vtepclient接入vtepserver,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立鄰居地址為vtepclient的本地ip地址的vtep的命令,實現vxlan隧道的自動配置。
一方面,本發明實施例提供一種隧道建立的方法,適用于通信系統,所述通信系統包括軟件定義網絡sdn控制器、虛擬可擴展局域網服務器vxlanserver及其虛擬可擴展局域網隧道終端節點vtepserver、虛擬可擴展局域網客戶端vxlanclient及其虛擬可擴展局域網終端節點vtepclient,sdn控制器與vxlanserver通信,vxlanserver與vxlanclient通信,所述方法包括:
在vxlanserver端,通過sdn控制器啟動vtepserver,以監測vxlanclient的接入;且在vxlanclient端,將vtepclient的鄰居地址配置為vtepserver的本地網絡之間互連協議ip地址;
若sdn控制器感知到vxlanclient接入時,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址;
vxlanserver根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述通信系統還包括主機hosts,vxlanserver、vxlanclient分別與各自對應的hosts進行通信,則在所述vxlanserver根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep之后,所述方法還包括:
當vxlanclient對應的host訪問vxlanserver對應的host,或其他vxlanclient對應的host時,vtepclient將原始報文打包成vxlan報文,并傳輸給vxlanserver;
vxlanserver接收到vxlan報文時,通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,若sdn控制器無法感知到vxlanclient接入,當vxlanserver接收到vxlan報文,不存在鄰居地址為vxlanclient本地ip地址的vtep時,則在vxlanserver通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host之前,所述方法還包括:
vxlanserver通過vtepserver將vxlan報文處理為原始報文;
vxlanserver將攜帶原始報文的packetin報文發送給sdn控制器;
sdn控制器根據packetin報文進行vtep的鄰居地址信息被動學習,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vxlanclient的本地ip地址;
vxlanserver根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep;
sdn控制器將攜帶原始報文的packetout報文傳回vxlanserver;
則vxlanserver接收到vxlan報文時,通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host,包括,
vxlanserver接收到攜帶原始報文的packetout報文時,將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,在vxlanserver建立鄰居地址為vtepclient本地ip地址的vtep之后,所述方法還包括:
vtepserver向vtepclient周期性地發送在線查詢echorequest報文。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,在所述vtepserver向vtepclient周期性地發送echorequest報文之后,所述方法還包括:
當vxlanclient在線時,vtepclient向vtepserver返回在線答復echoreply報文。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,在所述vtepserver向vtepclient周期性地發送echorequest報文之后,所述方法還包括:
當vxlanclient下線時,通知sdn控制器,sdn控制器向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,在所述vtepserver向vtepclient周期性地發送echorequest報文之后,所述方法還包括:
若sdn控制器在指定時間沒有收到vtepclient返回的echoreply報文,或無法獲取vtepclient的流量消耗時,sdn控制器向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
另一方面,本發明實施例提供一種通信系統,所述通信系統分為vxlanserver端和vxlanclient端,vxlanserver端包括軟件定義網絡sdn控制器、虛擬可擴展局域網服務器vxlanserver及其虛擬可擴展局域網隧道終端節點vtepserver,vxlanclient端包括虛擬可擴展局域網客戶端vxlanclient及其虛擬可擴展局域網終端節點vtepclient,sdn控制器與vxlanserver通信,vxlanserver與vxlanclient通信:
vxlanserver端,通過sdn控制器啟動vtepserver,以監測vxlanclient的接入;
vxlanclient端,將vtepclient的鄰居地址配置為vtepserver的本地網絡之間互連協議ip地址;
sdn控制器,用于在感知到vxlanclient接入時,主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址;
vxlanserver,用于根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述通信系統的vxlanserver端和vxlanclient端還包括各自對應的主機hosts,vxlanserver、vxlanclient分別與各自對應的hosts進行通信,則:
vtepclient,用于當vxlanclient對應的host訪問vxlanserver對應的host,或其他vxlanclient對應的host時,將原始報文打包成vxlan報文,并傳輸給vxlanserver;
vxlanserver,用于在接收到vxlan報文時,通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,若sdn控制器無法感知到vxlanclient接入,當vxlanserver接收到vxlan報文,不存在鄰居地址為vxlanclient本地ip地址的vtep時,則:
vxlanserver,用于通過vtepserver將vxlan報文處理為原始報文;
vxlanserver,還用于將攜帶原始報文的packetin報文發送給sdn控制器;
sdn控制器,用于根據packetin報文進行vtep的鄰居地址信息被動學習,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vxlanclient的本地ip地址;
vxlanserver,用于根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep;
sdn控制器,還用于將攜帶原始報文的packetout報文傳回vxlanserver;
vxlanserver,還用于在接收到攜帶原始報文的packetout報文時,將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,vtepserver,用于向vtepclient周期性地發送echorequest報文。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,vtepclient,用于當vxlanclient在線時,向vtepserver返回echoreply報文。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,sdn控制器,用于接收到vxlanclient下線通知時,向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,sdn控制器,用于在指定時間沒有收到vtepclient返回的echoreply報文,或無法獲取vtepclient的流量消耗時,向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
本發明實施例提供了一種隧道建立的方法及通信系統,首先vtepclient的鄰居地址配置為vtepserver的本地ip地址,再利用sdn控制思想,在sdn控制器感知到vtepclient接入vtepserver,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立鄰居地址為vtepclient的本地ip地址的vtep的命令,vxlanserver根據命令建立vtep,實現vxlan隧道的自動配置。且不需要復雜的自定義鄰居發現協議,實現過程簡單快捷。
【附圖說明】
為了更清楚地說明本發明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其它的附圖。
圖1是本發明實施例提供的一種隧道建立的方法流程圖;
圖2是本發明實施例提供的另一種隧道建立的方法流程圖;
圖3是本發明實施例提供的另一種隧道建立的方法流程圖;
圖4a是本發明實施例提供的另一種隧道建立的方法流程圖;
圖4b是本發明實施例提供的另一種隧道建立的方法流程圖;
圖5a是本發明實施例提供的另一種隧道建立的方法流程圖;
圖5b是本發明實施例提供的另一種隧道建立的方法流程圖;
圖6a是本發明實施例提供的另一種隧道建立的方法流程圖;
圖6b是本發明實施例提供的另一種隧道建立的方法流程圖;
圖7a是本發明實施例提供的另一種隧道建立的方法流程圖;
圖7b是本發明實施例提供的另一種隧道建立的方法流程圖;
圖8是本發明實施例提供的一種通信系統的組成示意圖;
圖9是本發明實施例提供的另一種通信系統的組成示意圖。
【具體實施方式】
為了更好的理解本發明的技術方案,下面結合附圖對本發明實施例進行詳細描述。
應當明確,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其它實施例,都屬于本發明保護的范圍。
在本發明實施例中使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本發明。在本發明實施例和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。
應當理解,盡管在本發明實施例中可能采用術語第一、第二來描述傳輸單元、發送單元、下發單元,但不應限于這些術語。這些術語僅用來將傳輸單元等彼此區分開。例如,在不脫離本發明實施例范圍的情況下,第一傳輸也可以被稱為第二傳輸單元,類似地,第二傳輸單元也可以被稱為第一傳輸單元。
取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”或“響應于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當確定時”或“響應于確定”或“當檢測(陳述的條件或事件)時”或“響應于檢測(陳述的條件或事件)”。
本發明實施例提供了一種隧道建立的方法,適用于通信系統,所述通信系統包括軟件定義網絡sdn(softwaredefinenetwork)控制器、虛擬可擴展局域網服務器vxlanserver(virtualextensiblelanserver)及其虛擬可擴展局域網隧道終端節點vtepserver(vxlantunnelendpointserver)、虛擬可擴展局域網客戶端vxlanclient及其虛擬可擴展局域網終端節點vtepclient,sdn控制器與vxlanserver通信,vxlanserver與vxlanclient通信,適用于hub-spoke組網模式的大二層vxlan網絡中vxlan隧道的建立過程中。
其中,vxlan是建立在物理網絡互連協議網絡之上的虛擬以太網,使用24位vxlan網絡標識符,最大支持16000000個邏輯網絡,vxlan可跨越物理三層網絡,使用用戶數據包協議(userdatagramprotocol,udp)封裝能在三層物理網絡上建立二層邏輯網絡,實現大二層網絡。
vtep是vxlan隧道終端節點(vxlantunnelingendpoint),用于對vxlan報文進行封裝和解封裝。在vxlan隧道一端的vtep封裝原始報文后生成vxlan報文,通過vxlan隧道向另一端vtep發送vxlan報文,另一端vtep接收到封裝的vxlan報文解封裝后根據被封裝的mac(mediaaccesscontroller,媒體訪問控制子層)地址進行轉發。
服務器端的vtep稱為vtepserver,客戶機端的vtep稱為vtepclient。
如圖1所示,所述方法包括:
101、在vxlanserver端,通過sdn控制器啟動vtepserver,以監測vxlanclient的接入;且在vxlanclient端,將vtepclient的鄰居地址配置為vtepserver的本地網絡之間互連協議ip地址。
需要說明的是,vtepserver是vxlanserver的原始vtep,原始vtepsever與vtepclient不構成vxlan隧道,只用于接收vxlan報文,以監測vxlanclient的接入。
需要說明的是,vtepserver的本地ip地址即為vxlanserver的本地ip地址。
需要說明的是,vtepserver的vni(vxlannetworkidentifier,vxlan網絡標識)為任意有效vni值,用于整個大二層的標識。
進一步說明的是,vtepclient的vni配置為與vtepserver的vni相同。
102、若sdn控制器感知到vxlanclient接入時,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
其中,南向接口協議指的是ovsdb協議。
需要說明的是,步驟102僅發生在sdn控制器可以感知到vxlanclient接入時,比如vtepclient也在sdn控制器管理下,或者vtepclient的接入可以通過第三方裝置(比如通過演進數據核心網控制器)通知sdn控制器。
需要說明的是,vtepclient的本地ip地址即為vxlanclient的本地ip地址。
103、vxlanserver根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
本發明實施例提供了一種隧道建立的方法,首先vtepclient的鄰居地址配置為vtepserver的本地ip地址,再利用sdn控制思想,在sdn控制器感知到vtepclient接入vtepserver,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立鄰居地址為vtepclient的本地ip地址的vtep的命令,vxlanserver根據命令建立vtep,實現vxlan隧道的自動配置。且不需要復雜的自定義鄰居發現協議,實現過程簡單快捷。
進一步來說,結合前述方法流程,所述通信系統還包括主機hosts,vxlanserver、vxlanclient分別與各自對應的hosts進行通信。因此針對hosts之間的數據傳輸過程,本發明實施例的另一種可能的實現方式還提供了以下方法流程,執行在步驟103之后,如圖2所示,包括:
104、當vxlanclient對應的host訪問vxlanserver對應的host,或其他vxlanclient對應的host時,vtepclient將原始報文打包成vxlan報文,并傳輸給vxlanserver。
其中,主機hosts指的是在網絡技術中是關于發送與接收信息的終端設備。需要說明的是主機hosts也可以是虛擬主機,比如網絡空間或數據庫空間等。
其中,原始報文指的是原始數據包。vxlan報文指的是將原始數據包封裝上vxlan報文頭的vxlan格式的數據包。
vtepclient將原始報文打包成vxlan報文后,可以通過路由器(比如3層路由,l3route)傳輸給vxlanserver。
105、vxlanserver接收到vxlan報文時,通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
當vxlanclient對應的host訪問vxlanserver對應的host,vxlanserver接收到vxlan報文時,鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,之后vxlanserver將原始報文轉發給vxlanserver對應的host。
當vxlanclient對應的host訪問其他vxlanclient對應的host時,vxlanserver接收到vxlan報文時,鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并經過其他vtep(與其他vxlanclient對應)將原始報文重新打包為vxlan報文,之后vxlanserver將vxlan報文轉發給其他vxlanclient對應的host。
其中,鄰居地址為vxlanclient本地ip地址的vtep剝去vxlan報文頭,以將vxlan報文頭處理為原始報文。
進一步來說,結合前述方法流程,若sdn控制器無法感知到vxlanclient接入,即當vxlanserver接收到vxlan報文,不存在鄰居地址為vxlanclient本地ip地址的vtep時,sdn控制器可以被動學習vtep的鄰居地址,以建立鄰居地址為vxlanclient的本地ip地址的vtep,因此本發明實施例的另一種可能的實現方式還提供了以下方法流程,執行在步驟105之前,如圖3所示,包括:
106、vxlanserver通過vtepserver將vxlan報文處理為原始報文。
需要說明的是,當vxlanserver接收到vxlan報文,不存在鄰居地址為vxlanclient本地ip地址的vtep時,通過原始vtepserver進行報文接收。
107、vxlanserver將攜帶原始報文的packetin報文發送給sdn控制器。
108、sdn控制器根據packetin報文進行vtep的鄰居地址信息被動學習,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vxlanclient的本地ip地址。
需要說明的是,步驟108是sdn控制器被動學習vtep鄰居地址的過程,當sdn控制器無法主動學習時,采用被動學習,通過sdn控制器被動學習vtep鄰居地址,適用范圍更廣,更具有實用性。可實現vxlan隧道的自動配置。且不需要復雜的自定義鄰居發現協議,實現過程簡單快捷。
109、vxlanserver根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
110、sdn控制器將攜帶原始報文的packetout報文傳回vxlanserver。
則步驟105具體執行為:
1051、vxlanserver接收到攜帶原始報文的packetout報文時,將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
進一步來說,結合前述方法流程,在vxlanserver建立鄰居地址為vtepclient本地ip地址的vtep之后,為了實時監測vxlanclient是否在線,本發明實施例的另一種可能的實現方式還提供了以下方法流程,執行在步驟103或步驟109之后,如圖4a或圖4b所示,包括:
111、vtepserver向vtepclient周期性地發送在線查詢echorequest報文。
其中,echorequest報文可以用于查詢vxlanclient是否在線,當收到在線回復echoreply報文時,認為vxlanclient在線。
進一步來說,結合前述方法流程,vxlanclient在線和離線時,vtepclient會執行不同的流程通知vtepserver,使vtepserver對建立的鄰居地址為vtepclient本地ip地址的vtep做出相應處理,因此針對vxlanclient在線和離線兩種情況,本發明實施例的另一種可能的實現方式還提供了以下方法流程,執行在步驟111之后。
首先,vxlanclient在線時,分別如圖5a、圖5b所示,包括:
112、當vxlanclient在線時,vtepclient向vtepserver返回在線回復echoreply報文。
vxlanclient在線時,vxlanserver對鄰居地址為vtepclient的本地ip地址的vtep不做任何處理,繼續保持數據的傳輸。
其次,vxlanclient離線時,有兩種不同實現方式。
第一種實現方式,如圖6a、圖6b所示,包括:
113、當vxlanclient下線時,通知sdn控制器,sdn控制器向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
第二種實現方式,如圖7a、圖7b所示,包括:
114、若sdn控制器在指定時間沒有收到vtepclient返回的echoreply報文,或無法獲取vtepclient的流量消耗時,sdn控制器向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
sdn控制器在指定時間沒有收到vtepclient返回的echoreply報文,或無法獲取vtepclient的流量消耗時,均認為vxlanclient離線。
vxlanclient離線時,vxlanserver刪除鄰居地址為vtepclient的本地ip地址的vtep。
為了將本發明實施例的通信系統更加清晰的展現,基于前述所有方法實施例,給出通信系統的一個示意性框圖,見圖8,圖8中有兩個客戶端,兩個客戶端相關各設備均以編號a、b區分。
基于前述總體流程,本發明實施例還提供了針對總體流程的一種具體實現方式,本實施例中以hub-spoke組網模式的企業內部的通信系統為例進行舉例說明。
如圖9所示,為lte(longtermevolution,通用移動通信技術的長期演進)移動通信網絡中,企業內部的通信系統的一個示意性框圖。其中,無線終端接入設備cpe-a和cpe-b部署在企業的兩個分支(分支中各設備均以編號a、b區分),epc(evolvedpacketcore,3gpp的演進分組核心網)部署在企業總部,每個分支都有自己的enb(基站)。兩個分支的pc(personalcomputer,個人電腦,主機)和總部的vxlanserver(ftpserver(filetransferprotocolserver)和dhcpserver)構成二層網絡。vtepserver通過switch(交換機)與vxlanserver通信。分支的cpe必須接入epc,分支內的pc才能和另外的分支內的pc通信,才能訪問企業總部的服務器。
圖9中,為了清晰的展示,將vtepsever、vtepa和vtepb統一示意。
本實施例中企業內部通信系統中的建立vxlan隧道的具體步驟流程,如下:
201、企業總部通過sdn控制器,啟動vxlanserver。
其中,vxlanserver的本地ip地址為epcsgi三層可達的地址。
202、分支cpe連接vxlanclient,vxlanclient配置vtepclient鄰居地址為vxlanserver的本地ip地址。
203、分支cpe接入時,epc通知sdn控制器分支cpe的vtepclient接入二層網絡,sdn控制器主動學習vtep的鄰居地址信息,并通過ovsdb協議命令給vxlanserver下發建立鄰居地址為對端cpe本地ip地址的vtep命令,以建立與對端cpe通信的vxlan隧道。
204、分支pc通過cpe訪問企業總部pc時,原始報文經過cpe的vtepclient打包,經過cpe,enb,epc到達vxlanserver。
205、當vxlanserver上有對端cpe的vxlan的隧道時,走報文正常流程,剝去vxlan報文頭,轉發給企業總部pc。
當沒有對端cpe的vxlan隧道時,vxlanserver通過vtepserver將vxlan報文處理為原始報文,并將攜帶原始報文的packetin報文發送給sdn控制器,sdn控制器根據packetin報文被動學習vtep的鄰居地址信息,通過ovsdb命令給vxlanserver下發建立鄰居地址為對端cpe本地ip的vtep命令,以建立與對端cpe通信的vxlan隧道,并將攜帶原始報文的packetout報文傳回vxlanserver。
206、vxlanserver定期發送echorequest報文給vxlanclient。
207、若cpe在線,vxlanclient回復ehcoreply報文。
若cpe下線,或設定的時間sdn控制器沒有收到vxlanclient的ehcoreply報文時,或設定的時間內沒有vxlanclient的流量消耗時,sdn控制器給vxlanserver下發刪除鄰居地址為對端cpe本地ip的vtep命令,即刪除對端cpe對應的vxlan隧道。
需要說明的是,在非lte(longtermevolution,通用移動通信技術的長期演進)移動通信網絡下,有些企業需要集中管控vxlan組成的大二層網絡數據報文的通信流量,比如統一的統計、計費或、安全策略控制。這就要求二層網絡是個hub-spoke的組網模式,整個網絡的流量都經過一個集中的hub節點。同時,企業還需要這個二層的網絡是可擴展的。在這種情況,建立vxlan隧道的方法與步驟201至步驟207的類似,不同之處是通信系統中不是cpe接入,而是其它設備的接入,此處不再贅述。
有時候,某些企業要求hub-spoke的大二層網絡,但是sdn控制器無法感知他們的spoke節點設備,并且這些spoke節點設備不支持echorequest報文的傳輸。這種情況下sdn控制器無法主動學習vtep的鄰居地址信息,因此針對這種情況,基于前述總體方法流程,本發明實施例還提供了針對總體流程的另一種具體實現方式,具體執行步驟如下:
301、企業總部通過sdn控制器,啟動vtepserver。
302、分支端,vxlanclient配置vtepclient的鄰居地址為vtepserver的本地ip。
其中,vtepclient的本地ip地址即為vxlanclient的本地ip地址;vtepclient的vni配置為與vtepserver的vni相同。
303、當vxlanclient對應的host訪問vxlanserver對應的host或其它vxlanclient對應的host時,原始報文經過vtepclient的打包成vxlan報文,經過3層路由到達vtepserver。
304、vtepserver接收到vxlan報文時,通過vtepserver將vxlan報文處理為原始報文,并將攜帶原始報文的packetin報文轉發給sdn控制器,sdn控制器根據packetin報文被動學習vtep鄰居地址,通過ovsdb命令給vxlanserver下發建立vxlanclientip的vtep命令,并將攜帶原始報文的packetout報文傳回vxlanserver。
305、當設定的時間內sdn控制器沒有獲取到vtepclient的流量消耗時,sdn控制器給vxlanserver下發刪除鄰居地址為vtepclient本地ip地址的vtep的命令。
本發明實施例還提供了一種通信系統,適用于上述方法流程,所述通信系統分為vxlanserver端和vxlanclient端,vxlanserver端包括軟件定義網絡sdn控制器、虛擬可擴展局域網服務器vxlanserver及其虛擬可擴展局域網隧道終端節點vtepserver,vxlanclient端包括虛擬可擴展局域網客戶端vxlanclient及其虛擬可擴展局域網終端節點vtepclient,sdn控制器與vxlanserver通信,vxlanserver與vxlanclient通信:
vxlanserver端,通過sdn控制器啟動vtepserver,以監測vxlanclient的接入。
vxlanclient端,將vtepclient的鄰居地址配置為vtepserver的本地網絡之間互連協議ip地址。
sdn控制器,用于在感知到vxlanclient接入時,主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
vxlanserver,用于根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
可選的是,所述通信系統的vxlanserver端和vxlanclient端還包括各自對應的主機hosts,vxlanserver、vxlanclient分別與各自對應的hosts進行通信,則:
vtepclient,用于當vxlanclient對應的host訪問vxlanserver對應的host,或其他vxlanclient對應的host時,將原始報文打包成vxlan報文,并傳輸給vxlanserver。
vxlanserver,用于在接收到vxlan報文時,通過鄰居地址為vxlanclient本地ip地址的vtep將vxlan報文處理為原始報文,并將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
可選的是,若sdn控制器無法感知到vxlanclient接入,當vxlanserver接收到vxlan報文,不存在鄰居地址為vxlanclient本地ip地址的vtep時,則:
vxlanserver,用于通過vtepserver將vxlan報文處理為原始報文。
vxlanserver,還用于將攜帶原始報文的packetin報文發送給sdn控制器。
sdn控制器,用于根據packetin報文進行vtep的鄰居地址信息被動學習,并通過南向接口協議命令向vxlanserver下發建立vtep的命令,vtep的鄰居地址為vxlanclient的本地ip地址。
vxlanserver,用于根據sdn控制器下發的建立vtep的命令,建立鄰居地址為vtepclient本地ip地址的vtep。
sdn控制器,還用于將攜帶原始報文的packetout報文傳回vxlanserver。
vxlanserver,還用于在接收到攜帶原始報文的packetout報文時,將原始報文轉發給vxlanserver對應的host,或經過其他vtep將原始報文重新打包為vxlan報文,轉發給其他vxlanclient對應的host。
可選的是,vtepserver,用于向vtepclient周期性地發送echorequest報文。
可選的是,vtepclient,用于當vxlanclient在線時,向vtepserver返回echoreply報文。
可選的是,sdn控制器,用于接收到vxlanclient下線通知時,向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
可選的是,sdn控制器,用于在指定時間沒有收到vtepclient返回的echoreply報文,或無法獲取vtepclient的流量消耗時,向vxlanserver下發刪除vtep的命令,vtep的鄰居地址為vtepclient的本地ip地址。
本發明實施例提供了一種通信系統,首先vtepclient的鄰居地址配置為vtepserver的本地ip地址,再利用sdn控制思想,在sdn控制器感知到vtepclient接入vtepserver,sdn控制器主動學習vtep的鄰居地址信息,并通過南向接口協議命令向vxlanserver下發建立鄰居地址為vtepclient的本地ip地址的vtep的命令,vxlanserver根據命令建立vtep,實現vxlan隧道的自動配置。且不需要復雜的自定義鄰居發現協議,實現過程簡單快捷。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如,多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
上述以軟件功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機裝置(可以是個人計算機,服務器,或者網絡裝置等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(read-onlymemory,rom)、隨機存取存儲器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。