11. Forwarding (2)

前段時間有幸和國內(nèi)的同行們交流了一番,發(fā)現(xiàn)形勢大好。云,openstack,VMWare,SDN都開始有repeatable use case出現(xiàn)了,技術(shù)落地也越來越扎實。這是好事,大家加油。

這篇文章會用上篇文章中的概念繼續(xù)聊如何在多租戶數(shù)據(jù)中心里進行數(shù)據(jù)包的轉(zhuǎn)發(fā)。在聊具體方案之前,大家先嘗試回答一下這個問題:如果你是當(dāng)初第一個設(shè)計多租戶數(shù)據(jù)中心轉(zhuǎn)發(fā)平面的架構(gòu)師,openstack上的一個租戶起了一個router,你會如何實現(xiàn)這個router呢?想清楚這個問題,多租戶數(shù)據(jù)中心數(shù)據(jù)平面的大框架就有了,剩下的都是在為這個大框架添磚加瓦,小修小補。目前工業(yè)界有兩大類方案,overlay和fabric。這兩個方案完全不同,而他們之所以不同的最根本原因就是對上面這個問題的答案不同。

Overlay

這類方案的設(shè)計者是這樣回答以上問題的:既然用戶在orchestration系統(tǒng)上起了一個router,那我們也對應(yīng)起一個router就好了。問題是這個router應(yīng)該起在哪兒呢?在一臺服務(wù)器上起一個軟件router是最直接的選擇(在多租戶的概念剛興起的時候,這甚至是唯一的選擇)。于是這個orchestration系統(tǒng)中邏輯上的router就和一臺軟件router一一對應(yīng)了。這臺軟件router很自然的便成了那個租戶所有subnet的default gateway。一個很自然的問題便是:如果一個租戶的vm和router不在同一臺物理服務(wù)器上,那這個vm要如何才能夠和這個router實現(xiàn)二層互聯(lián)呢?兩個最容易想到的選擇便是:1) 通過配置vlan直接實現(xiàn)二層互聯(lián),2) 通過隧道實現(xiàn)layer2 over layer3。選項1)在實踐中一直是一個很頭疼的問題:給定任意的拓普,都能夠動態(tài)的配置vlan,trunk和STP,這是整個網(wǎng)絡(luò)行業(yè)解決了20年都沒有解決好的問題。于是選項2)成了唯一的選擇。

接下來的故事就非常順理成章了:vxlan應(yīng)運而生,用來打隧道以及通過VNI來區(qū)分更多數(shù)量的租戶;一個軟件router沒有HA,于是先引入VRRP做冗余,之后是DVR;軟件router的性能可能會成為瓶頸,于是DPDK相關(guān)的技術(shù)又迎來了春天。

博主還是堅持一直以來的觀點:所有的技術(shù)都是上層應(yīng)用驅(qū)動的。如果最初的架構(gòu)師們對以上那個問題給出了不同的答案,vxlan,DVR,DPDK這些技術(shù)就很可能不會有今天這樣火爆了。

Fabric

這類方案的設(shè)計者對以上那個黑體字問題的回答完全不同:這個router應(yīng)該實現(xiàn)在交換機上,因為這是交換機的專長。既然在多租戶的數(shù)據(jù)中心里subnet并不和機架綁定,一個IP可能被orchestration系統(tǒng)分配到任何位置,那么這個router就應(yīng)該分布式的實現(xiàn)在所有交換機上。

這是一個非常合理同時也非常大膽的回答。我們先來看看在這樣的回答之下,一臺交換機究竟在扮演怎樣的角色。我們首先把目光關(guān)注在第一跳的交換機上 (如果是VM,那這第一跳交換機就是一臺軟件交換機;如果是bare metal服務(wù)器,那這第一跳交換機就是一臺硬件交換機)。不管是軟件還是硬件交換機,如果服務(wù)器發(fā)出的是二層報文,這臺交換機就應(yīng)該能夠進行二層轉(zhuǎn)發(fā)/廣播;如果服務(wù)器發(fā)ARP要gateway的mac,這臺交換機就應(yīng)該做ARP reply;如果服務(wù)器發(fā)出的是三層報文,這臺交換機就應(yīng)該能夠進行三層轉(zhuǎn)發(fā)。例子舉到這里,大家就會發(fā)現(xiàn)在fabric的解決方案里,一臺交換機究竟是二層還是三層已經(jīng)變得模糊,數(shù)據(jù)的轉(zhuǎn)發(fā)平面需要進行精心的設(shè)計。在這類解決方案當(dāng)中,最具代表性的是Big Cloud Fabric。

比較到這里,兩類方案最大的區(qū)別就講清楚了:在overlay方案里,default gateway往往在某一臺物理服務(wù)器上;在fabric方案里,default gateway在第一跳的交換機上。不少方案就是在這兩種極端的解決方案之間尋找一個折中:比如有些方案會把tunnel打在硬件交換機上,用來保證性能以及滿足bare metal用戶的需求。關(guān)于兩種方案的優(yōu)劣,博主之前已經(jīng)聊了不少(文章4,文章10)。從各個角度來看,博主依然堅定的認為fabric是在技術(shù)上更加優(yōu)秀的方案。在之后的文章中,博主會對fabric方案中,default gateway之后究竟會發(fā)生什么進行進一步討論。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 好久沒有更新文章了,因為公司在憋大招。上周Big Cloud Fabric 3.0終于登場,博主這才得空。先在這里...
    xinwu閱讀 1,292評論 1 5
  • 相信不少兄弟的SDN啟蒙都是各種高大上的論文中五花八門的概念和應(yīng)用,等到真把開源控制器和mininet裝好,要開始...
    xinwu閱讀 2,902評論 6 15
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個操作系統(tǒng),...
    sgt_tiger閱讀 13,231評論 4 72
  • 1. OSI,TCP/IP,五層協(xié)議的體系結(jié)構(gòu),以及各層協(xié)議 OSI分層 (7層):物理層、數(shù)據(jù)鏈路層、...
    iCaptain閱讀 2,583評論 0 4
  • 寂靜無聲的夜晚里,我找不到自己丟失的靈魂,我似乎把它落在了你那里,可是任憑我怎么呼喚自己的靈魂,它都不愿意回...
    KristyShen閱讀 248評論 0 0

友情鏈接更多精彩內(nèi)容