轉自唐傑帳號
不久之前有一篇《萬字長文:IP網絡的前浪和後浪》從網工的視角介紹了IP網絡的發展變化。其中最後推薦的Cisco的大牛的Silivano Gai 的《Building-Future-Proof-Cloud-Infrastructure-Architecture》的確值得一讀。其中就高屋建瓴:
「The debate between bridging and routing supporters has been very active for the last 25 years. With Ethernet being the only surviving technology at layer 2, the term bridging is today a synonym of Ethernet bridging, with its behavior defined by the Institute of Electrical and Electronics Engineers (IEEE) in IEEE 802.1 [2] and implemented by bridges. On the other hand, IP is the only surviving technology at layer 3, and routing is the synonym of IP routing with its behavior defined by IETF [3] (Internet Engineering Task Force) RFC (Request For Comment) standards and implemented by routers.」
因此,對於網絡虛擬化也就相對簡單明了,就是L2/L3之間的事情。接上次的作業,個人認為需要有一個名詞解釋的環節了。對於網絡虛擬化,就從這個開始吧。
分類技術交換機VEB, VEPA, VNTAG,VSS,DVS, OVS, FEX 二層的linkVLANL2 網絡 on L2VLANL2 網絡 on L3NVO3,VXLAN,NVGRE,STT,TRILL,LISP路由VRF,VRRPL3 網絡 on L3MPLS, GRE, GUE, Geneve
VEB (Virtual Ethernet Bridge )
最初的VEB的例子就是vmware的vswitch。
對於VEB的實現,有軟體和硬體兩類。[1]
軟體VEB就是虛擬交換機上聯物理網卡,來自虛擬網卡的包先到虛擬交換機,根據虛擬交換機的信息,VM之間的包由vswitch轉發,需要到外部的包轉發到物理網卡。
硬體的VEB其實就是基於SRIOV的網卡,SRIOV可以讓虛擬網卡bypass hypervisor的虛擬交換機直接到虛擬機。SRIOV的網卡替代了虛擬交換機的功能,對於VM之間的包的路徑,還是一樣。
可以看出,VEB的基本功能是VM之間的包交換,這個交換發生在server端,如果考慮到整體的網絡管理功能,特別是ACL之類的控制,交換機廠家是有需求希望可以讓VM之間的流量到交換機的。
VEPA(Virtual Ethernet Port Aggregator ):
這個就是有人講的「發卡彎」了,虛擬機所有的流量都通過物理網卡到外置的交換機去,這樣原來虛擬交換機的功能都可以卸載到物理交換機上了,物理網絡和虛擬網絡都在一起了。
這裡面有一個hairpinning的概念了,就是同一臺物理機上的虛擬機之間的流量在交換機對應的埠進,同埠出,對於一個合格的2層交換機,STP(spinning tree protocol)是不允許的。這個就需要特殊的虛擬化支持了。
這裡的EVB,就是Edge Virtual Bridge的意思。VEPA是HP提出的IEEE的協議IEEE 802.1qbg standard.
對於VEPA來講,VM和Hypervisor的權利被剝離了,如果他們需要直接訪問網卡,或者部分VM就希望使用VEB,因此VEPA就有了S-Channel的觀念來支持多樣的需求。
VNTAG (Virtual Network TAG)
對於上面VEPA對於STP的違反,Cisco在 802.1qbh 『Bridge Port Extension.』 基礎上提出了VNTAG來解決VM的網絡管理的問題。[2]
VIF_ID在一個物理網口上定義多個虛擬的網口,從而解決了hairpinning的問題。
對於交換機自身,也有虛擬化的需求:
VSS (Vmware Stanard Virtual Switch) 這個不用講了。最基礎的虛擬網絡。[3]
DVS (Distributed Virtual Switches)
這個也是VMware的概念。Vsphere多node之間的網絡管理。[4]
OVS ( Open vSwitch)
目前公有雲最熱門的虛擬網絡交換。
FEX ( Fabric Extender)
Cisco的虛擬交換機系統,可以聚合物理交換機到單一的邏輯交換機。
VLAN -這個不用解釋了
傳統的數據中心需要支持BUM (Broadcast, unknown-unicast and multicast )traffic 以及二層的橋接技術。為了這些功能,網絡架構相對比較複雜,有過多的冗餘設計,難以擴展。一般採用「1+1」的冗餘設計,網絡規模要靠增加交換機來擴大。
現代的數據中心沒有這些負擔,設備的同質化很高,網絡可以集中在Unicast和三層路由,從而大大簡化網絡的負責程度。現代的數據中心網絡一般採用全三層設計,路由網絡協議,沒有二層的橋接,組播和廣播的功能。
Overlay
本質上就是在三層網絡上跑二層的協議。[6]
接著就理解下面的2層over 3層,和3層 over 3層了。
NVO3 (Network Virtualization Overlays)[5]
The purpose of the NVO3 WG is to develop a set of protocols and/orprotocol extensions that enable network virtualization within a datacenter (DC) environment that assumes an IP-based underlay. An NVO3solution provides layer 2 and/or layer 3 services for virtual networksenabling multi-tenancy and workload mobility, addressing the issuesdescribed in the problem statement (including management and security),and consistent with the framework previously produced by the NVO3 WG.
The NVO3 WG will develop solutions for network virtualization based onthe following architectural tenets:- Support for an IP-based underlay data plane- A logically centralized authority for network virtualizationNetwork virtualization approaches that do not adhere to these tenets areexplicitly outside of the scope of the NVO3 WG.
In pursuit of the solutions described above, the NVO3 WG will documentan architecture for network virtualization within a data centerenvironment.
NVO3 更像一個多租戶的公有雲環境下的整體框架,和之前的OSI的7層模型類似,沒有很強的操作意義,反而其中某些技術的作用更大。
VXLAN (Virtual eXtensible Local Area Networks)
VNI -Virtual Network interface
VTEP - Virtual Tunnel End Point
VxLAN的報文格式
NVGRE (Network Virtualization Using Generic Routing Encapsulation)
從名字上看是基於GRE (Generic Routing Encapsulation),報文的格式如下,目前的主要用戶是微軟。
STT (Stateless Transport Tunneling Protocol)
STT和VXLAN和NVGRE一樣,都是一種tunelling的協議。
在STT中因為使用了TCP的header,因此就引入兩個優化的技術。LSO(large segmentation offloading )和LRO (large receive offlaoding).
TRILL (Transparent Interconnection of Lots of Links )
數據中心網絡帶寬優化的方法。作為新的大二層網絡的代表,在2010年和SPB (Shortest Path Bridging )之間有過較量,但是目前數據中心大二層的概念已經被overlay的概念替代了。
TRILL可能代表著數據中心網絡中交換機為中心的沒落,網絡虛擬化從而轉向以Host位置的VXLAN/NVGRE/STT的時代。
LISP (Locator/ID Separation Protocol)
Cisco 主導的下一代三層路由的協議。不知道是否可以取代目前數據中心中普遍使用的BGP協議。
VRF (virtual routing and forwarding)
和二層的VLAN類似,可以讓多個路由表在一個物理路由上共存。
VRRP (Virtual Router Redundancy Protocol)
這個主要是路由器之間的冗餘配置協議,詳細的對比如下[7]
MPLS (Multi-protocol label switching)
這個貌似是現在整個網際網路的基石。標準的L3 in L3.
GRE (Generic Routing Encapsulation)
先到這裡吧,只是講了目前數據中心網絡虛擬化的方面相關的一些名詞,就有感覺這個坑越來越大的感覺。在雲計算興起之前,還有carrier ethernet和data center ethenet的說法,現在可以看到NFV的興起,兩個網絡有融合的趨勢,可能在5G,邊緣計算的大框架裡,ICT已經合體。
[1]http://networkerhere.blogspot.com/2012/11/impact-of-server-virtualization-on.html
[2]http://www.definethecloud.net/access-layer-network-virtualization-vn-tag-and-vepa/
[3]https://pubs.vmware.com/vsphere-51/topic/com.vmware.wssdk.pg.doc/PG_Networking.11.4.html?resultof=%22%56%53%53%22%20%22%76%73%73%22%20
[4]https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.pg.doc%2FPG_Networking.11.4.html
[6]企業數位化基石――阿里巴巴雲計算基礎設施實踐
[5]https://datatracker.ietf.org/wg/nvo3/about/
[7]https://www.networkstraining.com/hsrp-vrrp-glbp-comparison/