實現(xiàn)虛擬擴展局域網(wǎng)三層轉(zhuǎn)發(fā)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種實現(xiàn)VXLAN(Virtual extensible Local Area化twork,虛擬擴展局域網(wǎng))Η層轉(zhuǎn)發(fā)的方法和裝置。
【背景技術(shù)】
[0002] 云計算已經(jīng)成為當前企業(yè)信息技術(shù)建設(shè)的常規(guī)形態(tài),而在云計算中大量采用和部 署的虛擬化幾乎成為一個基本的技術(shù)模式。SDN(Software Defined Networking,軟件定義 網(wǎng)絡(luò))是當前盛行的一種虛擬化解決方案,其核必理念是將網(wǎng)絡(luò)的控制平面和轉(zhuǎn)發(fā)平面相 分離,把網(wǎng)絡(luò)的控制平面,如所有轉(zhuǎn)發(fā)行為的決策都遷移到集中式的控制器(Controller) 上,轉(zhuǎn)發(fā)設(shè)備采用控制器下發(fā)的流表進行轉(zhuǎn)發(fā)。
[0003] SDN總體上有Η種類型的實現(xiàn)方案;基于專用接口的方案、基于Overlay (疊加) 網(wǎng)絡(luò)的方案和基于開放協(xié)議的方案。其中,Overlay指的是一種網(wǎng)絡(luò)架構(gòu)上疊加的虛擬化技 術(shù)模式,采用將一個報文(或數(shù)據(jù)頓)封裝在另一個報文內(nèi)的方式,來實現(xiàn)網(wǎng)絡(luò)的虛擬化。
[0004] VXLAN是目前獲得較多支持的Overlay協(xié)議,VXLAN網(wǎng)絡(luò)成為構(gòu)建大二層的數(shù)據(jù)中 必的一種選擇。鑒于數(shù)據(jù)中必往往承擔(dān)著重要的業(yè)務(wù)功能,數(shù)據(jù)流量大,VXLAN網(wǎng)絡(luò)的性能 成為影響業(yè)務(wù)的關(guān)鍵因素。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本申請?zhí)峁┮环N實現(xiàn)VXLAN Η層轉(zhuǎn)發(fā)的方法,應(yīng)用在SDN控制器上,所 述方法包括:
[0006] 接收VXLAN隧道終點VTEP上送的需要進行Η層轉(zhuǎn)發(fā)的報文;
[0007] 確定至少一個與所述報文的源節(jié)點在同一個VXLAN內(nèi)、并且與所述報文的目的節(jié) 點流量可達的VXLAN網(wǎng)關(guān)作為轉(zhuǎn)發(fā)網(wǎng)關(guān);
[0008] 向所述VTEP下發(fā)至少一條流表;每條流表對應(yīng)至少一個轉(zhuǎn)發(fā)網(wǎng)關(guān),所述每條流表 用于:指示所述VTEP將從所述源節(jié)點發(fā)往所述目的節(jié)點的報文,發(fā)送到該流表對應(yīng)的一個 轉(zhuǎn)發(fā)網(wǎng)關(guān)進行Η層轉(zhuǎn)發(fā)。
[000引本申請還提供了一種實現(xiàn)VXLAN立層轉(zhuǎn)發(fā)的裝置,應(yīng)用在SDN控制器上,所述裝置 包括:
[0010] 上送報文接收單元,用于接收VTEP上送的需要進行Η層轉(zhuǎn)發(fā)的報文;
[0011] 轉(zhuǎn)發(fā)網(wǎng)關(guān)確定單元,用于確定至少一個與所述報文的源節(jié)點在同一個VXLAN內(nèi)、 并且與所述報文的目的節(jié)點流量可達的VXLAN網(wǎng)關(guān)作為轉(zhuǎn)發(fā)網(wǎng)關(guān);
[0012] 流表下發(fā)單元,用于向所述VTEP下發(fā)至少一條流表;每條流表對應(yīng)至少一個轉(zhuǎn)發(fā) 網(wǎng)關(guān),所述每條流表用于:指示所述VTEP將從所述源節(jié)點發(fā)往所述目的節(jié)點的報文,發(fā)送 到該流表對應(yīng)的一個轉(zhuǎn)發(fā)網(wǎng)關(guān)進行Η層轉(zhuǎn)發(fā)。
[0013] 由W上技術(shù)方案可見,本申請的實施例中將網(wǎng)絡(luò)中到目的節(jié)點可達的一個到多個 VXLAN網(wǎng)關(guān)作為轉(zhuǎn)發(fā)網(wǎng)關(guān)來進行Η層轉(zhuǎn)發(fā),實現(xiàn)了源節(jié)點Η層流量的動態(tài)分配,避免了流量 固定在某個VXLAN網(wǎng)關(guān)上造成的擁堵,提高了網(wǎng)絡(luò)性能。
【附圖說明】
[0014] 圖1是一個例子中一種VXLAN網(wǎng)絡(luò)的組網(wǎng)結(jié)構(gòu)圖;
[0015] 圖2是一個例子中SDN控制器所在設(shè)備的硬件架構(gòu)示意圖;
[0016] 圖3是一個例子中一種實現(xiàn)VXLAN Η層轉(zhuǎn)發(fā)的方法的流程圖;
[0017] 圖4是一個例子中圖1所示的VXLAN網(wǎng)絡(luò)中兩個轉(zhuǎn)發(fā)網(wǎng)關(guān)形成兩條轉(zhuǎn)發(fā)路徑的示 意圖;
[0018] 圖5是一個例子中一種實現(xiàn)VXLAN Η層轉(zhuǎn)發(fā)的裝置的邏輯結(jié)構(gòu)圖。
【具體實施方式】
[001引 圖1所示是一種VXLAN網(wǎng)絡(luò)可能具有的組網(wǎng)結(jié)構(gòu),交換機120連接VTEP (VXLAN Tunnel End 化int,VXLAN 隧道端點)131 和 VTEP 132, VXLAN 網(wǎng)關(guān) 161 連接交換機 120, VXLAN網(wǎng)關(guān)162連接VTEP 132。服務(wù)器141連接VTEP 131和VTEP 132,服務(wù)器142連接 VTEP 132,非VXLAN網(wǎng)絡(luò)中的路由器180與VXLAN網(wǎng)關(guān)161和162連接,非VXLAN網(wǎng)絡(luò)中的 主機190連接到路由器180。其中,VTEP 132運行在一臺交換機上。
[0020] 服務(wù)器 141 上運行 VM(Virtual Machine,虛擬機)1、VM2 和 vSwitch(Virtual Switch,虛擬交換機)151,VTEP 131作為VM1和VM2的接入設(shè)備,通過vSwitch 151將VM1 和VM2連接到VXLAN網(wǎng)絡(luò);服務(wù)器142上運行VM3和VM4, VTEP 132作為VM3和VM4的接入 設(shè)備,將VM3和VM4連接到VXLAN網(wǎng)絡(luò)。VM1和VM2接入VXLAN 10, VM3和VM4接入VXLAN 20。接入同一個VXLAN的VM屬于同一個邏輯二層網(wǎng)絡(luò),彼此之間二層互通;接入不同VXLAN 的VM之間二層轉(zhuǎn)發(fā)相互隔離,彼此間的通信需要進行Η層轉(zhuǎn)發(fā)。SDN控制器110與上述各 個設(shè)備間分別建立安全通道,通過安全通道與各個設(shè)備進行消息交互,實現(xiàn)流表表項下發(fā)、 查詢W及狀態(tài)上報等功能。需要說明的是,圖1中僅示出SDN控制器110與交換機120的 連接關(guān)系,SDN控制器110與其他設(shè)備的連接關(guān)系未示出。
[0021] W VM1向主機190第一次發(fā)送報文為例,在VM1上,通過比較主機190的IP地址 和本地配置的子網(wǎng)掩碼,得知到主機190的報文需要經(jīng)過Η層轉(zhuǎn)發(fā),則發(fā)送給主機190的報 文的目的IP地址為主機190的IP地址ΙΡ-190、目的MAC (Media Access Control,媒體接 入控制)地址為本地配置的缺省網(wǎng)關(guān)(設(shè)VMl上配置的缺省網(wǎng)關(guān)為VXLAN網(wǎng)關(guān)161)的MAC 地址MAC-161。VM1發(fā)送的報文經(jīng)過vSwitch 151后到達VTEP 131。
[0022] VTEP 131在本地的流表中未發(fā)現(xiàn)與VM1發(fā)送給主機190的報文匹配的流表,將該 報文上送到SDN控制器110。
[0023] SDN控制器110上保存有其管理域內(nèi)各個VM、vSwitch、VXLAN網(wǎng)關(guān)、W及其他被管 理設(shè)備的信息,如VM的IP地址、MAC地址、所連接的vSwitch、所在的VXLAN等信息,VXLAN 網(wǎng)關(guān)的VTEP IP地址、所在的各個VXLAN、與非VXLAN網(wǎng)絡(luò)的路由信息等。根據(jù)送些信息,SDN 控制器110得知VM1屬于VXLAN 10,其缺省網(wǎng)關(guān)的VTEP IP為IP-161,向VTEP 131下發(fā)流 表,令VTEP 131對該報文進行VXLAN封裝,封裝的外層目的IP地址為IP-161, VNI (VXLAN 化twork Identifier, VXLAN網(wǎng)絡(luò)標識符)為10,并發(fā)送到下一跳交換機120。
[0024] VTEP 131根據(jù)下發(fā)的流表將該報文封裝為VXLAN報文后,從連接交換機120的端 口發(fā)送。封裝后的VXLAN報文到達VXLAN網(wǎng)關(guān)161后,VXLAN網(wǎng)關(guān)161解封裝后得到原始 報文,由于該報文的目的節(jié)點主機190在非VXLAN網(wǎng)絡(luò)中,按照到主機190的路由轉(zhuǎn)發(fā)該報 文。經(jīng)過路由器180后,該報文到達目的節(jié)點主機190。
[00巧]從上述過程可知,在已有的技術(shù)方案中,SDN控制器按照源節(jié)點本地配置的缺省網(wǎng) 關(guān)向VTEP下發(fā)流表,將該源節(jié)點需要進行Η層轉(zhuǎn)發(fā)的報文發(fā)往缺省網(wǎng)關(guān),由缺省網(wǎng)關(guān)做Η 層路由轉(zhuǎn)發(fā)。在大二層網(wǎng)絡(luò)中,通常保持虛擬機的網(wǎng)絡(luò)配置不變,送樣,配置了同一個缺省 網(wǎng)關(guān)的若干個虛擬機上Η層流量都要通過送個固定的VXLAN網(wǎng)關(guān)轉(zhuǎn)發(fā),當送些虛擬機的Η 層流量大時很容易造成該VXLAN網(wǎng)關(guān)的擁塞,嚴重的降低了網(wǎng)絡(luò)性能。
[0026] 在本申請的一個例子中,運行在SDN控制器上的VXLAN Η層轉(zhuǎn)發(fā)控制邏輯能夠?qū)?Η層流量動態(tài)分配到至少一個VXLAN網(wǎng)關(guān)上,從而避免Η層流量集中在某個VXLAN網(wǎng)關(guān)上。 請參考圖2, SDN控制器所在的設(shè)備20可W包括處理器210、存儲器220 W及網(wǎng)絡(luò)接口 230, 送些硬件通過內(nèi)部總線240相互連接。處理器210在存儲器220中運行VXLAN Η層轉(zhuǎn)發(fā)控 制邏輯,其運行流程如圖3所示。
[0027] 步驟310,接收VTEP上送的需要進行Η層轉(zhuǎn)發(fā)的報文。
[002引本例中,需要進行Η層轉(zhuǎn)發(fā)的報文包括目的節(jié)點與源節(jié)點在不同VXLAN內(nèi),即在 兩個VXLAN之間Η層轉(zhuǎn)發(fā)的報文;也包括目的節(jié)點在非VXLAN網(wǎng)絡(luò)內(nèi)的報文,如從VXLAN網(wǎng) 絡(luò)轉(zhuǎn)發(fā)到普通Η層物理網(wǎng)絡(luò)的報文。
[0029] 當VTEP收到源節(jié)點發(fā)送的報文,并且在本地的流表中未找到與該報文匹配的表 項時,將該報文上送的SDN控制器。
[0030] 步驟320,確定至少一個與上送報文的源節(jié)點在同一個VXLAN內(nèi)、并且與上送報文 的目的節(jié)點流量可達的VXLAN網(wǎng)關(guān)作為轉(zhuǎn)發(fā)網(wǎng)關(guān)。
[0031] 如前所述,SDN控制器上維護著其管理域內(nèi)所有被管理設(shè)備的信息,包括被管理設(shè) 備本身的地址、VXLAN等配置信息,也包括被管理設(shè)備的連接鏈路、路由等信息。根據(jù)送些 信息,SDN控制器可W得知哪些VXLAN網(wǎng)關(guān)是與上送的報文的源節(jié)點在同一個VXLAN內(nèi),且 與上送的報文的目的節(jié)點流量可達的VXLAN網(wǎng)關(guān),并從中選擇至少一個VXLAN網(wǎng)關(guān)作為轉(zhuǎn) 發(fā)網(wǎng)關(guān)。
[0032] 對在兩個VXLAN之間的Η層轉(zhuǎn)發(fā),如果源節(jié)點所在VXLAN中的VXLAN網(wǎng)關(guān)能夠把 報文傳輸?shù)綄⒛康墓?jié)點接入其所在VXLAN的VTEP,則該VXLAN網(wǎng)關(guān)與目的節(jié)點流量可達; 對目的節(jié)點在非VXLAN網(wǎng)絡(luò)內(nèi)