局域網SDN技術硬核內幕 一 從二層到大二層

局域網SDN技術硬核內幕 一 從二層到大二層

在上一期《分佈式任意播網關》中,我們提出了兩個問題:

  1. 同網段的虛擬機,如何跨越虛擬交換機(OVS)通信?
  2. 不同網段的虛擬機,又如何跨越OVS通信呢?

今天我們將爲大家揭開謎底。

首先,我們知道,在同一臺宿主機下,同一網段的虛擬機可以直接通訊,而在同一個二層域內,跨宿主機的虛擬機通訊則需要OVS在上連方向增加VLAN TAG,如圖所示:
在這裏插入圖片描述
那麼,我們是不是將整個數據中心網絡配置爲二層網絡,併爲每個網段分配對應的VLAN,就可以實現虛擬機跨宿主機任意通信了呢?
當然不是的。

同學們回顧一下《計算機網絡》課程中提到的以太網通信機制,對於以太網,每個BUM報文(Broadcast, Unknown-unicast, Multicast),都將在網絡中泛洪,也就是說,網絡中每個二層節點都將向收到該報文的端口以外的所有端口複製該報文。

可能有的同學會問,這種機制,不是已經經受過了歷史的考驗嗎?當然。在一個小規模的子網中,如果終端數量不超過200個,是沒有問題的。但是,如果子網規模達到1000個以上,每個終端每秒發送1個BUM報文,將導致子網中每秒鐘需要傳輸1,000,000個報文,也就是說,子網中的BUM泛洪包數量,與終端數成平方正比關係。
看到這裏,有的紮實掌握了以太網技術的同學已經發現問題所在了。是的,千兆以太網每秒鐘最多隻能傳輸1,488,095個數據報文,當子網規模較大時,網絡中大部分的資源將被BUM報文泛洪消耗,這是不可接受的。

我們可以判斷,在數據中心大規模虛擬化的趨勢下,虛擬化終端在以太網泛洪機制下製造的平方律增加的泛洪數據包,與線性提升的以太網交換能力之間的矛盾,已經上升爲數據中心網絡的主要矛盾。

大二層技術就是解決這一矛盾的主要手段。

常見的大二層技術,有Trill、NVGRE、FabricPath、SPB等。在大浪淘沙中,VXLAN技術以其良好的兼容性和擴展性成爲了大二層技術的主流。

VXLAN技術的實現,是將以太網數據包封裝在UDP內,當以太網數據包進入VXLAN隧道時,VXLAN隧道端點(VTEP, Vxlan Tunnel End Point)爲以太網數據包添加外層IP/UDP頭部,另一端的VTEP拆除之,如下圖所示:

在這裏插入圖片描述如圖,VLAN 100內的兩個VM通信時,OVS扮演VTEP的角色,在以太網數據包外面增加一層以太網/IP/UDP數據包頭。外層IP的源地址/目的地址分別爲兩端OVS的IP。
VXLAN採用UDP端口4789作爲目的端口,而源端口通過內層數據包的頭部進行Hash計算得出,便於實現負載均衡。
原來,VXLAN並不神祕,通過VXLAN實現的二層轉發也很簡單。
執行VXLAN二層轉發工作的VTEP,我們叫它VXLAN二層網關,或VXLAN網橋。
明天,我們將介紹VXLAN三層路由的概念,爲大家詳細介紹虛擬機跨網段轉發的機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章