vxlan簡介2


http://support.huawei.com/enterprise/zh/doc/DOC1100004219?section=k004

 

1.2  VXLAN部署方案

 

目前,設備支持通過單機方式控制器方式來部署VXLAN網絡。

  • 單機方式:傳統網絡部署方式,按照網絡規划登錄到每台設備上進行配置。雲計算數據中心中,此方式無法協同雲平台實現網絡的自動化部署。
  • 控制器方式:在大二層網絡中,為了方便控制與部署引入了控制器。控制器是統一的網絡控制平台,實現網絡資源統一協調及管理,協同雲平台實現業務和網絡的自動化部署。

AC控制器方式

  • AC控制器方式概述

    AC控制器方式是指通過AC控制器(Agile Controller-Enterprise)來動態建立VXLAN隧道。此時,AC控制器通過NETCONF協議控制設備VXLAN隧道的建立,通過OpenFlow協議控制報文在隧道中的轉發。

    圖1-2所示,AC控制器可直接管理用戶虛擬網絡也可直接通過Neutron獲得用戶虛擬網絡的信息。控制器根據用戶虛擬網絡信息,進行動態計算生成網絡相關配置信息,並自動映射到物理網絡。

    圖1-2  基於AC控制器+VXLAN解決方案網絡框架示意圖 
    基於AC控制器+VXLAN解決方案網絡框架介紹如 表1-1所示。
    表1-1  基於AC控制器+VXLAN解決方案網絡框架介紹

    框架名稱

    說明

    雲平台

    實現對網絡資源、計算資源和存儲資源的按需調度,提供業務管理、運維界面。Neutron為雲平台的組件,用於提供網絡服務。

    網絡控制器

    完成網絡建模和網絡實例化。

    AC控制器通過RESTful接口,接收來自雲平台網絡模型配置信息,並轉化為相應的配置命令,並通過OpenFlow和NETCONF協議與網絡設備對接建立的通道,將命令下發到基礎網絡層的網絡設備。

    基礎網絡

    物理網絡和虛擬網絡統一規划。
    • 支持基於硬件的VXLAN網關提高業務性能。
    • 支持對傳統VLAN網絡的兼容。
  • AC控制器與設備之間通信通道的建立與維護

    通過雲平台,控制器可及時感知終端租戶的狀態,獲得用戶虛擬網絡的信息。如圖1-3所示,終端租戶上線后,通過雲平台,控制器根據獲得的用戶虛擬網絡信息進行動態計算,生成網絡相關配置信息及流表信息,並自動映射到物理網絡。

    圖1-3  設備和AC控制器通道建立和維護示意圖 
    圖1-3所示,網絡管理員需要先通過CLI或ZTP在設備上預先配置NETCONF並完成VXLAN的必要配置(如創建NVE接口、配置VTEP的IP地址等)。完成配置后,AC控制器可通過NETCONF自動管理設備。
    • AC控制器根據控制器集群的負載,自動為網絡設備分配控制器節點,配置設備與該節點的OpenFlow。
    • AC控制器接收雲平台的指令,並自動將其轉化為網絡設備的配置,完成業務的自動化部署。
    • AC控制器包含ARP協議棧,支持ARP的學習及報文處理。網絡設備與AC控制器之間通過OpenFlow完成ARP報文的上送和發送。
    • AC控制器通過OpenFlow給設備下發ARP流表,指導設備報文轉發。如果AC控制器與設備之間的OpenFlow中斷,ARP流表不會立即老化,轉發不會中斷。AC控制器與設備之間的OpenFlow恢復后,AC控制器會與設備重新同步流表,保證表項一致。
 

MAC地址動態學習

在VXLAN網絡中,為了實現終端租戶的互通,支持MAC地址動態學習,不需要網絡管理員手工維護,大大減少了維護工作量。下面結合圖1-13,詳細介紹一下同子網主機互通時,MAC地址動態學習的過程:

圖1-13  MAC地址動態學習 
  1. Host3發送源MAC為MAC3、目的MAC為全F、源IP為IP3、目的IP為IP2的ARP請求報文,請求Host2的MAC地址。

  2. Leaf1收到該ARP請求后,根據二層子接口上的配置判斷該請求報文需進入VXLAN隧道,並確定報文所對應的VNI(20)。同時Leaf1學習到了Host3的MAC地址、BDID(二層廣播域標識)和報文入接口(即二層子接口對應的物理接口Port1)的對應關系,並在本地MAC表中生成Host3的MAC表項,其出接口為Port1。

  3. Leaf1對該ARP請求報文進行VXLAN封裝,如圖1-14所示,封裝的VNI是綁定當前BD的VNI,封裝的外層源IP地址為Leaf1的VTEP IP地址,外層目的IP地址為Leaf2的VTEP IP地址,外層源MAC地址為Leaf1的NVE1接口MAC地址,外層目的MAC地址為去往目的IP的網絡下一跳的MAC地址。封裝后的報文根據外層MAC和IP信息在IP網絡中傳輸,送達Leaf2。

    圖1-14  VXLAN報文 
  4. Leaf2收到報文后進行解封裝,得到Host3發送的原始ARP請求報文,同時Leaf2學習到Host3的MAC地址、BDID和Leaf1上VTEP IP地址的對應關系,並在本地的MAC表中生成Host3的MAC表項,其出接口需根據下一跳(即Leaf1的VTEP IP地址)進行迭代,最終迭代結果是指向Leaf1的VXLAN隧道。

  5. Leaf2在對應的二層域內廣播ARP請求。Host2收到ARP請求后,比較報文中的目的IP是否為本機的IP地址,如果是,則將Host3的MAC地址保存到本地的MAC表中,並進行ARP應答。

由於此時Host2已經學習到了Host3的MAC地址,所以ARP應答報文為單播報文,后續的ARP應答報文發送過程與上述過程類似,這里不再贅述。Host3和Host2互相學習到對方的MAC地址之后,雙方將采用單播通信。

 

同子網已知單播報文轉發

同子網已知單播報文轉發只在VXLAN二層網關之間進行,三層網關無需感知。報文轉發流程如圖1-15所示。

圖1-15  同子網已知單播報文轉發示意圖 
  1. Leaf1收到來自Host3的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,並在該二層廣播域內查找出接口和封裝信息。
  2. Leaf1上VTEP根據查找到的封裝信息對數據報文進行VXLAN封裝,然后根據查找到的出接口進行報文轉發。
  3. Leaf2上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層的二層報文。
  4. Leaf2根據內層二層報文的目的MAC,從本地MAC表找到對應的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的主機Host2。

Host2向Host3發送報文的過程類似,這里不再贅述。

同子網BUM報文轉發

同子網BUM報文轉發只在VXLAN二層網關之間進行,三層網關無需感知。同子網BUM報文轉發可以采用頭端復制方式、集中復制方式和組播復制方式

頭端復制
頭端復制是指,當BUM報文進入VXLAN隧道時,接入端VTEP根據頭端復制列表進行報文的VXLAN封裝,並將報文發送給頭端復制列表中的所有出端口VTEP。BUM報文出VXLAN隧道時,出口端VTEP對報文解封裝。BUM報文采用頭端復制的轉發流程如 圖1-16所示。
圖1-16  同子網BUM報文采用頭端復制轉發示意圖 
  1. Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
  2. Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的頭端復制隧道列表,依據獲取的隧道列表進行報文復制,並進行VXLAN封裝。然后將封裝后的報文從出接口轉發出去。
  3. Leaf2/Leaf3上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
  4. Leaf2/Leaf3檢查內層二層報文的目的MAC,發現是BUM MAC,在對應的二層廣播域內的非VXLAN隧道側進行廣播處理,即:Leaf2/Leaf3分別從本地MAC表中找到非VXLAN隧道側的所有出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C

 

集中復制

當BUM報文進入VXLAN隧道時,如果接入端VTEP采用頭端復制方式進行報文的VXLAN封裝。此時接入端VTEP需要往每一個遠端VTEP發送一份報文,造成流量泛洪。此時可以配置集中復制。集中復制是指,在接入端VTEP上配置集中復制功能,在集中復制點上配置泛洪代理IP地址,當接入端VTEP封裝報文進VXLAN隧道時,只需要發送一份報文到集中復制點,可以減少網絡中的泛洪流量,所以集中復制點也可以稱為泛洪網關,之后集中復制點進行VXLAN報文的解封裝和封裝,發送報文到各個出口端VTEP。出口端VTEP對報文再次解封裝出VXLAN隧道。BUM報文采用集中復制的轉發流程如圖1-17所示。

圖1-17  同子網BUM報文采用集中復制轉發示意圖 
  1. Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
  2. Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的對應的集中復制隧道,並進行VXLAN封裝。然后將封裝后的報文從出接口轉發出去。
  3. Leaf4作為集中復制節點接收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文,再根據二層廣播域對應VNI的頭端復制列表進行VXLAN封裝,此時外層的源IP地址為leaf1的VTEP地址,不會影響VTEP間的MAC地址學習。
  4. Leaf2/Leaf3上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
  5. Leaf2/Leaf3檢查內層二層報文的目的MAC,發現是BUM MAC,在對應的二層廣播域內的非VXLAN隧道側進行廣播處理,即:Leaf2/Leaf3分別從本地MAC表中找到非VXLAN隧道側的所有出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C。
 
組播復制
為了減少BUM報文采用頭端復制方式引起的流量洪泛,還可以配置組播復制。組播復制是指, 同一個VNI的所有VTEP都加入同一個組播組,利用組播路由協議(如PIM)為該組播組建立組播轉發表項,當源端VTEP收到BUM報文后,為該BUM報文封裝組播目的IP地址(例如225.0.0.1),封裝后的報文根據已建立的組播轉發表項轉發到遠端VTEP,從而減少流量洪泛。最后遠端VTEP再對VXLAN報文解封裝。BUM報文采用組播復制的轉發流程如 圖1-18所示。
圖1-18  同子網BUM報文采用組播復制轉發示意圖 
  1. Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
  2. Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的組播復制地址,並進行VXLAN封裝。封裝后的VXLAN報文對外表現為一個組播報文,然后根據組播轉發表項發送給Leaf4。
  3. Leaf4接收到組播報文后,直接根據組播轉發表項,將報文轉發給Leaf2和Leaf3。
     說明:

    這里Leaf4作為非網關節點,只進行組播報文的轉發。Leaf4也可以配置為網關節點,這樣Leaf4既要轉發組播報文,又要解封裝VXLAN報文,並在VLAN網絡廣播BUM報文,此時Leaf4節點稱為BUD節點。

  4. Leaf2/Leaf3收到組播報文后,根據組播轉發表項中的出接口(NVE接口)判斷該報文是VXLAN報文,此時Leaf2/Leaf3上的VTEP根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
  5. Leaf2/Leaf3檢查內層二層報文的目的MAC,發現是BUM MAC,在對應的二層廣播域內的非VXLAN隧道側進行廣播處理,即:Leaf2/Leaf3分別從本地MAC表中找到非VXLAN隧道側的所有出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C。

跨子網報文轉發

跨子網報文轉發需要通過三層網關實現。在集中式網關場景中,跨子網報文轉發的流程如圖1-19所示。

圖1-19  跨子網報文轉發示意圖 
      1. Leaf1收到來自Host1的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,在對應的二層廣播域內查找出接口和封裝信息。
      2. Leaf1上VTEP根據查找到的出接口和封裝信息進行VXLAN封裝,向Spine轉發報文。
      3. Spine收到VXLAN報文后進行解封裝,發現內層報文中的目的MAC是三層網關接口VBDIF10的MAC地址MAC3,判斷需要進行三層轉發。
      4. Spine剝除內層報文的以太封裝,解析目的IP。根據目的IP查找路由表,找到目的IP的下一跳地址,再根據下一跳地址查找ARP表項,獲取目的MAC、VXLAN隧道出接口及VNI等信息。
      5. Spine重新封裝VXLAN報文,向Leaf2轉發。其中內層報文以太頭中的源MAC是三層網關接口VBDIF20的MAC地址MAC4。
      6. Leaf2上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。依據VNI獲取對應的二層廣播域,然后進行VXLAN解封裝,獲取內層二層報文,並在對應的二層廣播域內查找出接口和封裝信息。
      7. Leaf2根據查找到的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的Host2。

Host2向Host1發送報文的過程類似,這里不再贅述。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM