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獲得用戶虛擬網絡的信息。控制器根據用戶虛擬網絡信息,進行動態計算生成網絡相關配置信息,並自動映射到物理網絡。
基於AC控制器+VXLAN解決方案網絡框架介紹如 表1-1所示。 -
AC控制器與設備之間通信通道的建立與維護
通過雲平台,控制器可及時感知終端租戶的狀態,獲得用戶虛擬網絡的信息。如圖1-3所示,終端租戶上線后,通過雲平台,控制器根據獲得的用戶虛擬網絡信息進行動態計算,生成網絡相關配置信息及流表信息,並自動映射到物理網絡。
如 圖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地址動態學習的過程:
-
Host3發送源MAC為MAC3、目的MAC為全F、源IP為IP3、目的IP為IP2的ARP請求報文,請求Host2的MAC地址。
-
Leaf1收到該ARP請求后,根據二層子接口上的配置判斷該請求報文需進入VXLAN隧道,並確定報文所對應的VNI(20)。同時Leaf1學習到了Host3的MAC地址、BDID(二層廣播域標識)和報文入接口(即二層子接口對應的物理接口Port1)的對應關系,並在本地MAC表中生成Host3的MAC表項,其出接口為Port1。
-
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。
-
Leaf2收到報文后進行解封裝,得到Host3發送的原始ARP請求報文,同時Leaf2學習到Host3的MAC地址、BDID和Leaf1上VTEP IP地址的對應關系,並在本地的MAC表中生成Host3的MAC表項,其出接口需根據下一跳(即Leaf1的VTEP IP地址)進行迭代,最終迭代結果是指向Leaf1的VXLAN隧道。
-
Leaf2在對應的二層域內廣播ARP請求。Host2收到ARP請求后,比較報文中的目的IP是否為本機的IP地址,如果是,則將Host3的MAC地址保存到本地的MAC表中,並進行ARP應答。
由於此時Host2已經學習到了Host3的MAC地址,所以ARP應答報文為單播報文,后續的ARP應答報文發送過程與上述過程類似,這里不再贅述。Host3和Host2互相學習到對方的MAC地址之后,雙方將采用單播通信。
同子網已知單播報文轉發
同子網已知單播報文轉發只在VXLAN二層網關之間進行,三層網關無需感知。報文轉發流程如圖1-15所示。
- Leaf1收到來自Host3的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,並在該二層廣播域內查找出接口和封裝信息。
- Leaf1上VTEP根據查找到的封裝信息對數據報文進行VXLAN封裝,然后根據查找到的出接口進行報文轉發。
- Leaf2上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層的二層報文。
- Leaf2根據內層二層報文的目的MAC,從本地MAC表找到對應的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的主機Host2。
Host2向Host3發送報文的過程類似,這里不再贅述。
同子網BUM報文轉發
同子網BUM報文轉發只在VXLAN二層網關之間進行,三層網關無需感知。同子網BUM報文轉發可以采用頭端復制方式、集中復制方式和組播復制方式。
頭端復制- Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
- Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的頭端復制隧道列表,依據獲取的隧道列表進行報文復制,並進行VXLAN封裝。然后將封裝后的報文從出接口轉發出去。
- Leaf2/Leaf3上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
- 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所示。

- Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
- Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的對應的集中復制隧道,並進行VXLAN封裝。然后將封裝后的報文從出接口轉發出去。
- Leaf4作為集中復制節點接收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文,再根據二層廣播域對應VNI的頭端復制列表進行VXLAN封裝,此時外層的源IP地址為leaf1的VTEP地址,不會影響VTEP間的MAC地址學習。
- Leaf2/Leaf3上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
- Leaf2/Leaf3檢查內層二層報文的目的MAC,發現是BUM MAC,在對應的二層廣播域內的非VXLAN隧道側進行廣播處理,即:Leaf2/Leaf3分別從本地MAC表中找到非VXLAN隧道側的所有出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C。
- Leaf1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域。
- Leaf1上VTEP根據對應的二層廣播域獲取對應VNI的組播復制地址,並進行VXLAN封裝。封裝后的VXLAN報文對外表現為一個組播報文,然后根據組播轉發表項發送給Leaf4。
- Leaf4接收到組播報文后,直接根據組播轉發表項,將報文轉發給Leaf2和Leaf3。
說明:
這里Leaf4作為非網關節點,只進行組播報文的轉發。Leaf4也可以配置為網關節點,這樣Leaf4既要轉發組播報文,又要解封裝VXLAN報文,並在VLAN網絡廣播BUM報文,此時Leaf4節點稱為BUD節點。
- Leaf2/Leaf3收到組播報文后,根據組播轉發表項中的出接口(NVE接口)判斷該報文是VXLAN報文,此時Leaf2/Leaf3上的VTEP根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。然后依據VNI獲取對應的二層廣播域,進行VXLAN解封裝,獲取內層二層報文。
- Leaf2/Leaf3檢查內層二層報文的目的MAC,發現是BUM MAC,在對應的二層廣播域內的非VXLAN隧道側進行廣播處理,即:Leaf2/Leaf3分別從本地MAC表中找到非VXLAN隧道側的所有出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C。
跨子網報文轉發
跨子網報文轉發需要通過三層網關實現。在集中式網關場景中,跨子網報文轉發的流程如圖1-19所示。
- Leaf1收到來自Host1的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,在對應的二層廣播域內查找出接口和封裝信息。
- Leaf1上VTEP根據查找到的出接口和封裝信息進行VXLAN封裝,向Spine轉發報文。
- Spine收到VXLAN報文后進行解封裝,發現內層報文中的目的MAC是三層網關接口VBDIF10的MAC地址MAC3,判斷需要進行三層轉發。
- Spine剝除內層報文的以太封裝,解析目的IP。根據目的IP查找路由表,找到目的IP的下一跳地址,再根據下一跳地址查找ARP表項,獲取目的MAC、VXLAN隧道出接口及VNI等信息。
- Spine重新封裝VXLAN報文,向Leaf2轉發。其中內層報文以太頭中的源MAC是三層網關接口VBDIF20的MAC地址MAC4。
- Leaf2上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。依據VNI獲取對應的二層廣播域,然后進行VXLAN解封裝,獲取內層二層報文,並在對應的二層廣播域內查找出接口和封裝信息。
- Leaf2根據查找到的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的Host2。
Host2向Host1發送報文的過程類似,這里不再贅述。