感謝泰克教育各位老師的教導。
原創文章,轉載請注明出處。
Vxlan(工作在三層IP鏈路)和Vlan(工作在二層Trunk鏈路)共同工作,給虛機提供一個大二層環境。
vxlan 由思科和VMware提出,由IETF指定為二層隧道標准。
overlay給租戶的虛擬機使用,安全隔離的虛擬網絡,由SDN控制,隨虛機動態變化;
underlay是spine-leaf或不同區域spine間的三層網絡,物理網絡。
思科的Nexus VPC技術最先推出,當時華為沒有類似技術,在M-lag出現前,只有用本地優先轉發跟思科競爭。思科的Nexus Nx-OS運行在Linux之上。思科技術:
- FabricPath大二層技術公開后,演變為Trill,運行在isis之上。后被VMWare的VXLAN取代;
- 最早的Overlay技術為OTV;
- 一虛多技術VDC,類似華為的VS;
- 縱向虛擬化技術為Fex,類似華為的SVF;
Juniper開發了netconf,對抗openflow【出現時,要求全軟件,徹底取代傳統硬件廠家】。
一、Spine-Leaf 脊葉結構
數據中心作為企業的信息中心,承載了越來越多的業務和應用。同時數據中心技術發展快速,虛擬化,分布式應用如hadoop,分布式存儲等大規模部署。數據中心內部的東西向流量大幅度增長。80%為東西向流量,20%為南北向流量。當前數據中心的一組或者兩組核心設備不滿足業務需求。因此基於胖樹的 SPINE-LEAF 架構成為數據中心(分區)網絡主流拓撲架構。
- Leaf節點:葉子節點,VXLAN Fabric網絡功能接入節點,提供各種網絡設備接入VXLAN網絡功能。作為underlay網絡的L2/L3分界,同Spine節點三層互通。
- Spine節點:骨干節點(最少2台),VXLAN Fabric網絡核心節點,提供高速IP轉發功能,通過高速接口(L3)連接各個功能Leaf節點。
Fabric架構通常由SPINE-LEAF兩層組成,每個SPINE和LEAF節點全互連(IP三層互聯,ECMP 等價路由)。可以方便地通過擴展SPINE節點來擴展網絡容量。主要特點如下:
- 高效轉發,任何兩台服務器間的通信不超過3台設備。
- 使用IP路由,VXLAN,TRILL等技術實現多路徑鏈路負載分擔,鏈路使用效率高,提升解決數據中心網絡整體交換容量。(具體技術和設計詳見Fabric設計)
- 部署方便,網絡規模可彈性擴展。對 spine leaf 的增加和移除,都不會影響整體網絡的運行。


每一個leaf節點都跟所有的spine相連,Leaf、Spine節點使用Loopback接口建立鄰居關系(bgp evpn),每一條物理鏈路均配置IP並發布進ospf(Loopback同樣發布進ospf),Loopback間的路由都是經過spine的均衡路由。spine數量越多,均衡路由就越多。如果擴充spine節點,整個拓撲的東西橫向負載能力就能大幅提升,有利於服務器間互訪。
服務器使用雙歸上連(必備條件),leaf使用堆疊或M-lag。
不同的租戶在服務器及vSwitch內部,使用VLAN隔離,同一台物理機中的虛機通過vswitch相連,vswitch與leaf交換機通過trunk相連。
數據包從服務器發出時,攜帶VLAN標簽,由Leaf進行Vxlan封裝【替換掉VLAN】。使用Vxlan隧道,穿透Spine-leaf間的 IP Fabric網絡【Fabric網絡是由一組Spine及Leaf節點設備互聯組成,提供所有接入網絡的各類節點間的無差異互訪,實現一台物理設備供多個租戶同時使用,多台物理設備可供一個租戶使用,大大節約成本,提高了資源的利用率】。
FW、LB也是通過Trunk鏈路連接。FW使用vsys(虛牆)工作。LB也使用虛擬化來進行工作【F5的是Route Domains】。
優勢即:ospf全三層收斂速度快、多路徑負載分擔、易於擴容、橫向流量路徑簡單。
LAG:Link Aggregate Group 鏈路聚合組。
舊版中有 Trill 的內容,新版已經刪除,華為在項目中也不推 Trill 了。
1.1 VXLAN Fabric 網絡的二層/三層架構
華為把 leaf 分為三種:
- Sever Leaf:leaf 下連服務器;
- Service Leaf:連 FW、LB 等L4~L7增值服務;FW、LB使用虛擬化技術為租戶提供虛擬私有服務【每個租戶使用一套VPC虛擬私有雲(租戶對應的是VDC)。華為USG防火牆能支持4000+虛牆】;
- Border Leaf:連接到 WAN 或者其它網絡,是Fabric的邊界;
LDW:現網中,service&border leaf的功能多由 spine 承擔,即其它設備(L4~L7)直接連接至 spine,路徑更短更優。這是現網中,華為主推的方案。這種物理分區的架構規模受限:
- Spine 擴展性不如 leaf,且接口有限。
- Service Leaf 的模塊化設計更容易擴展,對Spine的處理壓力也小。
根據是否有Border Leaf交換機作為網關,VXLAN 的架構可以分為:
- Spine/Leaf二層架構方案流量模型簡單,維護簡便,但擴展比較困難,適用於中小型網絡場景。
- GW/Spine/Leaf三層架構方案架構靈活,網絡擴展能力強,但流量路徑和維護相對復雜,適用於大中型網絡場景。
1.2 Underlay 和 Overlay
Overlay意為疊加,即通過在現有網絡上疊加一個軟件定義的邏輯網絡,原有網絡盡量不做改造,通過定義其上的邏輯網絡來實現業務邏輯,解決原有數據中心的網絡問題。Overlay是一種將(業務的)二層網絡構架在(傳統網絡的)三層/四層報文中進行傳遞的網絡技術。
Overlay技術實際上是一種隧道封裝技術,主要有VXLAN、NVGRE等,基本原理都是通過隧道封裝的方式將二層報文進行封裝后在現有網絡中進行透明傳輸,到達目的地之后再解封裝得到原始報文,相當於一個大二層網絡疊加(overlay)在現有的網絡之上。
Underlay是一張承載網,由各類物理設備構成,如TOR交換機、匯聚交換機、核心交換機、負載均衡設備與防火牆設備等。
實施Overlay技術后,會在Underlay網絡基礎上形成一張邏輯網。


Overlay網絡是建立在Underlay網絡基礎上的虛擬網,由邏輯節點和邏輯鏈路構成。
Overlay網絡具有獨立的控制和轉發平面,對於連接在Overlay邊緣設備之外的終端來說,物理網絡是透明的。
在華為CloudFabric解決方案中,選用VXLAN技術來構建Overlay網絡,業務報文運行在VXLAN Overlay網絡上,與物理承載網絡解耦。
根據承擔Overlay邊緣設備(VXLAN NVE)屬性的不同,基於VXLAN的Overlay又可以分為:
- Network Overlay:所有NVE全部由物理交換機承擔(傳統網絡設備廠家主推,使用專用的網絡設備,性能較好)。
- Host Overlay:所有NVE全部由vSwitch承擔(VMware主推,大規模公有雲也會使用:使用定制的服務器硬件,提高vSwitch性能,網絡設備僅做IP轉發。與網絡設備商解耦)。
- Hybrid Overlay:NVE一部分部署在物理交換機上,另一部分部署在vSwitch上。
1.3 Spine-leaf 架構在企業網中的vxlan環路風險(劉大偉)


綠色框內都是有可能出環的場景【其中交換機都是二層,現網中不應這么部署】:
- S1雙上聯到leaf1、leaf2,leaf1和leaf2之間vxlan二層隧道,stp在vxlan隧道無法應用,形成環路。
- S2、S3分別上連到leaf3、leaf2,leaf3和leaf2之間vxlan二層隧道,成環原因同上。
所以leaf的南向接口,一般要求開啟stp bpdu防護,一旦檢測到bpdu報文,即關閉端口,以防止環路。
或者將圖中的2台leaf虛擬為一個vtep,這樣他們之間就不會建立vxlan隧道(參考M-lag)。
STP之類的BPDU報文不會進入vxlan隧道,因為BPDU雖然屬於二層報文,但不會進入任何BD。
二、Vxlan(Virtual Extensible LAN,虛擬可擴展局域網)
不同leaf、甚至不同區域、不同數據中心下的虛機,有可能是同一個租戶的,並處在同一個vlan。而不同leaf間是由ospf&bgp來做的三層環境,此時必須有一個技術,為虛機提供一個二層的隧道來穿越三層網絡,以實現同租戶不同虛機之間的二層東西向互訪。vxlan就是這樣一個技術。
硬件廠家如華為華三思科,都推薦在物理交換機leaf上對vxlan進行封裝和解封裝,性能好。
而軟件廠家如VMware、微軟,不生產交換機,它們的解決方案是在vswitch上直接對vxlan進行封裝和解封裝。NSX 是VMware的純軟件SDN解決方案。
FW、LB通過Trunk二層連接到Spine/Service-leaf,方便建立不同的vFW、vLB。
數據中心互聯現在也以 vxlan 為主流,mpls、vpls 的極少。mpls要求設備支持標簽,對軟件也有要求。Vxlan 只要設備支持 ip 和隧道技術即可,實現簡單。CE設備vxlan需要License。
RFC7348定義了VLAN擴展方案VXLAN(Virtual eXtensible Local Area Network)。VXLAN采用MAC in UDP(User Datagram Protocol 用戶數據報協議)封裝方式,是NVO3(Network Virtualization over Layer 3)中的一種網絡虛擬化技術。
UDP的轉發方式比TCP更接近以太網,盡力轉發,效率更高。
2.1 MTU 的要求【Underlay MTU 調整到 9216byte 以上】
Vxlan報文:【20字節IP頭+ 8字節udp頭+ 8字節vxlan頭+ 14字節原以太網幀頭+ IP載荷】,共增加50字節的幀頭(以太網載荷)。
- 以太網幀最小 46byte,最大為 mtu(默認1500byte,下圖IPv4報頭長度最少應為20字節)。加14字節的以太網幀頭,4字節的幀尾,以太網報文實際長度為 64~1518 byte,設備默認可以不分片傳輸。
- 如果vxlan封裝的幀(1550字節)在經過設備時,按照默認的1500字節 mtu,將發生分片,影響傳輸效率。所以ce交換機的mtu必須進行修改,一般設置到 9216字節 或更高【目前最高設置到 9600字節,默認1500字節。DCI線路經過運營商設備時,如波分,要注意確認其MTU】。


vxlan UDP 目標端口號 4789,源端口號根據載荷以太網幀頭做 hash計算后得出,這個hash值實際上是參與了vxlan三層負擔選路的)。
這種hash模式,在分布式網關跨網段訪問時,Router’s MAC不會變化,這樣負載分擔效果不好。新版中的源端口生成方式不知道修改了沒。
不同虛機跨vxlan隧道訪問時的鏈路負載分擔:如果在相同的兩個leaf之間,源目IP相同,目的UDP端口號相同,唯一有可能變化的就是UDP源端口號,需要用 端口號+IP來做hash計算 以進行Spine+Leaf間的多IP鏈路負載分擔,避免vxlan隧道的流量集中在某一條鏈路。
【】load-balance ecmp #進入ECMP視圖。
【ecmp】hashmode 5 #配置ECMP負載分擔的HASH算法,5為源目IP+源目端口。
2.2 Vxlan 相關名詞定義
VNI【vxlan network ID,3字節】,Vxlan數據頭中最重要的部分,以 VNI 來區分不同 vxlan網絡中的二層域,目前只有一層vni【同子網通信時封裝二層vni,跨子網時封裝三層vni】。VNI與BD/VRF的對應關系由配置決定【手動或SDN下發,二層/三層VNI的范圍在AC-DCN中定義】。VNI字段長3字節(24bit),共能區分 1677.7萬個不同的 vxlan。
劉大偉:一個vlan(其實是BD)要對應一個vxlan網絡,每個BD都有自己的vxlan隧道【兩個vtep間所有的vxlan隧道其實是共用的】。
<HUAWEI> display vxlan vni 5000 verbose
BD ID : 10
State : up
NVE : 1610612739
Source Address : 1.1.1.1
Source IPv6 Address : -
UDP Port : 4789
BUM Mode : head-end
Group Address : -
Peer List : 2.2.2.2 2.2.2.3
IPv6 Peer List : -
NVO3(Network Virtualization Over Layer 3,3層網絡虛擬化),基於三層IP overlay網絡構建虛擬網絡技術統稱為NVO3,目前比較有代表性的有:VXLAN、NVGRE(微軟私有,Over IP)、STT(VMware NSX 私有,無三次握手的TCP)。
NVE(Network Virtualization Edge,網絡虛擬邊界設備)運行NVO3的設備,它位於overlay網絡的邊界,實現二、三層的虛擬化功能。主要用於本地VTEP地址管理,VXLAN隧道管理,頭端復制列表管理。
VTEP(VXLAN Tunnel EndPoint,VXLAN隧道端點):VXLAN網絡中的NVE以VTEP進行標識,VTEP必須全網唯一。
- 每一個NVE至少有一個VTEP,VTEP使用NVE的IP地址表示【一般用設備的Loopback接口,回環接口不會down,且更節約ip地址資源(可配置為32位)】;
- 兩個VTEP可以確定一條VXLAN隧道。np:VTEP間的這條VXLAN隧道將被兩個NVE間所有的VNI公用。
BD(Bridge Domain,橋域)是VXLAN網絡中轉發數據報文的二層廣播域(為支持vxlan,新增加的一個二層廣播域定義)。在VXLAN網絡中,將VNI(L2vni)以1:1方式映射到廣播域BD,BD成為VXLAN網絡轉發數據報文的實體。
- 所有廣播域功能基於BD支持,如MAC學習、二層查表、廣播復制等;
- BD-ID本地有效,用以連接vlan和vxlan【可通過L2子接口、或vlan方式配置關聯】。
vBDIF:BD域的三層路由接口,用於二層流量進入三層進行路由轉發。BD通過vbdif接入租戶的三層VRF虛擬路由器。不同的VRF通過L3vni來區分。
L2-Subif 二層子接口:用於用戶接入,子接口接入方式包括:dot1q(單vlan或vlan區間),default(不區分tag,統一封裝),untag,qinq雙層封裝(vid pe ce-vid ce)。
VXLAN隧道:用於VXLAN報文的轉發,用本地VTEP地址+遠端VTEP地址標識。
VXLAN防環機制:使用水平分割防環。即:設備從vxlan隧道收到的數據幀,如解封裝后發現是二層BUM幀,則只會在VNI關聯的BD本地接口泛洪(南向BD接口),不會重新封裝發送給其它的VTEP。
VXLAN 的簡化理解—---兩次虛擬化:
1、第一次虛擬化:利用隧道技術將邊緣設備互連透傳二層報文;整網抽象理解成一台端口數目擴展的超大LAN switch。
2、第二次虛擬化利用VNI將這台超大的交換機虛擬出多個二層的廣播域,和VLAN本質是一樣的,VNI類比VLANID. 並通過定義VXLAN header中的VNI字段,將子網范圍由4K擴展至16M。
2.3 TOR Leaf 交換機中 MAC 地址表的對應關系
Vxlan 對應的mac表格式,增加了vlan&vsi&bd的對應關系,及對應的vtep IP地址或物理接口,用以保存從Vxlan隧道中學到的MAC地址:
MAC Address VLAN/VSI/BD Learned-From Type Age -------------------------------------------------------- 0000-3602-0311 -/-/20 2.2.2.2 evn -
VSI:標識接口關聯的VSI(Virtual Switching Instance)。
Learned-From:遠端NVE地址或是本地接口。
evn:標識EVN或EVPN網絡中存在的MAC地址表項。
- 當目的MAC命中本地時,使用vlan封裝【其實是根據出接口配置的封裝方式進行封裝】。
- 當目的MAC命中Vtep鄰居時,使用Vxlan封裝,並通過Vxlan隧道發往對應的Vtep鄰居。
虛機中對應的則是ARP表。