資料中心與雲端網路

網路覆疊(network overlay)

想像一個國家的實體道路網——連接每個地方的真實柏油路。現在再想像一家快遞公司在其上畫出自己的「虛擬路線」私圖:「藍線」也許沿著任何方便的真實道路從倉庫連到倉庫,而司機腦中只想著藍線和綠線,而不是究竟走哪些具體街道。真實道路是底層(underlay);快遞公司的私有邏輯地圖是覆疊(overlay)。網路覆疊正是如此:一個建在實體網路之上的虛擬網路。

在資料中心裡,底層是交換器、連結與 IP 位址構成的真實結構(葉脊網路)。覆疊則是疊在其上的一組虛擬網路,做法是把每個租戶的封包包進一個外層封包裡——封裝——讓它穿越底層、在遠端再拆開。每台伺服器的 hypervisor 裡有一個虛擬交換器,加上一個外層標頭(用 VXLAN 或 GRE 這類協定),帶著一個虛擬網路識別碼,於是兩台以為共用同一個私有區域網路的虛擬機器,實際上可以位於建築兩端、在完全不同的實體子網路上。底層只看到實體伺服器之間普通的 IP 封包,用一般的 ECMP 路由它們;它既不知道、也不在乎裡面裝了什麼。

為什麼重要:覆疊把租戶與應用程式看到的邏輯網路,和營運者實際運作的實體網路解耦。這讓你能給數千個雲端租戶各自隔離、私有、甚至位址範圍重疊的網路,能把一台虛擬機器搬到另一機架而不必改它的 IP,也能用軟體啟動或拆除虛擬網路而不必重新佈線。誠實的代價:封裝會加上標頭位元組(降低有效 MTU、進而降低有效傳輸量)與 CPU 負擔,除錯更難(因為你得同時推敲兩個網路),而且覆疊只能和它底下的底層一樣可靠、一樣快。

兩個租戶的虛擬機器都用私有範圍 10.0.0.0/8。若沒有覆疊,這會是無解的位址衝突。有了覆疊,每個租戶的封包都帶著不同的 VXLAN 網路 ID,於是底層把它們分開——兩者都能重用 10.0.0.1,卻從不會看到彼此。

重疊的租戶位址能共存,因為覆疊用標籤把它們分開。

覆疊不會創造頻寬,也修不好慢吞吞的底層——它只是疊在其上的虛擬定址。如果實體結構壅塞或當機,騎在它上面的覆疊一樣會受害;封裝只會增加負擔,從不增加容量。

又称
overlay networkunderlay vs overlay網路覆疊覆疊網路