国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)轉發(fā)方法、相關設備及系統(tǒng)與流程

      文檔序號:12492474閱讀:305來源:國知局
      本發(fā)明涉及通信
      技術領域
      :,尤其涉及一種數(shù)據(jù)轉發(fā)方法、相關設備及系統(tǒng)。
      背景技術
      ::隨著虛擬化、云計算技術越來越成熟,大量互聯(lián)網(wǎng)應用開始云化。很多業(yè)務邏輯直接在云內完成,導致數(shù)據(jù)中心內東西向流量的劇增,增加網(wǎng)關通信負荷的同時,也搶占了南北向流量帶寬,特別是在業(yè)務流量較多的情況下,會影響網(wǎng)關的性能和可靠性,還降低了業(yè)務通信效率。參見圖1是在同一路由域或虛擬私有云(VirtualPrivateCloud,VPC)內不同子網(wǎng)間的虛擬機(VirtualMachine,VM)進行通信的應用場景示意圖,其中白色和灰色填充的虛擬機VM分別位于不同的兩個子網(wǎng)內。當不同子網(wǎng)內的VM間(如VM-A和VM-B)進行相互通信時需要通過網(wǎng)關中轉,消耗網(wǎng)關資源(如帶寬)的同時也會造成網(wǎng)關的瓶頸擁塞。當需要通信的兩個虛擬機被部署于同一物理主機時,如果網(wǎng)關被部署于其他物理主機或交換機下,這時數(shù)據(jù)報文的迂回發(fā)送和帶寬資源的占用更加明顯。為解決上述數(shù)據(jù)報文迂回和網(wǎng)關性能的問題,現(xiàn)引入分布式虛擬路由器(DistributedVirtualRouter,DVR)?;谌鐖D1所示的場景示意圖,在每個通過網(wǎng)關通信的VM所在的物理主機上部署一個簡單的路由器,又稱內部路由器IR(InternalRouter),它可以是物理實體的、也可以是邏輯存在的;將從屬于同一網(wǎng)關下的IR以及它們之間的互通邏輯整體形成邏輯上的虛擬路由器,稱之為DVR;DVR可以將東西向子網(wǎng)間的通信卸載到二層交換機上,從而實現(xiàn)不同子網(wǎng)中的VM之間不經過網(wǎng)關進行直接互通;這樣DVR降低了對集中式網(wǎng)關路由器(如圖1所示)的寬帶資源占用和瓶頸擁塞。具體可參見如圖2所示給出一種DVR的應用場景示意圖,當不同子網(wǎng)中被部署在不同物理主機上的兩個VM之間進行數(shù)據(jù)報文互通時,與傳統(tǒng)方式相同,位于物理主機1上的VM-A不感知網(wǎng)關路由器的變化,正常發(fā)出數(shù)據(jù)報文,根據(jù)傳輸控制協(xié)議或因特網(wǎng)互聯(lián)協(xié)議(TransmissionControlProtocol/InternetProtocol,TCP/IP,中文又稱為網(wǎng)絡通訊協(xié)議)VM-A照常將該數(shù)據(jù)報文發(fā)給其所在的子網(wǎng)網(wǎng)關,由網(wǎng)關轉給VM-B。在一種可能的實現(xiàn)方式中,正常發(fā)出數(shù)據(jù)報文到該物理主機1上的虛擬交換機vSwitch,并進入VPC在本物理主機1上的IR,經過IR路由之后再次進入本物理主機1的vSwitch上,此時數(shù)據(jù)報文的目的媒體訪問控制(MediaAccessControl,MAC)地址被修改為目的VM-B的MAC地址。數(shù)據(jù)報文經由vSwitch直接轉發(fā)給目的VM-B所在的物理主機2上。數(shù)據(jù)報文經過主機間交換機后到達目的物理主機2的vSwitch,根據(jù)二層交換機轉發(fā)原則,數(shù)據(jù)報文直接解封裝進入目的VM-B,通信結束。同理可知,如果物理主機2上的VM-B向物理主機1上的VM-A發(fā)送數(shù)據(jù)報文,可通過兩者VM所在的vSwitch進行相互報文的通信,不需再通過三層網(wǎng)關路由器中轉。雖然分布式虛擬路由器DVR解決了掛接在同一網(wǎng)關上各業(yè)務子網(wǎng)之間的性能和可靠性瓶頸,但是仍未解決南北向流量通信時網(wǎng)關的性能和瓶頸擁塞問題。技術實現(xiàn)要素:本發(fā)明實施例公開了一種數(shù)據(jù)轉發(fā)方法、相關設備及系統(tǒng),能解決南北向通信存在的網(wǎng)關性能和瓶頸擁塞的問題,且網(wǎng)關實體不占用業(yè)務子網(wǎng)的IP地址。第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)轉發(fā)方法,應用于數(shù)據(jù)轉發(fā)系統(tǒng),所述系統(tǒng)包括第一子網(wǎng)和第二子網(wǎng),所述第一子網(wǎng)中包含虛擬機,所述第一子網(wǎng)配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體,所述方法包括:交換機接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述交換機根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體;所述交換機根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文;所述交換機將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體。本發(fā)明實施例中的數(shù)據(jù)轉發(fā)系統(tǒng)包括第一子網(wǎng)、第二子網(wǎng),以及分別連接所述第一子網(wǎng)和第二子網(wǎng)的交換機,所述第一子網(wǎng)中包括虛擬機,且配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體;在實際通信過程中,所述交換機接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,接著所述交換機根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體,然后所述交換機根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文,最后所述交換機將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體;這樣可解決南北向通信時由于資源不夠用而導致的網(wǎng)關瓶頸和性能問題,同時還避免了現(xiàn)有技術中由于網(wǎng)關占用業(yè)務子網(wǎng)的IP地址,引起子網(wǎng)IP地址浪費的問題。結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述交換機根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體包括:所述交換機根據(jù)所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該交換機具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,實現(xiàn)目標網(wǎng)關實體的準確查找。結合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,所述交換機根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體包括:所述交換機根據(jù)所述待訪問目標的IP地址,所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和所述虛擬機的指示標識,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該交換機具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址、以及所述虛擬機的指示標識來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,加入虛擬機信息有針對、有目的地查找目標網(wǎng)關實體。結合第一方面,在第一方面的第三種可能的實現(xiàn)方式中,所述交換機根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體包括:所述交換機向控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述交換機接收所述控制器發(fā)送的流表項,所述流表項包含所述目標網(wǎng)關實體的指示信息。通過執(zhí)行上述步驟,該交換機可以從對應的控制器中獲取包含所述目標網(wǎng)關實體的指示信息的流表項,從而確定出所述第二子網(wǎng)中的目標網(wǎng)關實體。第二方面,本發(fā)明實施例提供了一種交換機,所述交換機分別連接第一子網(wǎng)和第二子網(wǎng),所述第一子網(wǎng)中包含虛擬機,所述第一子網(wǎng)配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體,所述交換機包括:接收單元,用于接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;確定單元,用于根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體;封裝單元,用于根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文;轉發(fā)單元,用于將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體。通過執(zhí)行上述步驟,所述交換機分別連接第一子網(wǎng)和第二子網(wǎng),所述第一子網(wǎng)中包含虛擬機,所述第一子網(wǎng)配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體,通過交換機來實現(xiàn)不同子網(wǎng)中的虛擬機和網(wǎng)關實體的相互通信,這樣解決南北向通信時由于資源不夠用(如網(wǎng)關實體個數(shù)受限)而導致的網(wǎng)關瓶頸和性能問題,同時所述多個網(wǎng)關實體被部署在不同于所述虛擬機所處的子網(wǎng)內,還能避免網(wǎng)關實體占用業(yè)務子網(wǎng)IP地址,引起子網(wǎng)IP地址浪費的問題。結合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述確定單元,具體用于根據(jù)所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該確定單元具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,實現(xiàn)目標網(wǎng)關實體的準確查找。結合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述確定單元,具體用于根據(jù)所述待訪問目標的IP地址,所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和所述虛擬機的指示標識,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該確定單元具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址、以及所述虛擬機的指示標識來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,加入虛擬機信息有針對、有目的地查找目標網(wǎng)關實體。結合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述確定單元,具體用于向控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;接收所述控制器發(fā)送的流表項,所述流表項包含所述目標網(wǎng)關實體的指示信息。通過執(zhí)行上述步驟,該確定單元可以從對應的控制器中獲取包含所述目標網(wǎng)關實體的指示信息的流表項,從而確定出所述第二子網(wǎng)中的目標網(wǎng)關實體。第三方面,本發(fā)明實施例提供了一種數(shù)據(jù)轉發(fā)系統(tǒng),所述系統(tǒng)包括交換機、第一子網(wǎng)和第二子網(wǎng),所述交換機分別連接所述第一子網(wǎng)和第二子網(wǎng),所述第一子網(wǎng)中包含虛擬機,所述第一子網(wǎng)配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體,其中,所述虛擬機,用于向所述交換機發(fā)送第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述交換機,用于接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文;根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體;根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文;將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體;所述目標網(wǎng)關實體,用于接收所述交換機轉發(fā)的所述第二數(shù)據(jù)報文。本發(fā)明實施例中的數(shù)據(jù)轉發(fā)系統(tǒng)包括第一子網(wǎng)、第二子網(wǎng),以及分別連接所述第一子網(wǎng)和第二子網(wǎng)的交換機,所述第一子網(wǎng)中包括虛擬機,且配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體;通過所述交換機來實現(xiàn)不同子網(wǎng)中的虛擬機和網(wǎng)關實體的相互通信,這樣解決南北向通信時由于資源不夠用(如網(wǎng)關實體個數(shù)受限)而導致的網(wǎng)關瓶頸和性能問題,同時所述多個網(wǎng)關實體被部署在不同于所述虛擬機所處的子網(wǎng)內,還能避免網(wǎng)關實體占用業(yè)務子網(wǎng)IP地址,引起子網(wǎng)IP地址浪費的問題。結合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述交換機,具體用于根據(jù)所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該交換機具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,實現(xiàn)目標網(wǎng)關實體的準確查找。結合第三方面,在第三方面的第二種可能的實現(xiàn)方式中,所述交換機,具體用于根據(jù)所述待訪問目標的IP地址,所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和所述虛擬機的指示標識,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。通過執(zhí)行上述步驟,該交換機具體根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的Mac地址、以及所述虛擬機的指示標識來從第二子網(wǎng)中的多個網(wǎng)關實體中查找出目標網(wǎng)關實體,加入虛擬機信息有針對、有目的地查找目標網(wǎng)關實體。結合第三方面,在第三方面的第二種可能的實現(xiàn)方式中,所述系統(tǒng)還包括控制器,所述交換機,具體用于向所述控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述控制器,用于接收所述交換機發(fā)送的流表請求信息;根據(jù)所述流表請求信息攜帶的待訪問目標的IP地址確定所述待訪問目標的IP地址對應的業(yè)務類型;根據(jù)所述待訪問目標的IP地址對應的業(yè)務類型從第二子網(wǎng)內的多個網(wǎng)關實體中選擇出目標網(wǎng)關實體;根據(jù)所述目標網(wǎng)關實體的指示信息和所述流表請求消息生成對應的流表項,并將所述流表項下發(fā)給所述交換機;所述交換機,還具體用于接收所述控制器發(fā)送的流表項,所述流表項包含所述目標網(wǎng)關實體的指示信息。通過執(zhí)行上述步驟,該交換機可以從對應的控制器中獲取包含所述目標網(wǎng)關實體的指示信息的流表項,從而確定出所述第二子網(wǎng)中的目標網(wǎng)關實體。在第一方面,或者第二方面,或者第三方面的一些可能的實現(xiàn)方式中,所述流表請求消息中還攜帶所述第一子網(wǎng)的指示信息。通過執(zhí)行上述步驟,所述控制器可以根據(jù)所述流表請求消息所攜帶的所述第一子網(wǎng)的指示信息、所述待訪問目標的IP地址、所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址來快速生成對應的流表項,并下發(fā)給所述交換機,所述流表項包含所述目標網(wǎng)關實體的指示信息。在第一方面,或者第二方面,或者第三方面的一些可能的實現(xiàn)方式中,所述流表請求消息中還攜帶所述虛擬機的指示標識,所述虛擬機的指示標識用于表征所述虛擬機的優(yōu)先級信息。通過執(zhí)行上述步驟,所述控制器可以根據(jù)所述流表請求消息攜帶的所述第一子網(wǎng)的指示信息、所述待訪問目標的IP地址、所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址以及所述虛擬機的指示標識來生成對應的流表項,并下發(fā)給所述交換機,所述流表項包含所述目標網(wǎng)關實體的指示信息;也即是,所述控制器通過給所述交換機發(fā)送的流表項來傳遞該控制器確定到的所述第二子網(wǎng)中的目標網(wǎng)關實體。第四方面,本發(fā)明實施例提供一種交換機,所述轉交換機包括接收器、發(fā)送器、存儲器及處理器,所述處理器調用所述存儲器中的數(shù)據(jù)轉發(fā)程序,用于執(zhí)行如上第一方面提供的任一項方法中的步驟。第五方面,本發(fā)明實施例還提供一種存儲介質,用于存儲計算機程序,當所述計算機程序被處理器執(zhí)行時,所述處理器用于實現(xiàn)第一方面提供的任意一種方法。具體的,所述計算機程序可以包括用于實現(xiàn)方法各個步驟的一個或多個程序單元。通過實施本發(fā)明實施例,能夠解決南北向通信存在的網(wǎng)關性能和瓶頸擁塞的問題,同時所述多個網(wǎng)關實體被部署在不同于所述虛擬機所在的子網(wǎng)內還能避免現(xiàn)有技術中由于網(wǎng)關占用業(yè)務子網(wǎng)的IP地址,引起子網(wǎng)IP地址浪費的問題。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹。圖1是一種不同子網(wǎng)內的虛擬機間進行通信的應用場景示意圖;圖2是一種基于DVR的應用場景示意圖;圖3是本發(fā)明實施例提供的一種通信網(wǎng)絡架構示意圖;圖4是本發(fā)明實施例提供的又一種通信網(wǎng)絡架構示意圖;圖5是一種基于業(yè)務網(wǎng)關分離的應用場景示意圖;圖6是本發(fā)明實施例提供的一種數(shù)據(jù)轉發(fā)方法的流程示意圖;圖7是本發(fā)明實施例提供的一種基于流表項的通信流程示意圖;圖8是本發(fā)明實施例提供的一種報文轉發(fā)的流程示意圖;圖9是本發(fā)明實施例提供的又一種基于流表項的通信流程示意圖;圖10是本發(fā)明實施例提供的一種基于路由表項的應用場景示意圖;圖11是本發(fā)明實施例提供的一種交換機的結構示意圖;圖12是本發(fā)明實施例提供的又一種交換機的結構示意圖;圖13是本發(fā)明實施例提供的一種數(shù)據(jù)轉發(fā)系統(tǒng)的結構示意圖。具體實施方式本發(fā)明的實施方式部分使用的術語僅用于對本發(fā)明的具體實施例進行解釋,而非旨在限定本發(fā)明。為了便于理解本發(fā)明實施例,首先介紹本發(fā)明實施例涉及的通信網(wǎng)絡框架圖。請參見圖3,是本發(fā)明實施例提供的一種通信網(wǎng)絡架構示意圖。如圖3所示,該網(wǎng)絡框架示意圖包括:第一子網(wǎng)、第二子網(wǎng)以及交換機,交換機通過網(wǎng)絡(以太網(wǎng))分別與第一子網(wǎng)和第二子網(wǎng)通信連接;第一子網(wǎng)中可以被部署有N個虛擬機,且第一子網(wǎng)中還可以配置/部署有N個虛擬機所在的虛擬網(wǎng)關,通常一個子網(wǎng)配置一個虛擬網(wǎng)關。第二子網(wǎng)中可以被部署有M個網(wǎng)關實體(即多個網(wǎng)關實體),其中,M和N均為大于等于1的正整數(shù)。N個虛擬機可以被部署在X個物理主機上,每個物理主機上可以部署一個或多個虛擬機VM,X為大于0的正整數(shù)。當同一物理主機上部署有多個虛擬機VM時,所述多個虛擬機VM可以為屬于同一業(yè)務子網(wǎng)或不同業(yè)務子網(wǎng)內的VM;也即是說,被部署在同一物理主機上的多個VM可以屬于同一個子網(wǎng)或不同的子網(wǎng)。應理解的是,交換機可以包括物理交換機TOR或虛擬交換機vSwitch,在實際應用中交換機的數(shù)量可以是一個或多個,當交換機的數(shù)量為1個時,該交換機可以被部署在第一子網(wǎng);當交換機的數(shù)量為2個或以上時,此時交換機可以部分被部署在第一子網(wǎng),部分被部署在第二子網(wǎng)中。應理解的是,網(wǎng)關實體可以是指采用物體實體(如路由器、服務器)、或者采用邏輯實體(如虛擬機VM)來實現(xiàn)網(wǎng)關功能的協(xié)議轉換器或網(wǎng)間連接器,也即是說,在實際應用中網(wǎng)關實體可以部署為如路由器、服務器等物理實體,也可以部署為如虛擬機VM等邏輯實體。且這些網(wǎng)關實體可以是指支持業(yè)務分離或業(yè)務不分離的網(wǎng)關實體,也即是說網(wǎng)關實體可以提供處理一種或多種業(yè)務類型的網(wǎng)關能力??蛇x的,M個網(wǎng)關實體可以采用分布式部署、集中式部署或混合式部署中的任意一種方式進行部署。應理解的是,分布式部署是指:將M個網(wǎng)關實體部署在數(shù)據(jù)中心(DateCenter,DC)的接入層或邊緣層,這樣的部署位置決定了網(wǎng)關實體的數(shù)量會比較多和分散,分散的特點使得分布式網(wǎng)關實體具有更好的業(yè)務隔離效果;集中式部署是指將M個網(wǎng)關實體部署在匯聚層設備上,或作為匯聚層設備進行部署,同一路由域或數(shù)據(jù)中心內的業(yè)務流量都將由這些匯聚層設備(即網(wǎng)關實體)進行中轉;混合式部署是指既可以按照分布式部署的方式將部分網(wǎng)關實體部署在數(shù)據(jù)中心的接入層或邊緣層,又可以按照集中式部署方式一樣將部分網(wǎng)關實體部署在匯聚層??蛇x地,M個網(wǎng)關實體還可以支持跨數(shù)據(jù)中心部署,以實現(xiàn)業(yè)務就近出口的目的,也即是說M個網(wǎng)關實體可以被部署在同一或不同的DC內。在實際應用中,交換機需要實現(xiàn)分布式虛擬路由器(DistributedVirtualRouter,DVR)的功能;也即是說,交換機具有內部路由器IR(IR可以是物理存在的,也可以是邏輯存在的)的路由/轉發(fā)功能。應理解的是,DVR具有多種實現(xiàn)方式,目前已知的被分為兩類,一類是容器類,例如通過用namespace、docker、其他容器,甚至是VM等相互獨立、隔離的容器實體來實現(xiàn),這種情況下,DVR有物理實體(即容器實體)存在于VM所在的物理主機上;另一類是邏輯實體,DVR通過邏輯實體,如邏輯內部路由器IR來實現(xiàn),典型的是在SDN模式下,交換機(如虛擬交換機vSwitch或物理交換機TOR)負責按照流表項進行業(yè)務通信。結合圖3給出的網(wǎng)絡框架示意圖,圖4是本發(fā)明實施例提供的又一種通信網(wǎng)絡框架示意圖。如圖4所示,示例性地給出包含物理轉發(fā)層面和邏輯轉發(fā)層面的網(wǎng)絡框架示意圖,該網(wǎng)絡結構示意圖中包括軟件定義網(wǎng)絡(SoftwareDefinedNetwor,SDN)控制器(圖示為SDNController)、網(wǎng)絡管理部件(NetworkManager,NM)以及多個虛擬交換機vSwitch、多個物理交換機TOR、以及TOR之間的物理連接設備Aggre/Core、以及多個虛擬機VM等部件。應理解的是,圖4示例性地給出位于不同子網(wǎng)內的VM和網(wǎng)關實體,其中,白色和斜線填充的VM分別位于兩個不同的子網(wǎng)內,灰色填充的網(wǎng)關實體位于不同于VM所在子網(wǎng)的其他子網(wǎng)內;也即是說,白色填充的VM、斜線填充的VM、以及灰色填充的網(wǎng)關實體分別位于互不相同的子網(wǎng)內。可選地,VM可以任意被部署在同一或不同業(yè)務子網(wǎng)內,但部署VM的子網(wǎng)和部署網(wǎng)關實體的子網(wǎng)不相同。應理解的是,網(wǎng)絡管理部件NM可以用于負責整個網(wǎng)絡中物理層面和邏輯轉發(fā)層面所需資源的配置/分配、以及資源的調度等,如配置路由器所需的網(wǎng)卡接口和互聯(lián)網(wǎng)協(xié)議(InternetProtocol,IP)地址;同時NM還用于對上層部件,如軟件即服務(Software-as-a-Service,SaaS)、平臺即服務(Platform-as-a-Service,PaaS),或者為用戶入口Portal提供應用程序編程接口(ApplicationProgrammingInterface,API)接口;同時用戶或其他系統(tǒng)也可以通過該API接口向NM下發(fā)相關的資源配置/分配信息、網(wǎng)絡信息以及路由策略等信息。可選地,NM還用于負責虛擬化網(wǎng)絡模型及管理,并通過API接口將其發(fā)送給SDN控制器,由該SDN控制器在所述物理層面中的物理設備和邏輯轉發(fā)層面中的邏輯實體來實現(xiàn)網(wǎng)絡模型??傊?,NM用于負責對外呈現(xiàn)(如提供用戶界面或接口)、對內的策略制定以及邏輯實體的生命周期的管理和配置。在本發(fā)明實施方案中,網(wǎng)絡管理部件NM至少用于負責由所述N個虛擬機組成的業(yè)務子網(wǎng)的管理外,還負責所述M個網(wǎng)關實體的路由設置(如網(wǎng)卡接口或IP地址的設置)、組織網(wǎng)關的調度/路由策略、以及調用SDN控制器實現(xiàn)業(yè)務的實際調度,實現(xiàn)虛擬機與網(wǎng)關實體之間的業(yè)務通信。應理解的是,SDN控制器可以通過設定網(wǎng)絡管理接口(如openflow接口、ovsdb接口、netconf接口等)下發(fā)控制信息(如流表項或路由表項)到網(wǎng)絡設備,這里也即是交換機,以實現(xiàn)該NM設定的虛擬網(wǎng)絡模型以及生命周期的管理,這里的網(wǎng)絡設備可以包括軟件實體設備(如虛擬交換機vSwitch),也可以包括物理實體設備(如物理交換機TOR)。本發(fā)明實施例中,SDN控制器主要用于負責通過控制交換機(如vSwitch或TOR)來實現(xiàn)網(wǎng)關實體與虛擬機之間的互通。優(yōu)選地,SDN控制器可以根據(jù)一系列的路由策略,諸如根據(jù)所述虛擬機的優(yōu)先級信息、通信業(yè)務屬性(如業(yè)務類型)、以及網(wǎng)關實體策略等,通過轉發(fā)表對特定業(yè)務進行流向調度。應理解的是,網(wǎng)絡管理部件NM和SDN控制器在功能上沒有清晰的界限,網(wǎng)絡管理部件NM和SDN控制器具有相類似的功能,目前除針對轉發(fā)表方面的操作外,其余的操作(如資源的配置/分配、策略的制定等)都可以在兩者之中進行實現(xiàn)。如果同一路由域內存在有多個SDN控制器的時候(圖示僅有1個SDN控制器),這些SDN控制器本來還存在集群部署和分布式部署這兩種情況,但是這些對本發(fā)明實施例并沒有影響,這里不作詳細介紹?;趫D3和圖4給出的網(wǎng)絡框架示意圖,圖5是一種基于業(yè)務網(wǎng)關分離的場景示意圖,這里的業(yè)務網(wǎng)關分離是指網(wǎng)關實體提供處理設定業(yè)務類型的網(wǎng)關能力,圖中示例性地給出3種業(yè)務網(wǎng)關實體,分別為用于處理虛擬專用網(wǎng)絡(VirtualPrivateNetwork,VPN)業(yè)務的VPN網(wǎng)關實體、用于處理源地址轉換(SourceNetworkAddressTranslation,SNAT)業(yè)務的SNAT網(wǎng)關實體、用于處理負載均衡(LoadBalance,LB)的LB網(wǎng)關實體。具體參見如圖5所示,不同的業(yè)務子網(wǎng)占用不同的網(wǎng)段,圖示給出分別由網(wǎng)段192.168.1.0和網(wǎng)段192.168.2.0組成的兩個業(yè)務子網(wǎng),子網(wǎng)中的VM在通過網(wǎng)關實體進行通信時,網(wǎng)關實體將占用各自子網(wǎng)網(wǎng)段內的互聯(lián)網(wǎng)協(xié)議(InternetProtocol,IP)地址;由此可知,在業(yè)務網(wǎng)關分離情況下,如果業(yè)務網(wǎng)關實體的數(shù)量或種類較多時,在實際通信過程中這些業(yè)務網(wǎng)關實體將進一步占用業(yè)務子網(wǎng)網(wǎng)段內的IP地址,導致用戶創(chuàng)建的業(yè)務子網(wǎng)內IP地址被占用較多,且業(yè)務網(wǎng)關的數(shù)量也會受到限制,浪費業(yè)務子網(wǎng)IP地址的同時還影響業(yè)務的擴展性。為解決上述業(yè)務子網(wǎng)IP地址浪費的問題,基于圖3和圖4給出的網(wǎng)絡框架示意圖,請參見圖6,是本發(fā)明實施例提供的一種數(shù)據(jù)轉發(fā)方法的流程示意圖,該方法包括:S101、交換機接收虛擬機發(fā)送的第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址。本發(fā)明實施例中,N個虛擬機、以及N個虛擬機所在的虛擬網(wǎng)關被部署在第一子網(wǎng)中,M個網(wǎng)關實體被部署第二子網(wǎng)中,第一子網(wǎng)和第二子網(wǎng)是指不相同的子網(wǎng),即它們所占用的網(wǎng)段不相同。與傳統(tǒng)方式相同,第一子網(wǎng)中的虛擬機不感知外界網(wǎng)關實體的變化,首次發(fā)起訪問外部網(wǎng)絡/不同網(wǎng)段的通信請求(也即是傳送數(shù)據(jù)報文)時,虛擬機可以首先發(fā)送網(wǎng)關地址獲取請求,這里可以是地址解析協(xié)議(AddressResolutionProtocol,ARP)請求,該ARP請求用于獲取虛擬機所在的虛擬網(wǎng)關的MAC地址;正常發(fā)出的ARP請求被發(fā)送到與該虛擬機所對應的轉發(fā)設備,即交換機中;相應地,交換機接收該ARP請求,并響應該ARP請求向虛擬機返回該虛擬機所在虛擬網(wǎng)關的MAC地址,也即是第一子網(wǎng)的虛擬網(wǎng)關的MAC地址;其中,虛擬機是指第一子網(wǎng)內N個虛擬機中的一個或多個VM,所述外網(wǎng)網(wǎng)絡或不同網(wǎng)段是指不同于虛擬機的IP地址所屬的網(wǎng)段/子網(wǎng)。在虛擬機接收到第一子網(wǎng)的虛擬網(wǎng)關的MAC地址后,虛擬機可以向交換機發(fā)送第一數(shù)據(jù)報文,該第一數(shù)據(jù)報文可以攜帶有待訪問目標的IP地址(如外網(wǎng)百度的IP地址)和第一子網(wǎng)的虛擬網(wǎng)關的MAC地址,也即是目的IP地址和目的MAC地址,可選地還可攜帶有虛擬機的IP地址、虛擬機的MAC地址,也即是源IP/MAC地址,還可以攜帶有其他的用于傳輸/發(fā)送第一數(shù)據(jù)報文的信息,本發(fā)明實施例不作限定。在實際應用中,虛擬機向交換機發(fā)送第一數(shù)據(jù)報文時,會將上述第一數(shù)據(jù)報文攜帶的如待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、虛擬機的IP地址、虛擬機的MAC地址等信息統(tǒng)一封裝成報頭,添加到第一數(shù)據(jù)報文的前面進行傳輸。應理解的是,交換機接收到第一數(shù)據(jù)報文后,還可以確定第一數(shù)據(jù)報文從第一子網(wǎng)中的虛擬機發(fā)送至交換機的接口,又稱為入接口,還可以根據(jù)接口和網(wǎng)絡標識之間預存綁定關系確定到與該入接口對應的網(wǎng)絡標識,這里即是交換機與第一網(wǎng)絡連接的接口(入接口)和第一子網(wǎng)的網(wǎng)絡標識;也即是說,交換機接收到第一數(shù)據(jù)報文后,可以確定到第一子網(wǎng)的指示信息,該第一子網(wǎng)的指示信息可以包括交換機連接第一子網(wǎng)的入接口(通常表示為入接口號/入接口標識)或者第一子網(wǎng)的網(wǎng)絡標識。應理解的是,網(wǎng)絡標識為用于表征當前所處網(wǎng)絡的標志信息,如虛擬局域網(wǎng)(VirtualLocalAreaNetwork,VLAN)的網(wǎng)絡標識通常表示為VLANID,虛擬可擴展局域網(wǎng)(VirtualExtensibleLocalAreaNetwork,VXLAN)的網(wǎng)絡標識通常表示為VNI(VXLANNetworkIdentifier,VNI),或者其他網(wǎng)絡的網(wǎng)絡標識,本發(fā)明實施例不作限定。S102、所述交換機根據(jù)所述第一數(shù)據(jù)報文,判斷是否存在對應的預存轉發(fā)表項。在一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址可以用來表征第一子網(wǎng),即作為第一子網(wǎng)的指示信息/指示標識時,交換機可以將第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和預存轉發(fā)表項中的匹配域進行匹配,以確定交換機中是否存在對應匹配的預存轉發(fā)表。在又一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址可以用來表征第一子網(wǎng)時,交換機可以將第一數(shù)據(jù)報文攜帶的所有信息,如待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、虛擬機的指示標識等封裝在第一數(shù)據(jù)報文報頭的信息,和預存轉發(fā)表項中的匹配域進行匹配。在又一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址不能用來表征第一子網(wǎng)時,交換機可以將第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、以及確定的第一子網(wǎng)的接口號(即入接口號或入接口標識)和預存轉發(fā)表項中的匹配域進行匹配,以確定交換機中是否存在對應匹配的預存轉發(fā)表項。在又一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址不能用來表征第一子網(wǎng)時,交換機可以將第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、以及確定的第一子網(wǎng)的網(wǎng)絡標識和預存轉發(fā)表項中的匹配域進行匹配。在又一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址不能用來表征第一子網(wǎng)時,交換機可以將第一數(shù)據(jù)報文攜帶的所有信息,如待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、虛擬機的指示標識等封裝在第一數(shù)據(jù)報文報頭的信息,以及確定的第一子網(wǎng)的接口號(即入接口號或入接口標識)和預存轉發(fā)表項中的匹配域進行匹配。在又一種可能的實現(xiàn)方式中,如果第一子網(wǎng)的虛擬網(wǎng)關的MAC地址不能用來表征第一子網(wǎng)時,交換機可以將第一數(shù)據(jù)報文攜帶的所有信息,如待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、虛擬機的指示標識等封裝在第一數(shù)據(jù)報文報頭的信息,以及確定的第一子網(wǎng)的網(wǎng)絡標識和預存轉發(fā)表項中的匹配域進行匹配。如果交換機在上述可能的實現(xiàn)方式中存在一種或多種匹配一致的情況下,那么交換機可以將所述轉發(fā)表項的動作域所記錄的網(wǎng)關實體作為目標網(wǎng)關實體,且目標網(wǎng)關實體屬于第二子網(wǎng),并繼續(xù)執(zhí)行步驟S103;否則,繼續(xù)執(zhí)行步驟S104。應理解的是,虛擬機的指示標識可以是指虛擬機的IP地址或虛擬機的MAC地址,用來表征虛擬機的優(yōu)先級信息。在實際應用中,交換機可以包括轉發(fā)層面中的虛擬交換機vSwitch、以及用于實現(xiàn)DVR功能來傳輸?shù)谝粩?shù)據(jù)報文的邏輯實體,如邏輯存在的內部路由器IR等,還可以包括物理層面中的物理交換機TOR、或用于實現(xiàn)DVR功能來傳輸?shù)谝粩?shù)據(jù)報文的容器實體(或物理實體),如namespace、docker等容器等。當交換機基于邏輯實體(如邏輯內部路由器IR等)來實現(xiàn)DVR功能時,所述轉發(fā)表項可以為流表項;當交換機基于容器(如namespace、docker、其他容器)來實現(xiàn)DVR功能時,所述轉發(fā)表項可以為路由表項。在實際應用中,如果轉發(fā)表項為流表項,該流表項可以由匹配域和動作域(又稱為操作域)組成,匹配域可以包括目的IP地址或該目的IP地址所屬的網(wǎng)段(這里即是待訪問目標的IP地址或對應所在的網(wǎng)段)、目的MAC地址(這里即是第一子網(wǎng)的虛擬網(wǎng)關的MAC地址),還可以包括通信接口或網(wǎng)絡標識(這里即是第一子網(wǎng)的接口號或網(wǎng)絡標識),以及還包括源IP地址(如虛擬機的IP地址)、源MAC地址(如虛擬機的MAC地址)、或者其他的用于匹配并查找目標網(wǎng)關實體的信息;動作域可以包括有指向目標網(wǎng)關實體的接口IP/MAC地址、以及指向目標網(wǎng)關實體的二層轉發(fā)信息(即目標網(wǎng)關實體的指示信息)。應理解的是,該指向目標網(wǎng)關實體的二層轉發(fā)信息可以包括目標網(wǎng)關實體的MAC地址、指向目標網(wǎng)關實體的通信接口/網(wǎng)絡標識(即第二子網(wǎng)的接口號/網(wǎng)絡標識),還可以包括關于第一數(shù)據(jù)報文的封裝信息(如基于VXLAN場景下的VTEP(VXLANTunnelEndPoint,中文稱為VXLAN隧道終端)信息)、目的IP地址、源IP/MAC地址(如第一子網(wǎng)的虛擬網(wǎng)關的IP/MAC地址)、或者其他的用于傳輸?shù)谝粩?shù)據(jù)報文至目標網(wǎng)關實體的相關信息,本發(fā)明實施例不作限定。在實際應用中,流表項可以包括以下兩種實現(xiàn)方式:三層流表項和二層流表項。在三層流表項的實現(xiàn)方式中,交換機首先可以根據(jù)第一數(shù)據(jù)報文攜帶的目的IP地址或網(wǎng)段(即待訪問目標的IP地址或IP地址對應的網(wǎng)段)和目的MAC地址(即第一子網(wǎng)的虛擬網(wǎng)關的Mac地址),可選地還可以加入確定的通信接口或網(wǎng)絡標識(即第一子網(wǎng)的接口號(即入接口號/入接口標識)或網(wǎng)絡標識)來查詢指向目標網(wǎng)關實體的接口網(wǎng)絡地址(如指向目標網(wǎng)關的接口IP地址),然后在根據(jù)所述指向目標網(wǎng)關實體的接口網(wǎng)絡地址來查詢指向目標網(wǎng)關實體的二層轉發(fā)信息。在二層流表項的實現(xiàn)方式中,交換機可以同時根據(jù)第一數(shù)據(jù)報文攜帶的目的IP地址或目的IP地址所屬的網(wǎng)段、和目的MAC地址、可選地還可加入通信接口或網(wǎng)絡標識來查詢指向目標網(wǎng)關實體的二層轉發(fā)信息。示例性地如下表1給出一種二層流表項的示意圖。表1如上表1可知,上述匹配域中的源網(wǎng)絡地址可以是指虛擬機的IP地址或MAC地址(IP_Src/MAC_Src);匹配域中的目的網(wǎng)絡地址可以是指第一子網(wǎng)的虛擬網(wǎng)關的MAC地址(MAC_Src1)、和待訪問目標的IP地址或IP地址所在的網(wǎng)段(IP_Dst);匹配域中的通信接口/網(wǎng)絡標識是指按照傳統(tǒng)方式轉發(fā)第一數(shù)據(jù)報文至第一子網(wǎng)的虛擬網(wǎng)關MAC_Src1所對應的通信接口/網(wǎng)絡標識,即第一子網(wǎng)的接口號(入接口號/如接口標識)或第一子網(wǎng)的網(wǎng)絡標識(IN_X)。動作域中的目標網(wǎng)絡地址可以是指目標網(wǎng)關實體的MAC地址(MAC_Dst)、以及目的IP地址,即待訪問目標的IP地址(IP_Dst);動作域中的源網(wǎng)絡地址可以是指指向目標網(wǎng)關實體的接口MAC地址(MAC_Dst1)、和源IP地址,即虛擬機的IP地址(IP_Src);動作域中的通信接口/網(wǎng)絡標識是指第二子網(wǎng)的接口號(即出接口號、出接口標識)或第二子網(wǎng)的網(wǎng)絡標識(IN_Y);動作域還可以包括用于封裝第一數(shù)據(jù)報文的封裝信息,如VTEP信息。同理可參照如上表1給出的二層流表項來理解三層流表項,三層流表項的匹配域可以和二層流表項所包括的內容相同,但是三層流表項的動作域包括上述指向目標網(wǎng)關實體的接口網(wǎng)絡地址(可以是指向目標網(wǎng)關實體的接口IP地址);進而根據(jù)該指向目標網(wǎng)關的接口IP地址來查詢流表項得到指向目標網(wǎng)關實體的二層轉發(fā)信息,如表2動作域中的目標網(wǎng)關實體的MAC地址、以及通信接口/網(wǎng)絡標識等信息。因此,可以理解到二層流表項直接根據(jù)第一數(shù)據(jù)報文攜帶的待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,可選地還可加入通信接口或網(wǎng)絡標識、以及封裝在第一數(shù)據(jù)報文報頭內的其他信息一次性從流表項中查找出轉發(fā)第一數(shù)據(jù)報文所需的二層轉發(fā)信息;三層流表項需分為兩步來從流表項中查找和匹配到出轉發(fā)第一數(shù)據(jù)報文所需的二層轉發(fā)信息。應理解的是,針對轉發(fā)表項的下發(fā)時刻可以是提前下發(fā)的,也可以實時下發(fā)的。下面具體介紹SDN控制器提前為交換機下發(fā)該轉發(fā)表項??紤]到SDN控制器的通信負荷,針對一些負荷超重的時段,SDN控制器可以提前為同一路由域或VPC內的交換機生成并下發(fā)對應的轉發(fā)表項。轉發(fā)表項的生成過程如下:SDN控制器按照以虛擬機為維度,考慮該虛擬機所支持的業(yè)務類型、以及該VPC內整個數(shù)據(jù)轉發(fā)網(wǎng)絡的網(wǎng)絡拓撲信息來生成對應的轉發(fā)表項;或者,SDN控制器按照以網(wǎng)關實體為維度,考慮該網(wǎng)關實體所支持處理的業(yè)務類型以及整個數(shù)據(jù)轉發(fā)網(wǎng)絡的網(wǎng)絡拓撲信息來生成對應的轉發(fā)表項,進而將所述對應的轉發(fā)表項下發(fā)給對應的交換機,以讓交換機按照對應的轉發(fā)表項進行數(shù)據(jù)報文的轉發(fā)。其中,數(shù)據(jù)轉發(fā)網(wǎng)絡由該路由域或VPC內的M個網(wǎng)關實體和N個虛擬機、以及M個網(wǎng)關實體與N個虛擬機之間互通所涉及的多個交換機(如物理交換機TOR等)所構成。示例性地,如以虛擬機為維度,SDN控制器根據(jù)N個虛擬機各自所支持通信的業(yè)務類型,在從M個網(wǎng)關實體中選取出用于處理該虛擬機支持通信的業(yè)務類型所對應的目標網(wǎng)關實體,然后根據(jù)虛擬機與目標網(wǎng)關實體之間的網(wǎng)絡拓撲信息為該虛擬機與目標網(wǎng)關實體之間互通所涉及的交換機生成并下發(fā)對應的轉發(fā)表項。優(yōu)選地,SDN控制器還可以考慮加入路由策略來生成轉發(fā)表項,也即是說,不管上述SDN控制器以虛擬機為維度還是以網(wǎng)關為維度,根據(jù)它們所支持處理的業(yè)務類型以及整個數(shù)據(jù)轉發(fā)網(wǎng)絡的網(wǎng)絡拓撲信息的同時,還將加入路由策略來生成對應的轉發(fā)表項。應理解的是,路由策略可以是指用戶或其他系統(tǒng)通過API接口發(fā)給網(wǎng)絡管理部件NM,NM通過網(wǎng)絡再下發(fā)給SDN控制器的,路由策略可以包括虛擬機選擇策略、負載均衡策略、負載反均衡策略、或者其他用于選擇目標網(wǎng)關實體的策略中的一種或多種的組合,本發(fā)明實施例步驟限定。相應地,NM同樣可以將一些關于虛擬機的信息(如設備信息、位置信息、服務質量要求(QualityofService,Qos)等)下發(fā)給SDN控制器,以便SDN考慮到虛擬機的信息(即虛擬機選擇策略)來生成對應的轉發(fā)表項。應理解的是,虛擬機選擇策略是指根據(jù)虛擬機的信息來選擇通信的目標網(wǎng)關實體,如針對一些等級、優(yōu)先級、或者服務質量要求比較高的虛擬機而言,對應選擇通信的目標網(wǎng)關實體的優(yōu)先級也相應較高;負載均衡策略是指保證M個網(wǎng)關實體的負載量大致相同,避免網(wǎng)關實體的負載量出現(xiàn)兩極化,一些網(wǎng)關實體的負載較大、一些網(wǎng)關實體的負載較??;負載反均衡策略是指優(yōu)先使用負載量較大的網(wǎng)關實體,負載量較小的網(wǎng)關實體盡量不用,容易導致網(wǎng)關實體的負載量出現(xiàn)兩極化,如將一些網(wǎng)關實體的資源使用完畢后再使用下個網(wǎng)關實體的資源;路徑最優(yōu)策略是指保證虛擬機到目標網(wǎng)關實體之間的路徑最短或最優(yōu)。需要說明的是,在數(shù)據(jù)轉發(fā)網(wǎng)絡的網(wǎng)絡拓撲信息中,針對同一虛擬機和網(wǎng)關實體之間互通的鏈路可能存在多條,但在實際通信時轉發(fā)表項是唯一的,也即是該轉發(fā)表項確定了同一虛擬機和網(wǎng)關實體之間的唯一通信路徑。在實際應用中,針對轉發(fā)表項被提前下發(fā)的情況中,該轉發(fā)表項具有設定的有效生命周期(又稱為老化時間),在有效生命周期內該轉發(fā)表項能夠正常運行工作,超過有效生命周期時該轉發(fā)表項將逾期作廢,可被自動清除,或存儲在交換機中不起任何作用。S103、所述交換機根據(jù)所述轉發(fā)表項的指示對所述第一數(shù)據(jù)報文進行重新封裝,得到第二數(shù)據(jù)報文,并將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體。應理解的是,交換機可以按照轉發(fā)表項中動作域所記錄的二層轉發(fā)信息來對應更改封裝在第一數(shù)據(jù)報文報頭內的信息,示例性地如將所述第一數(shù)據(jù)報文攜帶的第一子網(wǎng)的虛擬網(wǎng)關的MAC地址修改為目標網(wǎng)關實體的MAC地址,還可以添加封裝第二子網(wǎng)的網(wǎng)絡標識,以及其他的報文封裝信息,如果在VXLAN應用場景中還可添加封裝VTEP信息,以對該第一數(shù)據(jù)報文進行重新封裝,得到第二數(shù)據(jù)報文;交換機可以按照轉發(fā)表項的二層轉發(fā)信息,如第二子網(wǎng)的接口號(即出接口號/出接口標識)或第二子網(wǎng)的網(wǎng)絡標識、以及目標網(wǎng)關實體的MAC地址等信息,將該第二數(shù)據(jù)報文轉發(fā)給目標網(wǎng)關實體。在實際應用中,交換機可以先將封裝得到的第二數(shù)據(jù)報文通過網(wǎng)絡發(fā)送給目標網(wǎng)關實體所對應的其他交換機中,再由該其他交換機對第二數(shù)據(jù)報文進行解封裝以還原第一數(shù)據(jù)報文(如在VXLAN場景下,由于之前添加封裝了VTEP信息,此時其他交換機可以解封裝除去VTEP信息),進而該其他交換機按照第一數(shù)據(jù)報文攜帶的目標網(wǎng)關實體的MAC地址將第一數(shù)據(jù)報文轉發(fā)給目標網(wǎng)關實體。應理解的是,交換機和其他交換機可以是指同一個相同的交換機,也可以是指不同的交換機;如當虛擬機和目標網(wǎng)關實體被部署在同一物理實體(如物理主機、服務器)上時,該交換機和其他交換機可以是指同一個交換機,當虛擬機和目標網(wǎng)關實體被部署在不同的物理實體(如物理主機、服務器)上時,該交換機和其他交換機可以是指兩個不同的交換機。S104、所述交換機向SDN控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址。在實際應用中,交換機可以向對應的SDN控制器發(fā)送流表請求消息,以從SDN控制器中獲取用于轉發(fā)第一數(shù)據(jù)報文的流表項。在一種可能的實現(xiàn)方式中,該流表請求消息可以攜帶有待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的MAC地址。在又一種可能的實現(xiàn)方式中,該流表請求消息可以攜帶有第一子網(wǎng)的接口號(即入接口號/入接口標識)或第一子網(wǎng)的網(wǎng)絡標識、待訪問目標的IP地址和第一子網(wǎng)的虛擬網(wǎng)關的MAC地址。在又一種可能的實現(xiàn)方式中,該流表請求消息可以攜帶有待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、以及虛擬機的指示標識,還可以攜帶其他的封裝在第一數(shù)據(jù)報文的報頭內的信息,甚至是整個第一數(shù)據(jù)報文,本發(fā)明實施例不作限定。在又一種可能的實現(xiàn)方式中,該流表請求消息可以攜帶有第一子網(wǎng)的接口號(即入接口號/入接口標識)或第一子網(wǎng)的網(wǎng)絡標識、待訪問目標的IP地址、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、以及虛擬機的指示標識,還可以攜帶其他的封裝在第一數(shù)據(jù)報文的報頭內的信息,甚至是整個第一數(shù)據(jù)報文,本發(fā)明實施例不作限定。S105、相應地,所述SDN控制器接收所述流表請求信息,并根據(jù)所述流表請求信息攜帶的待訪問目標的IP地址確定所述待訪問目標的IP地址對應的業(yè)務類型。應理解的是,由于虛擬專有網(wǎng)絡VPN或其他網(wǎng)關實體一般都有對應網(wǎng)段的路由配置,可根據(jù)被路由的待訪問目標的IP地址(即目的IP地址)來確定它所屬的業(yè)務類型,如本地服務網(wǎng)關實體用于處理同一路由域內去往本地服務區(qū)的業(yè)務通信或數(shù)據(jù)流量,又如互聯(lián)網(wǎng)Internet網(wǎng)關實體用于處理去往Internet的業(yè)務通信或數(shù)據(jù)流量。S106、所述SDN控制器根據(jù)所述待訪問目標的IP地址對應的業(yè)務類型從第二子網(wǎng)內的M個網(wǎng)關實體中選擇出目標網(wǎng)關實體,所述目標網(wǎng)關實體用于處理所述待訪問目標的IP地址對應的業(yè)務類型。在一種可能的實現(xiàn)方式中,SDN控制器可以從第二子網(wǎng)內的M個網(wǎng)關中任意選取一個或多個網(wǎng)關實體作為目標網(wǎng)關實體,用來處理所述待訪問目標的IP地址對應的業(yè)務類型。在又一種可能的實現(xiàn)方式中,如果M個網(wǎng)關實體被預先分為P個業(yè)務網(wǎng)關實體集合(P為正整數(shù)),不同業(yè)務網(wǎng)關實體集合中的網(wǎng)關實體用于處理不同的業(yè)務類型,同一業(yè)務網(wǎng)關實體集合中的網(wǎng)關實體用于處理同一業(yè)務類型,該業(yè)務網(wǎng)關實體集合包括至少一個網(wǎng)關實體,那么SDN控制器可以從不同的業(yè)務網(wǎng)關實體集合中選取出用于處理所述待訪問目標的IP地址對應的業(yè)務類型的目標業(yè)務網(wǎng)關實體集合,進而從目標網(wǎng)關實體集合中選取出目標網(wǎng)關實體。在實際應用中,SDN控制器可以通過以下兩種實現(xiàn)方式來從目標目標網(wǎng)關實體集合中選取出目標網(wǎng)關實體:在第一種實現(xiàn)方式中,SDN控制器從目標網(wǎng)關實體集合中任意選取一個網(wǎng)關實體作為目標網(wǎng)關實體。在第二種實現(xiàn)方式中,SDN控制器根據(jù)與虛擬機的指示標識所對應的路由策略從目標網(wǎng)關實體集合中選取目標網(wǎng)關實體。在實際應用中,虛擬機的指示標識可以用來表征虛擬機的優(yōu)先級信息,如果流表請求消息中攜帶有虛擬機的指示標識,那么SDN控制器可以根據(jù)虛擬機的指示標識(即虛擬機的優(yōu)先級信息)來確定用于選取目標網(wǎng)關實體適用的路由策略,如路徑最優(yōu)策略、負載均衡策略、負載反均衡策略等等,進而SDN控制器根據(jù)該路由策略從目標網(wǎng)關實體集合中選取目標網(wǎng)關實體,關于路由策略的相關說明詳見步驟S102,這里不在贅述。在實際應用中,第二子網(wǎng)優(yōu)先采用169.254.0.0-169.254.255.255網(wǎng)段,也即是將M個網(wǎng)關優(yōu)先部署在169.254這個網(wǎng)段內;由于該網(wǎng)段為本地鏈路網(wǎng)絡,業(yè)務通信通常不會用到,這樣可以避免網(wǎng)關子網(wǎng)和業(yè)務子網(wǎng)重疊的問題,即避免第一子網(wǎng)和第二子網(wǎng)出現(xiàn)重疊的問題。應理解的,所述業(yè)務網(wǎng)關實體集合包括但不限于虛擬專用網(wǎng)絡VPN業(yè)務網(wǎng)關實體集合、源地址轉換SNAT業(yè)務網(wǎng)關實體集合、負載均衡LB業(yè)務網(wǎng)關實體集合、英特網(wǎng)Internet業(yè)務網(wǎng)關實體集合、本地公共服務(LocalService)業(yè)務網(wǎng)關實體集合,還可以包括用于處理其他業(yè)務類型的業(yè)務網(wǎng)關實體集合。參見圖4所示給出的網(wǎng)絡框架圖中給出了3類業(yè)務網(wǎng)關實體集合,分別為包括VGW在內的VPN業(yè)務網(wǎng)關實體集合、包括LG在內的本地公共服務業(yè)務網(wǎng)關實體集合、以及包括IGW1和IGW2在內的英特網(wǎng)業(yè)務網(wǎng)關實體集合。示例性地,引用如圖4給出的網(wǎng)絡框架示意圖,圖示包括有IGW1、IGW2、VGW和LGW這4個網(wǎng)關。假設現(xiàn)有被部署在物理主機2上的一虛擬機VM1想要通過目標網(wǎng)關訪問外網(wǎng)百度(百度的IP地址為Remote)。當SDN控制器在選擇目標網(wǎng)關實體時,首先可以根據(jù)百度的IP地址Remote確定出用于處理Internet業(yè)務的英特網(wǎng)業(yè)務網(wǎng)關實體集合(即IGW1和IGW2),進而SDN控制器可以根據(jù)路由策略從包含有IGW1和IGW2的英特網(wǎng)業(yè)務網(wǎng)關實體集合中選取出目標網(wǎng)關實體。由于IGW2和VM1被部署在同一物理主機上,如果SDN控制器按照路徑最優(yōu)策略選擇到的目標網(wǎng)關實體即為IGW2;又如假設IGW1的負載>IGW2的負載,如果SDN控制器按照負載均衡策略選擇到的目標網(wǎng)關實體還為IGW2,如果SDN控制器按照負載反均衡策略選擇到的目標網(wǎng)關實體為IGW1,使得IGW1和IGW2網(wǎng)關的負載出現(xiàn)兩極化。S107、所述SDN控制器根據(jù)所述目標網(wǎng)關實體的指示信息和所述流表請求消息生成對應的流表項,并將所述流表項下發(fā)給所述交換機。在實際應用中,SDN控制器在確定到目標網(wǎng)關實體后,可以獲取指向該目標網(wǎng)關實體的二層轉發(fā)信息,也即是該目標網(wǎng)關實體的指示信息,進而根據(jù)該目標網(wǎng)關實體的指示信息和流表請求消息攜帶的待訪問目標的IP地址、所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,可選地還攜帶有虛擬機的指示標識、第一子網(wǎng)的網(wǎng)絡標識、以及其他的封裝在第一數(shù)據(jù)報文報頭內的信息來生成對應的流表項,其中,所述流表項包括該目標網(wǎng)關實體的指示信息,如目標網(wǎng)關實體的MAC地址、第二子網(wǎng)的接口號或網(wǎng)絡標識等,關于指向目標網(wǎng)關實體的二層轉發(fā)信息的相關說明詳細參見如上步驟S102所述,這里不在贅述。S108、相應地,所述交換機接收所述SDN控制器下發(fā)的所述流表項。在實際應用中,交換機基于邏輯實體來實現(xiàn)DVR功能的情況下,如果交換機中不存在預存的用于轉發(fā)第一數(shù)據(jù)報文的流表項時,需要SDN控制器實時下發(fā),具體參見上述步驟S104至步驟108的相關說明,這里不在贅述。應理解的是,針對轉發(fā)表項(如流表項或路由表項)的下發(fā)時刻,可以是SDN控制器知悉虛擬機和目標網(wǎng)關實體之間的網(wǎng)絡拓撲信息之后分別或同時將它生成好的轉發(fā)表項提前下發(fā)給對應的交換機;或者,當SDN控制器根據(jù)接收到的第一數(shù)據(jù)報文(首包)實時查詢和生成對應的流表項,然后分別/同時下發(fā)給對應的交換機,本發(fā)明實施例不作限制。S109、所述交換機根據(jù)所述流表項對所述第一數(shù)據(jù)報文進行重新封裝,得到第二數(shù)據(jù)報文,并將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體。應理解的是,交換機按照所述流表項的指示對第一數(shù)據(jù)報文進行重新封裝并轉發(fā)給目標網(wǎng)關實體,具體可詳細參見如上步驟S103所述,這里不在贅述。應理解的是,在反方向的通信過程中,外部路由器根據(jù)路由的待訪問目標的IP地址(即虛擬機的IP地址)將來自遠端(如Internet)的第一數(shù)據(jù)報文分發(fā)到對應的網(wǎng)關實體中,這里同樣也可首先根據(jù)待訪問目標的IP地址來確定與之對應的業(yè)務類型,再根據(jù)該業(yè)務類型選擇對應的網(wǎng)關實體,與上述關于目標網(wǎng)關實體選擇的相關說明相同,這里不再贅述。同理,當目標網(wǎng)關實體接收來自待訪問目標的IP地址或該IP地址對應的網(wǎng)段(如百度Internet)所發(fā)送的第一數(shù)據(jù)報文后,目標網(wǎng)關實體可以首先向相關的交換機(即目標網(wǎng)關實體所在的交換機)發(fā)送用于獲取第二子網(wǎng)的虛擬網(wǎng)關的MAC地址獲取請求,這里同樣可以是ARP請求。由于目標網(wǎng)關實體本就是網(wǎng)關實體,該第二子網(wǎng)的虛擬網(wǎng)關的MAC地址即是目標網(wǎng)關實體的MAC地址。目標網(wǎng)關實體接收到交換機返回的MAC地址后,對第一數(shù)據(jù)報文進行重新封裝并發(fā)送給該交換機,此時第一數(shù)據(jù)報文攜帶有待訪問目標的IP地址(即虛擬機的IP地址)和第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(即目標網(wǎng)關實體的MAC地址);相應地,交換機接收第一數(shù)據(jù)報文后,可以獲取目標網(wǎng)關實體所在第二子網(wǎng)的接口號或網(wǎng)絡標識;接著,交換機根據(jù)待訪問目標的IP地址(即虛擬機的IP地址)和第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(即目標網(wǎng)關實體的MAC地址),可選地還可加入第二子網(wǎng)的接口號或網(wǎng)絡標識來檢測是否存在有對應用于轉發(fā)第一數(shù)據(jù)報文的預存轉發(fā)表項,若存在,則直接按照所述轉發(fā)表項的指示對第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,并將第二數(shù)據(jù)報文轉發(fā)給虛擬機;如果不存在,則目標網(wǎng)關實體向對應的SDN控制器發(fā)送流表請求消息,該流表請求消息攜帶有待訪問目標的IP地址(即虛擬機的IP地址)和第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(即目標網(wǎng)關實體的MAC地址),可選地還可攜帶有第二子網(wǎng)的接口號或網(wǎng)絡標識,和/或目標網(wǎng)關實體的指示標識(即源IP/MAC地址)、甚至整個第一數(shù)據(jù)報文等信息,相應地SDN控制器根據(jù)待訪問目標的IP地址確定待訪問目標的IP地址所在第一子網(wǎng)的指示信息,如第一子網(wǎng)的虛擬網(wǎng)關的MAC地址、第一子網(wǎng)的網(wǎng)絡標識等;進而根據(jù)流表請求消息攜帶的信息和第一子網(wǎng)的指示信息生成對應的流表項,并下發(fā)給該交換機,流表項至少包括第一子網(wǎng)的指示信息,如第一子網(wǎng)的網(wǎng)絡標識或接口號。相應地,交換機根據(jù)流表項的指示對第一數(shù)據(jù)報文進行重新封裝,示例性地如將第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(即目標網(wǎng)關實體的MAC地址)修改為第一子網(wǎng)的虛擬網(wǎng)關的MAC地址,并封裝第一子網(wǎng)的網(wǎng)絡標識以及其他的報文封裝信息等,得到第二數(shù)據(jù)報文,所述交換機將所述第二數(shù)據(jù)報文轉發(fā)給虛擬機。具體的回程(即反方向)通信過程與上述從虛擬機VM將第一數(shù)據(jù)報文發(fā)送給目標網(wǎng)關實體的通信過程類似,這里不作詳細介紹。需要說明的是,由于網(wǎng)關實體會占用二層信道資源,基于VLAN場景下網(wǎng)絡標識VLANID的個數(shù)有限,然而基于VXLAN或通用路由封裝(GenericRoutingEncapsulation,GRE)等隧道類網(wǎng)絡應用場景下,這種隧道網(wǎng)絡標識VNI的數(shù)量較多,最大支持16M(兆);因此建議在VXLAN等隧道類網(wǎng)絡應用場景下采用本發(fā)明方案來實現(xiàn)南北向流量的通信,解決南北向通信存在的網(wǎng)關性能和瓶頸擁塞的問題,同時還能避免由于網(wǎng)關實體占用業(yè)務子網(wǎng)的IP地址,引起子網(wǎng)IP地址的浪費。為幫助人們對上述實施例的進一步理解,下面通過兩個例子進行詳細說明。實施例一:結合圖3和圖4給出的網(wǎng)絡框架示意圖,第一子網(wǎng)內部署有N個虛擬機,以及N個虛擬機所對應的虛擬網(wǎng)關,第二子網(wǎng)內部署有M個網(wǎng)關,且交換機通過邏輯實體來實現(xiàn)DVR的功能,也即是基于流表項來實現(xiàn)。假設現(xiàn)存在被部署在第一子網(wǎng)內物理主機2上的一虛擬機VM1首次發(fā)起訪問外網(wǎng)百度的業(yè)務通信請求,百度的IP地址為Remote,具體可參見如圖7所示給出的通信流程圖。S200,與傳統(tǒng)方式相同,VM1不感知外界網(wǎng)關的變化首先發(fā)出ARP請求,正常發(fā)出的該ARP請求會被發(fā)送到該VM1所在的虛擬交換機vSwitch1中,該ARP請求用于獲取VM1所在第一子網(wǎng)的虛擬網(wǎng)關的MAC地址。S201,相應地,該vSwitch1接收所述ARP請求,并查詢第一子網(wǎng)的虛擬網(wǎng)關的MAC地址,并返回給所述VM1。假設該vSwitch1查詢到的該第一子網(wǎng)的虛擬網(wǎng)關的MAC地址為MAC_Mx。S202,VM1向vSwitch1發(fā)送第一數(shù)據(jù)報文,該第一數(shù)據(jù)報文攜帶有待訪問目標的IP地址(Remote)、源VM1的網(wǎng)絡地址(假設為IP_VM1和MAC_VM1)、該VM1所在第一子網(wǎng)的虛擬網(wǎng)關的網(wǎng)絡地址MAC_Mx等信息。S203,相應地,vSwitch1接收第一數(shù)據(jù)報文,并根據(jù)第一數(shù)據(jù)報文判斷是否存在對應的傳輸?shù)谝粩?shù)據(jù)報文的預存流表項。應理解的是,vSwitch1接收第一數(shù)據(jù)報文后,可以確定到VM1所在第一子網(wǎng)的指示信息,這里的第一子網(wǎng)的指示信息可以為vSwitch1連接第一子網(wǎng)的網(wǎng)絡標識(VNI=X);接著vSwitch1根據(jù)第一數(shù)據(jù)報文、或者根據(jù)第一數(shù)據(jù)報文和第一子網(wǎng)的網(wǎng)絡標識來判斷是否存在對應的預存流表項。如果vSwitch1查詢到存在有預存的用來傳輸?shù)谝粩?shù)據(jù)報文的流表項時,繼續(xù)執(zhí)行步驟S204;否則,繼續(xù)執(zhí)行步驟S206。S204,該vSwitch1將流表項記錄的網(wǎng)關實體作為目標網(wǎng)關實體,并按照所述流表項的指示對該第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,再將該第二數(shù)據(jù)報文轉發(fā)給目標網(wǎng)關實體所在的虛擬機交換機vSwitch2。S205、相應地,vSwitch2接收第二數(shù)據(jù)報文,并對第二數(shù)據(jù)報文進行解封裝以還原第一數(shù)據(jù)報文,并將第一數(shù)據(jù)報文發(fā)送給目標網(wǎng)關實體IGW1。示例性地,結合圖4給出的網(wǎng)絡框架示意圖,參見圖8所示給出一種報文轉發(fā)的流程示意圖,在具體通信過程中,假設該vSwitch1匹配到如下表2所示的流表項。表2該vSwitch1可以按照如上表2流表項的指示將第一數(shù)據(jù)報文中的源MAC地址從虛擬機的MAC地址MAC_VM1修改為指向目標網(wǎng)關實體的接口MAC地址MAC_My1、將目的MAC地址從第一子網(wǎng)的虛擬網(wǎng)關的MAC地址MAC_Mx修改為目標網(wǎng)關實體的MAC地址MAC_My,以及將網(wǎng)絡標識VNI從第一子網(wǎng)的網(wǎng)絡標識X修改為第二子網(wǎng)的網(wǎng)絡標識Y,然后對第一數(shù)據(jù)報文進行重新封裝,如果在VXLAN的應用場景下,還會添加一些VTEP信息對報文進行封裝,得到封裝后的第二數(shù)據(jù)報文,接著將第二數(shù)據(jù)報文從vSwitch1發(fā)送到vSwitch2中,該vSwitch2接收到第二數(shù)據(jù)報文后進行解封裝以還原成第一數(shù)據(jù)報文,進而該vSwitch2按照目的MAC地址即目標網(wǎng)關實體的MAC地址MAC_My以及第二子網(wǎng)的網(wǎng)絡標識VNI=Y將第一數(shù)據(jù)報文發(fā)送給對應的目標網(wǎng)關實體IGW1中,也即是IGW1的網(wǎng)關MAC地址為MAC_My。S206,vSwitch1向對應的SDN控制器發(fā)送流表請求消息,該流表請求消息攜帶有待訪問目標的IP地址(Remote)、第一子網(wǎng)的虛擬網(wǎng)關的MAC地址(MAC_Mx);可選地還可攜帶有第一子網(wǎng)的指示信息(如第一子網(wǎng)的網(wǎng)絡標識VNI=X)、和/或虛擬機的指示標識(如虛擬機的IP地址IP_VM1),以及其他的用于傳輸?shù)谝粩?shù)據(jù)報文的信息。S207、相應地,SDN控制器根據(jù)流表請求消息攜帶的待訪問目標的IP地址選擇目標網(wǎng)關。在本發(fā)明實施例中,假設SDN控制器根據(jù)虛擬機的IP地址所表征的虛擬機的優(yōu)先級信息確定的路徑最優(yōu)策略來選擇出的目標網(wǎng)關實體為IGW1,關于目標網(wǎng)關實體的選擇這里不作詳述,具體參見如上步驟S105和S106所述,這里不在贅述。S208,SDN控制器根據(jù)該流表請求消息和該目標網(wǎng)關實體的指示信息生成流表項,并將流表項下發(fā)給vSwitch1。S209,相應地,vSwitch1接收流表項,并按照該流表項的指示將第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,將第二數(shù)據(jù)報文轉發(fā)給目標網(wǎng)關實體所在的vSwitch2。S210、相應地,vSwitch2接收第二數(shù)據(jù)報文,并對第二數(shù)據(jù)報文進行解封裝還原為第一數(shù)據(jù)報文,并將第一數(shù)據(jù)報文發(fā)送給目標網(wǎng)關實體IGW1。應理解的,關于vSwitch1到vSwitch2之間的通信所用流表項的相關說明,參見如上步驟S205所述,這里不再贅述。相應地,目標網(wǎng)關IGW1接收第一數(shù)據(jù)報文后,可以根據(jù)預先的配置直接轉發(fā),或者進行公私網(wǎng)地址轉換后,再將該第一數(shù)據(jù)報文轉發(fā)至Internet去訪問外網(wǎng)百度。同理在相反方向的通信過程中,可具體參見如圖9所示。S300,IGW1首次接收到來自源IP地址(如Internet外網(wǎng)百度Remote)發(fā)送的第一數(shù)據(jù)報文時,IGW1不感知外界網(wǎng)關實體變化首先發(fā)出ARP請求,正常發(fā)出的ARP請求被發(fā)送到該IGW1實體所在的vSwitch2中,其中ARP請求用于獲取IGW1所在第二子網(wǎng)的虛擬網(wǎng)關的MAC地址。S301,相應地,vSwitch2接收所述ARP請求,并向該IGW1返回IGW1所在第二子網(wǎng)的虛擬網(wǎng)關的MAC地址,這里即該IGW1的MAC地址(MAC_My)。S302,IGW1向vSwitch2發(fā)送第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶有待訪問目標的IP地址(這里是虛擬機的IP地址IP_VM1)、第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(MAC_My)以及源網(wǎng)絡地址(即Remote、以及指向IGW1的接口MAC地址MAC_My1)等信息。S303,相應地,vSwitch2接收第一數(shù)據(jù)報文,并根據(jù)第一數(shù)據(jù)報文判斷是否存在對應的傳輸?shù)谝粩?shù)據(jù)報文的流表項。應理解的是,vSwitch2接收第一數(shù)據(jù)報文后,可以確定到目標網(wǎng)關實體所在第二子網(wǎng)的指示信息,如vSwitch2連接第二子網(wǎng)的網(wǎng)絡標識(VNI=Y);接著vSwitch2可以根據(jù)第一數(shù)據(jù)報文、或者根據(jù)第一數(shù)據(jù)報文和第二子網(wǎng)的網(wǎng)絡標識來判斷是否存在對應的傳輸?shù)谝粩?shù)據(jù)報文的流表項,如果vSwitch2查詢到傳輸該第一數(shù)據(jù)報文的流表項,則繼續(xù)執(zhí)行步驟S304;否則執(zhí)行步驟S306。S304,該vSwitch2按照所述流表項的指示對第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,并將該第二數(shù)據(jù)報文轉發(fā)給虛擬機所在的虛擬機交換機vSwitch1。S305、相應地,vSwitch1接收第二數(shù)據(jù)報文,并對該第二數(shù)據(jù)報文進行解封裝以還原為第一數(shù)據(jù)報文,并將第一數(shù)據(jù)報文發(fā)送給虛擬機VM1。S306,該vSwitch2向對應的SDN控制器發(fā)送流表請求消息,該流表請求消息攜帶有待訪問目標的IP地址(即虛擬機的IP地址IP_VM1)和第二子網(wǎng)的虛擬網(wǎng)關的MAC地址(即目標虛擬網(wǎng)關實體的MAC地址MAC_Mx),可選地還可攜帶有第二子網(wǎng)的網(wǎng)絡標識(VNI=Y)、和/或目標網(wǎng)關實體的指示標識(即目標網(wǎng)關實體的IP/MAC地址)等關于第一數(shù)據(jù)報文的信息。S307,相應地,SDN控制器接收流表請求消息,并根據(jù)流表請求消息攜帶的待訪問目標的IP地址確定該待訪問目標的IP地址所在第一子網(wǎng)的虛擬網(wǎng)關。需要說明的是,由于虛擬機VM1的IP地址所在第一子網(wǎng)的虛擬網(wǎng)關的IP地址所屬的網(wǎng)段與VM1的IP地址所屬的網(wǎng)段相同,因此這里不需要再次選擇VM1的IP地址所在第一子網(wǎng)的虛擬網(wǎng)關。S308,SDN控制器根據(jù)該流表請求消息和該第一子網(wǎng)的虛擬網(wǎng)關的指示信息生成流表項,并將流表項下發(fā)給vSwitch2。S309、相應地,vSwitch2接收該流表項,并按照流表項的指示對第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,將第二數(shù)據(jù)報文發(fā)送給虛擬機VM1所在的虛擬交換機vSwitch1。S310、相應地,vSwitch1接收第二數(shù)據(jù)報文,并對第二數(shù)據(jù)報文進行解封裝以還原第一數(shù)據(jù)報文,將第一數(shù)據(jù)報文發(fā)送給虛擬機VM1。應理解的是,在VM1到目標網(wǎng)關實體IGW1之間的相互通信是可逆的,上述步驟S300至步驟S310與如上步驟S200至S210類似,這里不再贅述。實施例二:參見圖3和圖4給出的網(wǎng)絡框架示意圖,第一子網(wǎng)內部署有N個虛擬機,以及N個虛擬機所對應的虛擬網(wǎng)關,第二子網(wǎng)內部署有M個網(wǎng)關,且交換機通過容器實體來實現(xiàn)DVR的功能,也即是基于路由表項來實現(xiàn)。假設現(xiàn)存在被部署在第一子網(wǎng)內物理主機2中的一虛擬機VM1首次發(fā)起訪問外網(wǎng)百度的業(yè)務通信請求,百度的IP地址為Remote。在實際通信過程中,SDN控制器可以根據(jù)該網(wǎng)絡框架的網(wǎng)絡拓撲信息以及路由策略生成有對應的路由表,并將該路由表提前下發(fā)/添加至數(shù)據(jù)轉發(fā)系統(tǒng)中的相關物理實體(如namespace、docker等容器)中。示例性地,假設SDN控制器提前在該網(wǎng)絡框架示意圖中的物理實體(容器)中添加有如下表4所示的路由表。表4fromVM1lookuptablet_vm1t_vm1:dest=vpc,nexthop=localt_vm1:dest=vpn_cidr,nexthop=vgw_g1t_vm1:dest=default,nexthop=igw_g1請參見圖10所示給出一種基于路由表項的應用場景示意圖,在實際通信過程中,虛擬機VM1向該VM1所在的vSwitch1發(fā)送第一數(shù)據(jù)報文,第一數(shù)據(jù)報文包攜帶有待訪問目標的IP地址(dest=Remote)和該VM1的網(wǎng)絡地址(IP_VM1和MAC_VM1)。在第一數(shù)據(jù)報文轉發(fā)到vSwitch1時,會被標記上對應所屬的網(wǎng)絡標簽(即VM1所在第一子網(wǎng)的網(wǎng)絡標識VNI=X),由于VM1的IP地址和待訪問目標的IP地址所屬的網(wǎng)段不同,該vSwitch1會將第一數(shù)據(jù)報文轉送到數(shù)據(jù)轉發(fā)系統(tǒng)中的容器中進行轉發(fā)。和正常路由通信相同,從容器中查找路由表項,這里可根據(jù)VM1的IP地址(IP_VM1)來確定路由表t_vm1,如上表4所示;進一步地根據(jù)待訪問目標的IP地址(Remote)從所述路由表中查詢下一跳IP地址,以及對應所屬子網(wǎng)的網(wǎng)絡標識,即目標網(wǎng)關實體所在第二子網(wǎng)的網(wǎng)絡標識VNI=Y,并從第二子網(wǎng)的網(wǎng)絡標識Y所對應的接口/出口返回至該vSwitch1。此時第一數(shù)據(jù)報文攜帶的目的MAC地址(即第一子網(wǎng)的虛擬網(wǎng)關的MAC地址)將變更為目標網(wǎng)關實體的MAC地址MAC_My,同時該vSwitch1還會為第一數(shù)據(jù)報文打上對應第二子網(wǎng)的網(wǎng)絡標識Y,對該第一數(shù)據(jù)報文進行重新封裝得到第二數(shù)據(jù)報文,進而將第二數(shù)據(jù)報文路由給目標網(wǎng)關實體所在的vSwitch2上。相應地,vSwitch2接收第二數(shù)據(jù)報文,并進行解封裝以還原為第一數(shù)據(jù)報文,并按照第一數(shù)據(jù)報文攜帶的目的MAC地址(即目標網(wǎng)關實體的MAC地址MAC_My)以及第二子網(wǎng)的網(wǎng)絡標識Y將該第一數(shù)據(jù)報文發(fā)送給對應的目標網(wǎng)關實體。通過實施本發(fā)明實施例,能夠解決南北向通信存在的網(wǎng)關性能和瓶頸擁塞的問題,同時還能避免網(wǎng)關實體占用業(yè)務子網(wǎng)IP地址所引起的子網(wǎng)IP地址的浪費,提升了網(wǎng)關實體通信的擴展性。上述詳細闡述了本發(fā)明實施例的方法,為了便于更好地實施本發(fā)明實施例的上述方案,下面參照圖11~13描述本發(fā)明實施例的相關裝置。請參見圖11,是本發(fā)明實施例提供的一種交換機的結構示意圖,交換機分別連接第一子網(wǎng)和第二子網(wǎng),第一子網(wǎng)中包含虛擬機,且配置有一個虛擬網(wǎng)關,第二子網(wǎng)中包含多個網(wǎng)關實體,該交換機4包括:接收單元40,用于接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;確定單元41,用于根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體;封裝單元42,用于根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文;轉發(fā)單元43,用于將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體。在一種可選的方案中,所述確定單元41具體用于根據(jù)所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。在又一種可選的方案中,所述確定單元41具體用于根據(jù)所述待訪問目標的IP地址,所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和所述虛擬機的IP地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。在又一種可選的方案中,所述確定單元41具體用于向控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;接收所述控制器發(fā)送的流表項,所述流表項包含所述目標網(wǎng)關實體的指示信息。在又一種可選的方案中,所述流表請求消息中還攜帶所述第一子網(wǎng)的指示信息。在又一種可選的方案中,所述流表請求消息中還攜帶所述虛擬機的指示標識,所述虛擬機的指示標識用于表征所述虛擬機的優(yōu)先級信息。在又一種可選的方案中,所述第一子網(wǎng)的指示信息為所述交換機連接所述第一子網(wǎng)的接口號或所述第一子網(wǎng)的網(wǎng)絡標識。需要說明的是,圖11所示的交換機的具體實現(xiàn)還可以對應參照圖6所示的方法實施例的相應描述,此處不再贅述。請參見圖12,是本發(fā)明實施例提供的又一種交換機的結構示意圖,交換機分別連接第一子網(wǎng)和第二子網(wǎng),第一子網(wǎng)中包含虛擬機,且配置有一個虛擬網(wǎng)關,第二子網(wǎng)中包含多個網(wǎng)關實體,該交換機4包括:接收器401、發(fā)送器402、存儲器403和處理器404(處理器404的數(shù)量可以一個或多個,圖4中以一個處理器為例),在本發(fā)明的一些實施例中,接收器401、發(fā)送器402、存儲器403和處理器404可通過總線或者其它方式連接,其中,圖12中以通過總線連接為例。所述處理器404調用所述存儲器403中的數(shù)據(jù)轉發(fā)程序,用于執(zhí)行本申請上述實施例中的任意一種數(shù)據(jù)轉發(fā)方法。請參見圖13,是本發(fā)明實施例提供的一種數(shù)據(jù)轉發(fā)系統(tǒng)的結構示意圖,該系統(tǒng)13包括交換機4、第一子網(wǎng)1和第二子網(wǎng)2,交換機4分別連接所述第一子網(wǎng)和第二子網(wǎng),所述第一子網(wǎng)中包含虛擬機VM,所述第一子網(wǎng)配置有一個虛擬網(wǎng)關,所述第二子網(wǎng)中包含多個網(wǎng)關實體GW,其中,所述虛擬機VM,用于向所述交換機發(fā)送第一數(shù)據(jù)報文,所述第一數(shù)據(jù)報文攜帶待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述交換機4,用于接收所述虛擬機發(fā)送的第一數(shù)據(jù)報文;根據(jù)所述第一數(shù)據(jù)報文,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體;根據(jù)所述第一數(shù)據(jù)報文,所述目標網(wǎng)關實體的Mac地址和所述第二子網(wǎng)的網(wǎng)絡標識,封裝得到第二數(shù)據(jù)報文;將所述第二數(shù)據(jù)報文轉發(fā)給所述目標網(wǎng)關實體;所述目標網(wǎng)關實體GW,用于接收所述交換機轉發(fā)的所述第二數(shù)據(jù)報文。在一種可能的實現(xiàn)方式中,所述交換機4具體用于根據(jù)所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。在又一種可能的實現(xiàn)方式中,所述交換機4具體用于根據(jù)所述待訪問目標的IP地址,所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址和所述虛擬機的指示標識,確定所述第二子網(wǎng)中與所述第一數(shù)據(jù)報文匹配的目標網(wǎng)關實體。在又一種可能的實現(xiàn)方式中,所述系統(tǒng)13還包括控制器5,所述交換機4,具體用于向所述控制器發(fā)送流表請求消息,所述流表請求消息中攜帶所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址;所述控制器5,用于接收所述交換機發(fā)送的流表請求信息;根據(jù)所述流表請求信息攜帶的待訪問目標的IP地址確定與所述待訪問目標的IP地址對應的業(yè)務類型;根據(jù)所述待訪問目標的IP地址對應的業(yè)務類型從第二子網(wǎng)內的多個網(wǎng)關實體中選擇出目標網(wǎng)關實體;根據(jù)所述目標網(wǎng)關實體的指示信息和所述流表請求消息生成對應的流表項,并將所述流表項下發(fā)給所述交換機;所述交換機4,還具體用于接收所述控制器發(fā)送的流表項,所述流表項包含所述目標網(wǎng)關實體的指示信息。在又一種可能的實現(xiàn)方式中,所述流表請求消息中還攜帶所述第一子網(wǎng)的指示信息,所述控制器5,具體用于根據(jù)所述目標網(wǎng)關實體的指示信息和所述流表請求消息攜帶的所述第一子網(wǎng)的指示信息,所述待訪問目標的IP地址和所述第一子網(wǎng)的虛擬網(wǎng)關的Mac地址生成對應的流表項。在又一種可能的實現(xiàn)方式中,所述流表請求消息中還攜帶所述虛擬機的指示標識,所述虛擬機的指示標識用于表征所述虛擬機的優(yōu)先級信息,所述控制器5,具體用于根據(jù)與所述虛擬機的指示標識對應的路由策略從所述第二子網(wǎng)內的多個網(wǎng)關實體中選擇出目標網(wǎng)關實體。需要說明的是,圖13所示的數(shù)據(jù)轉發(fā)系統(tǒng)的具體實現(xiàn)還可以對應參照圖6所示的方法實施例的相應描述,此處不再贅述。綜上所述,通過實施本發(fā)明實施例,能夠解決南北向通信存在的網(wǎng)關實體性能和瓶頸擁塞的問題,同時M個網(wǎng)關實體被部署在不同于N個虛擬機所在的網(wǎng)段或子網(wǎng)內還能避免現(xiàn)有技術中由于網(wǎng)關實體占用業(yè)務子網(wǎng)的IP地址,引起子網(wǎng)IP地址浪費的問題。以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。以上實施例僅揭露了本發(fā)明中較佳實施例,不能以此來限定本發(fā)明之權利范圍,本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。當前第1頁1 2 3 當前第1頁1 2 3 
      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1