硬科技:科科們了解SmartNIC和DPU前需要知道的網路虛擬化

2021.11.05 01:12PM

大概在10多年前,在台北慶城街附近的某間咖啡館,筆者某位後來舉家搬到美國加州灣區的友人,正聚精會神的面對著ThinkPad X61。不學無術的筆者一踏進屋內,就問他到底悶著頭在幹嘛,一看才知道他正在VMware上跑個好幾個Juniper的路由器作業系統JunOS,模擬公司內幾個跨國資料中心的路由連結架構,想也知道又是一堆難搞的路由協定,像BGP OSPF IS-IS IGRP之類的。

時至今日,隨著電腦運算效能的急速成長,與虛擬化技術的快速普及,昔日需要動用大量硬體設備的應用環境,像用來測試驗證IT環境的實驗室,現在只要1台伺服器甚至1台個人電腦,就可輕鬆搞定。在20年前,很多人還需要研究如何讓個人電腦可以雙作業系統開機,自從Windows 8開始內建從Windows Virtual PC演進而來的Hyper-V,這種需求也幾乎銷蹤匿跡了。

硬科技:為何x86的虛擬化這麼難搞(上)
硬科技:為何x86的虛擬化這麼難搞(中)
硬科技:為何x86的虛擬化這麼難搞(下)
硬科技:x86虛擬化由內到外還是繼續難搞(上)
硬科技:x86虛擬化由內到外還是繼續難搞(中)
硬科技:x86虛擬化由內到外還是繼續難搞(下)

對於一般個人電腦和單一實體伺服器來說,虛擬機的網路部份,不外乎每個虛擬機都有自己的虛擬網卡、虛擬MAC和IP位址,對外連網時,這些虛擬機共享所屬硬體的物理網路卡,對內虛擬機之間的通信,則透過Hypervisor的虛擬交換器。但如果科科就以為這就叫做「網路虛擬化」,那就太有違科科們站在時代浪頭的身份了。

就問一個最簡單的問題:資料中心和企業網路,不同實體伺服器之間的虛擬機,也需要互通有無,這時候該怎麼辦?

硬科技:在了解Smart NIC和DPU前科科需要知道的軟體定義網路(上)
硬科技:在了解Smart NIC和DPU前科科需要知道的軟體定義網路(下)

在2012年,由3位軟體定義網路先驅者 (OpenFlow發明者Martin Casado、他的導師Nick McKeown和Scott Shenker) 成立才剛4年都還沒獲利的Nicira公司,靠著NVP (Network Virtualization Platform) 網路虛擬化平台、自有OpenFlow控制器、與功能凌駕於Cisco Nexus 1000V的虛擬交換器OpenvSwitch (OVS),被VMware以12.6億美元的天價所併購。

1年之後,VMware整合自家的vDS (vSphere Distributed Switch) 和買來的NVP,推出無人不知無人不曉的NSX平台,而這也充分彰顯了網路虛擬化的價值:將邊緣交換器「推入」到伺服器內,不同實體伺服器的虛擬機可相互通訊,簡化伺服器和虛擬機的佈署。

照片中提到了VMware NSX architectural overview、Virtual Network、Controller Cluster,包含了虛擬化 l3 網絡、的VMware、軟件定義的網絡、虛擬化、網絡虛擬化

那問題又來了,那麼「網路虛擬化」究竟是什麼?說穿了就讓虛擬機之間的連接,透過Tunnel技術實做,將L2乙太網路的框訊 (Frame),包裝在L3協定的封包 (Packet)。

照片中提到了- VXLAN encapsulated frame-、Inner Ethernet frame、14 bytes,包含了vxlan 頭文件、虛擬可擴展局域網、封裝、標題、以太網VPN

Tunnel可運行於實體物理網路,而實體網路對於虛擬機來說是「透明」的。如此一來,遷移虛擬機時,僅需調整Tunnel,無須修改Mac和IP,更動不到實體網路設備,一切都是軟體層面的自動化作業。此外,如同VLAN,Tunnel都會附帶獨立虛擬網路的標示,不同虛擬網路不能直接通信,形同天然的安全隔離。一個完整的網路虛擬化平台,自然也免不了負載平衡、VPN和防火牆等傳統網路管理需要的必備功能。

照片中提到了Host 1、Host 2、VM1,包含了圖、國立國父紀念館、科技新聞網、建築、設計

目前網路虛擬化領域主要有3種Tunnel技術,分別是VMware的VxLAN (Virtual eXtensible Local Area Network)、微軟的NvGRE (Network virtualization GRE) 和Nicira的STT (Stateless Transport Tunnel),然後還有由IEFT (Internet Engineering Task Force) 所提出、號稱「集前三者之大成」並「考慮到所有應用場景」的GENEVE (Generic Network Virtualization Encapsulation)。筆者直接整理成表,科科們只要大略了解這些東西在幹嘛就可以了。

 

VxLAN

NvGRE

STT

GENEVE

提出者

VMware

Cisco

Arista

微軟

Nicira

IETF

最早問世時間

2011年8月

2011年9月

2012年2月

2019年5月

實現方式

L2 over UDP

L2 over GRE

偽裝成一般TCP

L2 over UDP

實做方式

24位元VNI

24位元VSI

64位元ID

可擴展

Hash負載平衡

現有網路L2-L4

GRE須升級網路

現有網路L2-L4

現有網路L2-L4

應用場景

物理或虛擬環境

物理或虛擬環境

限定虛擬環境

物理或虛擬環境

優勢

更好做負載平衡

大家都支援GRE

(因為它叫微軟)

可靠著網路卡做TCP報文分片,降低CPU負擔

號稱面面俱到

劣勢

須升級網路設備

部份網路設備不支援GRE Key的負載平衡

因為並非真正的TCP協定,無法穿透實體網路

軟硬體廠商們不見得會願意買單

當然,網路虛擬化和虛擬交換器的額外價值,不外乎可因應虛擬網路的實際連接架構,精簡掉一大堆根本用不到的物理層的功能與協定,如自動計算產生L2連接路徑的STP (Spanning Tree Protocol),並搭配其他廠商的軟體,擴展出原本並未具備的安全防護與網路管理機能。也因此,這些年來,網路虛擬化一直是各路英雄好漢的兵家必爭之地。

回到軟體定義網路 (SDN) 的觀點,網路虛擬化刺激了SDN的蓬勃發展,而SDN替網路虛擬化提供了更強大的自動化手段,兩者相得益彰。請各位科科務必牢記在心,科科。