The Road to SDN: An Intellectual History of Programmable Networks
- 文章名稱:The Road to SDN: An Intellectual History of Programmable Networks
- 文章來源:Feamster N , Rexford J , Zegura E . The Road to SDN[J]. Queue, 2013, 11(12):20-40.
ABSTRACT:
軟件定義網絡(SDN)是一項令人興奮的技術,它使我們能夠創新設計和管理網絡,盡管這項技術似乎是突然出現的,但SDN是使計算機網絡更具可編程性的長期努力的一部分。本文追溯了可編程網絡(包括主動網絡)的發展歷史,早期分離控制和數據平面的努力,以及最近在OpenFlow和網絡操作系統方面的工作。我們強調關鍵概念,以及推動每項創新的技術推動和應用拉動。在此過程中,我們揭穿了關于這些技術的常見神話和誤解,并澄清了SDN與網絡虛擬化等相關技術之間的關系
1. Introduction:
計算機網絡復雜且難以管理,這些網絡有很多種設備,從路由器和交換機到防火墻、網絡地址轉換器、服務器負載均衡器和入侵檢測系統等中間盒。路由器和交換機運行復雜的分布式控制軟件,通常是封閉和專有的,實現了經過多年標準化和互操作性測試的網絡協議。網絡管理員通常使用不同供應商甚至同一供應商的不同產品的配置接口來配置單個網絡設備,盡管一些網絡管理工具為配置網絡提供了一個中心優勢,但這些系統仍然在各個協議、機制和配置接口的級別上運行。這種運營模式減緩了創新速度,增加了復雜性,并抬高了運營網絡的資本和運營成本。
軟件定義網絡(SDN)正在改變我們設計和管理網絡的方式。
SDN有兩個定義特征。首先,SDN將控制平面(決定如何處理流量)與數據平面(根據控制平面所做的決定轉發流量)分離。其次,SDN合并控制平面,這樣一個軟件控制程序就可以控制多個數據平面元素。SDN控制平面通過定義良好的應用程序編程接口(API)對網絡數據平面元素(即路由器、交換機和其他中間盒)中的狀態進行直接控制。
OpenFlow就是這樣一個API的突出例子。OpenFlow交換機有一個或多個數據包處理規則表,每個規則匹配一個子集的流量,并對與規則匹配的流量執行某些操作,包括丟棄、轉發或泛洪。根據控制器應用程序安裝的規則,OpenFlow交換機的行為可以類似于路由器、交換機、防火墻、網絡地址轉換器或介于兩者之間的東西。
在過去的幾年里,SDN在工業界獲得了巨大的吸引力——許多商業交換機支持OpenFlow API。最初支持OpenFlow的供應商包括HP、NEC和Pronto,此后這個列表急劇擴展,并且出現了許多不同的控制器平臺。程序員使用這些平臺創建了許多應用程序,如動態訪問控制、服務器負載平衡、網絡虛擬化、節能網絡、無縫虛擬機遷移和用戶移動。早期的商業成功,如谷歌的廣域交通管理系統和Nicira的網絡虛擬化平臺,已經引起了業界的極大關注。世界上最大的信息技術公司(例如云提供商、運營商、設備供應商和金融服務公司)加入了SDN行業聯盟,如開放式網絡基金會和Open Daylight方案。
盡管在過去的幾年中,人們對SDN的興奮已經變得更加明顯,但SDN背后的許多想法都是在過去的二十年(或更長時間)里發展起來的。在某些方面,SDN重新考慮了早期電話網絡的想法,該網絡使用控制和數據平面的明確分離來簡化網絡管理和新服務的部署。然而,像OpenFlow這樣的開放接口使得控制器平臺和應用程序的創新比為狹窄的電話服務范圍而設計的封閉網絡的創新更多。在其他方面,SDN類似于過去對主動網絡的研究,它闡述了可編程網絡的愿景,盡管重點是可編程數據平面,SDN還涉及到以前在計算機網絡中分離控制平面和數據平面的工作。
在這篇文章中,我們展示了可編程網絡的知識歷史,最終形成了今天的SDN。我們捕捉到了關鍵思想的演變、當今的應用“拉動”和技術“推動”,以及有助于指導下一組SDN創新的經驗教訓。在此過程中,我們揭穿了關于每一項技術的神話和誤解,并澄清了SDN與相關技術(如網絡虛擬化)之間的關系。我們的歷史始于20年前,就在互聯網騰飛之際,互聯網驚人的成功加劇了管理和發展網絡基礎設施的挑戰。我們專注于網絡社區的創新(無論是研究人員、標準機構還是公司),盡管我們認識到,在某些情況下,這些創新是由其他領域的進步推動的,包括分布式系統、操作系統和編程語言,創建可編程網絡基礎設施的努力也顯然與支持高速可編程分組處理的長線程有關。
在我們開始我們的故事之前,我們提醒讀者,任何歷史都是不完整的,比單一的故事情節可能暗示的更微妙。特別是,我們在本文中描述的大部分工作都是在使用術語“SDN”之前完成的,該術語是在一篇關于斯坦福OpenFlow項目的文章中創造的。術語“SDN”的詞源本身就很復雜,盡管該術語最初用于描述斯坦福的OpenFlow項目,但此后該定義擴展到包括更廣泛的一系列技術(這個詞有時甚至被行業營銷部門用來描述史丹福SDN項目之前不相關的想法)。因此,我們沒有試圖將項目之間的直接影響歸因于項目之間,而是強調了想法的演變和想法之間的關系。它們代表了SDN的定義特征,不管它們是否直接影響到特定的后續研究,這些早期的一些想法可能沒有直接影響到后來的想法,但我們認為,我們所概述的概念之間的聯系是值得注意的,過去的這些項目可能會為未來的可持續發展網絡提供新的教訓。
2. The Road to SDN:
業界的目標是使計算機網絡更具可編程性有助于網絡管理的創新,并降低部署新服務的障礙。在本節中,我們將回顧可編程網絡的早期工作,將歷史分為三個階段,如圖1所示。
每個階段對歷史都有自己的貢獻:
- (1)主動網絡(從20世紀90年代中期到21世紀初),它在網絡中引入了可編程功能,以實現更大的創新
- (2)控制和數據平面分離(從2001年到2007年左右),開發了控制和數據平面之間的開放接口
- (3)OpenFlow API和網絡操作系統(2007年至2010年左右),代表了廣泛采用開放接口的第一個實例,并開發了使控制數據平面分離具有可擴展性和實用性的方法。
網絡虛擬化在SDN的歷史演進過程中扮演著重要的角色,它在SDN出現之前就已經有了實質性的發展,但作為SDN最早的重要用例之一,網絡虛擬化已經扎根于SDN之上。我們在第3節討論了網絡虛擬化及其與SDN的關系。
2.1 Active Networking
20世紀90年代初到中期,互聯網蓬勃發展,其應用及吸引力遠遠超過了早期的文件傳輸和科學家電子郵件應用程序,更多樣化的應用程序和更廣泛的公眾使用,吸引了渴望測試和部署改進網絡服務的新想法的研究人員。為此,研究人員在小型實驗室環境中設計并測試新的網絡協議,并在大型網絡上模擬行為,如果動機和資金持續存在,他們會將想法提交給互聯網工程特別工作組(IETF)以使這些協議標準化。
標準化過程緩慢,最終使許多研究人員感到沮喪。于是,一些網絡研究人員采用了一種開放網絡控制的替代方法,大致是基于對獨立PC重新編程相對容易的類比。具體地說,傳統網絡在任何意義上都不是“可編程”的,主動網絡代表了一種激進的網絡控制方法,通過設想一個編程接口(或網絡api)來公開各個網絡節點上的資源(例如,處理、存儲和數據包隊列),并支持構建應用于子集的定制功能。這種方法遭到許多互聯網社區人士的憎恨,他們主張網絡核心的簡單性對互聯網的成功至關重要。
主動網絡研究計劃探索了傳統互聯網協議棧通過IP或異步傳輸模式(ATM)提供服務的根本替代方案,ATM是20世紀90年代早期的另一種主要網絡方式。leanslate網絡架構方法隨后在美國的GENI(網絡創新的全球環境)和NSF Find(未來互聯網設計)和歐洲的EU Fire(未來互聯網研究和實驗倡議)等項目中進行。
歐洲聯盟——活躍的網絡社區追求兩種編程模式:
- 膠囊模型,其中在節點處執行的代碼在數據包中的帶內攜帶
- 可編程路由器、交換機模型,其中在節點處執行的代碼由帶外機制建立。
膠囊模型與主動網絡聯系最為密切。膠囊設想在網絡上安裝新的數據平面功能,在數據包中攜帶代碼(如先前在分組無線電上的工作[88]),并使用緩存來提高代碼分發的效率,而可編程路由器將可擴展性的決定直接交給網絡運營商。
Technology push and use pull
鼓勵主動聯網的“技術推動”包括:
- 降低計算成本,使其能夠在網絡中投入更多的處理
- 在諸如Java的編程語言方面提供了平臺可移植性和一些代碼執行安全性
- 虛擬機技術保護主機,一種保護主機(在本例中是活動節點)和其他進程不受程序錯誤影響的機器技術
一些活躍的網絡研究項目也利用了快速代碼編譯和形式化方法的進步,主動網絡生態系統中的一個重要催化劑是資助機構的利益,特別是美國國防高級研究計劃署(DARPA)從20世紀90年代中期到21世紀初創建和支持的主動網絡計劃。雖然并不是所有主動網絡的研究工作都是由DARPA資助的,但該資助計劃支持了一系列的項目,也許更重要的是,鼓勵了術語和主動網絡組件集的融合,從而使項目能夠為GRE的整個計劃做出貢獻,這個整體的貢獻要大于各個部分的總和。
主動網絡計劃強調演示和項目的互操作性,并依賴著開發工作的水平。在沒有近期使用案例的情況下,一個融資機構的大膽一致的推動也可能導致一定程度的對積極網絡的懷疑,這種網絡通常是健康的,但可能接近敵對狀態,并且可能掩蓋了這項工作以及后來為提供網絡可編程性所做的努力。當時文獻中描述的用于主動網絡的“使用拉”與今天用于激勵SDN的示例非常相似。當前的問題包括網絡服務提供商對開發和部署新的網絡服務(所謂的網絡僵化)所需的時間表感到失望,第三方對增值的興趣,動態滿足特定應用程序或網絡的需求的精細控制。
對于網絡環境,研究人員希望有一個能支持大規模實驗的平臺。此外,許多早期關于主動網絡的論文都提到了包括防火墻、代理和轉碼器在內的中間盒的激增,每一個中間盒都必須單獨部署,并且需要一個不同的(通常是特定于供應商的)編程模型。主動網絡提供了對這些中間盒的統一控制,最終可以取代管理和控制這些中間盒的臨時、一次性方法[74]。
有趣的是,早期的文獻預示了當前網絡功能虛擬化(NFV)的趨勢,這也旨在為具有復雜的中間盒功能的網絡提供一個統一的控制框架。
Intellectual contributions
主動網絡提供了與SDN相關的智慧貢獻。我們特別注意到三個方面:
- 網絡中的可編程功能,以降低創新的障礙。
主動網絡的研究開創了可編程網絡的概念,以此來降低網絡創新的障礙。SDN最初的動機通常是認為在生產網絡中很難創新,并要求增加可編程性,SDN的早期愿景大多集中在控制平面可編程性上,而主動網絡則更多地集中在數據平面可編程性上。也就是說,數據平面的可編程性在控制平面的努力下繼續發展,數據平面的可編程性在新興的NFV計劃中再次走到了前列。
最近有關SDN的工作正在探索SDN協議(如OpenFlow)的演進,以支持更廣泛的數據平面功能。此外,在OpenFlow和其他SDN技術(如FlowVisor)的設計文檔中,將實驗流量與源于主動網絡的正常流量隔離的概念也出現在了前面和中心位置。
- 網絡虛擬化,以及基于數據包頭對軟件程序進行多路分解的能力。
這需要支持多個編程模型的實驗,這導致了對網絡虛擬化的研究。主動網絡產生了一個架構框架,描述了這樣一個平臺的組件,該平臺的關鍵組件是一個管理共享資源的共享節點操作系統(Nodeos),一組執行環境(EES),每個環境定義一個用于數據包操作的虛擬機,以及一組在給定EE中工作以提供端到端服務,將數據包定向到依賴于頭字段的特定EE上的快速模式匹配,和對適當EE的解復用。有趣的是,該模型是在Planetlab體系結構中進行的,根據該體系結構,在虛擬執行環境中運行不同的實驗,數據包在其數據包頭上被解復用到適當的執行環境中。將數據包分解到不同的虛擬執行環境中也被應用于虛擬化可編程硬件數據平面的設計[5]。
- 為MiddleBox編排提供統一架構的構想。
盡管在主動網絡研究計劃中,這一設想從未完全實現,但早期的設計文件指出,需要將廣泛的中間盒功能與通用、安全的編程框架統一起來。盡管這一設想可能沒有直接影響到最近關于NFV的工作,但隨著我們進一步應用基于SDN的控制和協調中間盒,從主動網絡研究中得到的各種教訓可能會被證明是有用的。
Myths and misconceptions
主動網絡包括這樣一個概念,即網絡API將可用于發起和接收數據包的最終用戶,盡管大多數研究界人士認識到,最終用戶網絡程序員將是罕見的。認為數據包必然攜帶最終用戶編寫的Java代碼的錯誤觀念使主動網絡研究與實際網絡相去甚遠,并且本質上不安全,主動網絡在當時也因為無法提供實際的性能和安全性而受到批評。雖然性能并不是主動網絡研究界(專注于架構、編程模型和平臺)的首要考慮因素,但也有一些旨在構建高性能主動路由器的努力。類似地,雖然安全性在許多早期項目中沒有得到充分的解決,但是安全主動網絡環境體系結構項目是一個顯著的例外。
In search of pragmatism
盡管主動網絡提出了可編程網絡的設想,但這些技術并未得到廣泛應用,許多因素推動了技術的采用(或缺乏)??赡苤鲃泳W絡面臨的最大障礙之一是不能立即解決問題或有一個清晰的部署路徑。主動網絡研究工作的一個重要教訓是,數據平面的“殺手級”應用很難想象,社區提供了各種可以從網絡處理中受益的應用,包括信息融合、緩存和內容分發、網絡管理和特定于應用的服務質量。不幸的是,盡管性能優勢可以在實驗室中量化,但這些應用領域中沒有一個能夠充分滿足緊迫需求的解決方案。接下來的工作我們將在下一小節中描述,從他們所解決的問題的范圍來看,是比較溫和的——只關注路由和配置管理。除了范圍更窄之外,下一階段的研究還開發了一些技術,對控制平面和數據平面的功能進行了明確的區分和分離。這種分離最終使人們有可能專注于控制平面的創新,這不僅需要進行重大改革,而且(因為它通常在軟件中實現)比數據平面的創新障礙更低。
2.2 Separating Control and Data Planes
在21世紀初,流量不斷增加,更加強調網絡的可靠性、可預測性,性能導致網絡運營商尋求更好的方法來實現某些網絡管理功能,例如控制用于傳輸流量的路徑(通常稱為流量工程)。使用傳統路由協議執行流量工程的方法充其量是原始的,運營商對這些方法的失望得到了一個小型、位置優越的研究人員社區的認可,他們要么為骨干網絡運營商工作,要么定期與骨干網絡運營商互動。這些研究人員探索了實用的、短期的方法,這些方法要么是標準驅動的,要么是使用現有協議立即部署的。具體來說,傳統路由器和交換機體現了控制和數據平面之間的緊密集成,這種耦合使得各種網絡管理任務,如調試配置問題和預測或控制路由行為,變得非常具有挑戰性。為了應對這些挑戰,各種分離數據和控制平面的努力開始出現。
Technology push and use pull
隨著互聯網在20世紀90年代的蓬勃發展,骨干網的鏈路速度迅速增長,領先的設備供應商直接在硬件上實現包轉發邏輯,獨立于控制平面軟件。此外,互聯網服務提供商(ISP)正在努力管理其網絡不斷擴大的規模和范圍,以及對更高可靠性和新服務(如虛擬專用網絡)的需求。與這兩種趨勢并行的是,商品計算平臺的快速發展意味著服務器的內存和處理資源通常比一年或兩年前部署的路由器的控制平面處理器要多得多。
這些趨勢催生了兩項創新:
- 控制和數據平面之間的開放接口,例如由因特網工程工作隊(IETF)標準化的Forces(轉發和控制元件分離)接口和Linux中Kernellevel包轉發功能的Netlink接口;
- 以及網絡的邏輯集中控制,如IETF的路由控制平臺(RCP)和軟路由器架構以及路徑計算單元(PCE)協議所示。
這些創新是由行業對ISP網絡中路由管理技術的需求推動的,一些早期關于分離數據和控制平面的建議也來自學術界,包括ATM網絡和主動網絡。
與早期關于主動網絡的研究相比,這些項目側重于網絡管理中的緊迫問題,重點是:
- 網絡管理員(而不是最終用戶和研究人員)的創新
- 控制平面(而不是數據平面)的可編程性
- 網絡范圍的可見性和控制(而不是設備級別配置)。
網絡管理應用包括:根據當前的流量負載選擇更好的網絡路徑,在計劃的路由更改期間最小化瞬時中斷,使客戶網絡對流量有更大的控制,以及重定向或丟棄可疑的攻擊流量。
一些控制應用程序使用傳統路由器在運營的ISP網絡中運行,包括部署的智能路由服務控制點(IRSCP),以在AT&T的第1層骨干網絡中為虛擬專用網絡客戶提供增值服務。雖然這段時間的大部分工作都集中在管理單個ISP內的路由,但一些工作也提出了實現跨多個管理域的靈活路由控制的方法。
將控制功能從網絡設備轉移到單獨的服務器上是有意義的,因為網絡管理,顧名思義,是一種網絡范圍的活動。邏輯上集中的路由控制器是通過開源路由軟件的出現而實現的,它降低了創建原型實現的障礙。服務器技術的進步意味著單個商品服務器可以存儲所有的路由狀態,并計算大型ISP網絡的所有路由決策,這反過來又啟用了簡單的主備份復制策略,其中備份服務器存儲與主服務器相同的狀態并執行相同的計算,以確??刂破鞯目煽啃浴?/span>
Intellectual contributions
最初分離控制平面和數據平面的嘗試是相對實用的,但它們代表了一種與因特網傳統上緊密耦合的路徑計算和包轉發的重大概念性背離。將網絡的控制平面和數據平面分開的努力產生了幾個概念,這些概念在隨后的SDN設計中得到了推廣。
- 使用數據平面的開放接口進行邏輯集中控制
IETF的Forces工作組提出了一個標準的、開放的數據平面接口,以實現控制平面軟件的創新。軟路由器使用ForCES API允許單獨的控制器在數據平面中安裝轉發表條目,從而能夠從路由器中完全刪除控制功能。不幸的是,主要路由器供應商沒有采用ForCES,這妨礙了增量部署。RCP沒有等待新的、開放的API出現,而是使用現有的標準控制平面協議(邊界網關協議)在傳統路由器中安裝轉發表條目,從而實現即時部署。OpenFlow還面臨著類似的向后兼容性挑戰和限制——特別是,最初的OpenFlow規范依賴于與商品交換機硬件功能的向后兼容性。
- 分布式狀態管理
邏輯集中式路由控制器面臨著涉及分布式狀態管理的挑戰——必須復制邏輯上集中的控制器以應對控制器故障,但復制可能會導致副本之間的狀態不一致。研究人員探索了可能的故障場景和一致性要求,至少在路由控制的情況下,控制器副本不需要一般的狀態管理協議,因為每個副本最終都會計算相同的路由(在學習相同的拓撲和路由信息之后)和路由協議收斂期間的暫時中斷,即使使用傳統協議也可以接受。為了更好的可伸縮性,每個控制器實例可以負責拓撲的單獨部分,然后這些控制器實例可以相互交換路由信息,以確保一致的決策。幾年后,在分布式SDN控制器的背景下,構建分布式控制器的挑戰將再次出現——分布式SDN控制器面臨著支持任意控制器應用的更普遍的問題,需要更復雜的分布式狀態管理解決方案。
Myths and misconceptions
當這些新的架構被提出時,批評者以健康的懷疑態度看待它們,經常激烈地爭論邏輯上集中的路由控制將違反“命運共享”,因為控制器可能獨立于負責轉發流量的設備而失敗。許多網絡運營商和研究人員認為,將控制平面和數據平面分離是一個固有的壞主意,因為最初沒有明確說明如果控制器出現故障,這些網絡將如何繼續正確運行。懷疑論者還擔心,邏輯上的集中控制從概念上簡單的路由器模型轉移到了實現分布式共識的路由器上,它們最終都對網絡狀態有一個共同的看法(例如,通過洪泛)。在邏輯集中控制中,每個路由器對路由選擇過程的結果只有一個純本地視圖,事實上當這些項目扎根時,即使是傳統的分布式路由解決方案也已經違反了這些原則。將包轉發邏輯移入硬件意味著路由器的控制平面軟件可能獨立于數據平面而失敗,類似地,分布式路由協議采用可伸縮技術,如OSPF區域和BGP路由反射器,其中網絡中一個區域的路由器對其他區域的路由信息的可見性有限。
正如我們在下一節中所討論的,控制平面和數據平面的分離有些自相矛盾,使得研究人員能夠更清楚地思考分布式狀態管理:控制平面和數據平面的分離促進了狀態管理層的出現網絡狀態的一致視圖。
In search of generality
主流設備供應商幾乎沒有動力采用像ForCES這樣的標準數據平面API,因為開放API可以使新的進入者進入市場。因此,需要依賴現有的路由協議來控制數據平面,這對可編程控制器能夠支持的應用范圍造成了很大的限制。傳統的IP路由協議計算目標IP地址塊的路由,而不是基于更大范圍的頭字段(例如,MAC和IP地址、TCP和UDP端口號)提供更大范圍的功能(例如,丟棄、泛洪或修改數據包),就像OpenFlow。最后,雖然行業原型和標準化工作取得了一些進展,但普遍采用仍然是難以捉摸的,為了拓寬控制和數據平面分離的視野,研究人員開始探索邏輯集中控制的全新體系結構。
4D項目主張四個主要層:
- 數據平面(用于基于可配置規則處理分組)
- 發現平面(用于收集拓撲和流量測量)
- 傳播平面(用于安裝分組處理規則)
- 決策平面(由邏輯上集中的控制器組成,這些控制器將網絡級目標轉換為分組處理狀態)
幾個小組開始設計和建造系統,將這種高層次的方法應用于新的應用領域,超出了路線控制。具體而言,Ethane項目及其直接前身Sane為企業網絡中的訪問控制創建了一個邏輯上集中的、流級的解決方案。Ethane根據高級安全策略將交換機減少到由控制器填充的流表,Ethane項目及其在斯坦福計算機科學系的運行部署為創建OpenFlow奠定了基礎。特別是,Ethane中的簡單交換機設計成為了最初OpenFlow API的基礎。
2.3 OpenFlow and Network OSes
2000年代中期,受實驗基礎設施成功的鼓勵,研究人員和資助機構對大規模網絡實驗的想法產生了興趣,政府為大型“儀器”單獨提供資金,這些大型“儀器”以前是留給其他學科建造昂貴的共享基礎設施,如對撞機和望遠鏡。這種熱情的一個結果是創建了全球網絡創新環境(GENI),由NSF資助的GENI項目辦公室和歐盟消防計劃。
也有批評者指出,對基礎設施的這一大筆投資并沒有與使用它的精心構思的想法相匹配。在此過程中,斯坦福大學的一組研究人員創建了一個全新的項目,并將重點放在更本地化、更易處理的規模上——校園網。在OpenFlow出現之前,SDN的基本思想面臨著完全可編程網絡和實用主義之間的緊張關系,后者將使RealWorld部署成為可能。
OpenFlow在這兩個目標之間取得了平衡,它啟用了比早期路由控制器更多的功能,并通過在商品交換機中越來越多地使用商用硅芯片組來構建現有的交換機硬件。盡管依賴現有的交換機硬件在一定程度上限制了靈活性,但OpenFlow幾乎可以立即部署,這使得SDN的移動既實用又大膽。
OpenFlow API的創建之后,緊接著是NOX這樣的控制器平臺的設計,它支持創建許多新的控制應用程序。OpenFlow交換機有一個數據包處理規則表,其中每個規則都有一個模式(與數據包頭中的位匹配)、一個操作列表(例如,丟棄、溢出、轉發特定接口、修改頭字段或將數據包發送到控制器)、一組計數器(用于跟蹤字節和數據包的數量)和優先級(消除具有重疊模式的規則之間的歧義)。在接收到數據包時,OpenFlow交換機識別最高優先級匹配規則,執行相關操作,并遞增計數器。
Technology push and use pull
Intellectual contributions
Myths and misconceptions
In search of control programs and use cases
3. Network Virtualization:
在本節中,我們將討論網絡虛擬化,這是SDN早期的一個突出的“用例”。
網絡虛擬化表示從底層物理設備分離的網絡的抽象,網絡虛擬化允許多個虛擬網絡在共享基礎設施上運行,并且每個虛擬網絡可以具有比底層物理網絡更簡單(更抽象)的拓撲。例如,虛擬局域網(VLAN)提供了一個跨越多個物理子網的單一LAN的假象,多個VLAN可以在相同的交換機和路由器集合上運行。
盡管網絡虛擬化在概念上獨立于SDN,但近年來這兩種技術之間的關系變得更加密切。在討論網絡虛擬化之前,我們有三個注意事項:
首先,一個完整的網絡虛擬化歷史將需要一個單獨的調查,我們專注于網絡虛擬化的發展,這些發展與可編程網絡的創新直接相關。
第二,雖然網絡虛擬化作為sdn的一個用例已經獲得了顯著的地位,但這個概念早于現代SDN,事實上已經與可編程網絡并行發展。這兩種技術實際上是緊密耦合的——可編程網絡通常被認為是共享基礎設施的機制(在數據中心的多個租戶之間,在校園的管理組之間,或者在實驗設施中進行實驗),并支持不同于物理網絡的邏輯網絡拓撲,這兩者都是網絡虛擬化的核心原則。
最后,“網絡虛擬化”的精確定義是難以捉摸的,對于我們討論的一些機制(例如切片)是否代表網絡虛擬化的形式,專家們自然不同意。在本文中,我們定義了網絡虛擬化的范圍,以包括任何有助于在底層物理網絡基礎設施上托管虛擬網絡的技術。
Network Virtualization before SDN
多年來,網絡設備一直支持以VLAN和虛擬專用網的形式創建虛擬網絡。但是,只有網絡管理員才能創建這些虛擬網絡,并且這些虛擬網絡僅限于運行現有的網絡協議,因此逐步部署新技術被證明是困難的。相反,研究人員和實踐者求助于運行覆蓋網絡,其中一小組升級的節點使用隧道在遺留網絡的基礎上形成自己的拓撲。在覆蓋網絡中,升級后的節點運行自己的控制平面協議,并通過封裝數據包、通過傳統網絡發送數據包和在另一端解封裝數據流(和控制平面消息)來相互引導數據流。Mbone(用于多播)、6bone(用于ipv6)和X-bone是早期的突出例子。
這些早期的覆蓋網絡由運行特殊協議的專用節點組成,希望能刺激對網絡基礎設施的改進。覆蓋網絡的概念很快擴展到包括任何安裝和運行特殊應用程序的終端主機,這是受到早期對等文件共享應用程序(如Napster和Gnutella)成功推動的。除了對點對點協議的重要研究外,網絡研究界重新開始了使用覆蓋網絡作為改善網絡基礎設施的方法的研究,例如彈性覆蓋網絡的研究,在該網絡中形成了少量的通信主機集合對網絡故障和性能問題作出快速反應的覆蓋層。
與主動網絡相比,覆蓋網絡不需要網絡設備的任何特殊支持,也不需要互聯網服務提供商的合作,因此部署起來容易得多。
為了降低實驗覆蓋網絡的障礙,研究人員開始構建虛擬實驗基礎設施,如Planetlab,允許多個研究人員在共享和分布式主機集合上運行自己的覆蓋網絡。有趣的是,Planetlab本身是一種“可編程路由器/交換機”的主動網絡形式,但它使用的是一組服務器而不是網絡節點,并為程序員提供了一個傳統的操作系統(即Linux)。這些設計決策刺激了分布式系統研究社區的采用,導致在這個社區中原型系統實驗的角色顯著增加,基于共享實驗平臺在促進實驗系統研究方面的成功,研究人員開始提倡創建共享實驗平臺,推動對虛擬拓撲的支持。該虛擬拓撲可以在底層網絡中運行自定義協議,以使實際的實驗,以運行流量并排運行。
在這個模型中,網絡設備本身“托管”了虛擬拓撲,回到了早期的Tempest體系結構,其中多個虛擬ATM網絡可以在同一組物理交換機上共存。Tempest體系結構甚至允許交換機轉發行為使用軟件控制器定義,為控制和數據平面分離工作做鋪墊。
GENI倡議將虛擬化和可編程網絡基礎設施的概念擴展到更大的范圍,為網絡和分布式系統的研究建立了一個國家實驗基礎設施。除了實驗性的基礎設施,一些研究人員認為網絡虛擬化可以成為未來互聯網的基礎,使多個網絡架構同時共存(每個架構都針對不同的應用或需求進行了優化,或者由不同的業務實體運營),并隨著時間的推移而發展以滿足不斷變化的需求。
Relationship of Network Virtualization to SDN
網絡虛擬化(從邏輯網絡的角度對物理網絡進行抽象)顯然不需要SDN。同樣,SDN(邏輯集中控制平面與底層數據平面的分離)并不意味著網絡虛擬化。然而,有趣的是,網絡虛擬化和SDN之間的共生關系已經出現,這已經開始催化幾個新的研究領域。
SDN和網絡虛擬化主要有三種關系:
- SDN作為網絡虛擬化的一種支持技術
云計算使網絡虛擬化變得突出,因為云提供商需要一種方式,允許多個客戶(或“租戶”)共享同一網絡基礎設施。Nicira的網絡虛擬化平臺(Network Virtualization Platform,NVP)提供了這種抽象,而不需要底層網絡硬件的任何支持,解決方案是使用覆蓋網絡為每個租戶提供連接其所有虛擬機的單個交換機的抽象。然而,與先前在覆蓋網絡上的工作相比,每個覆蓋節點實際上是物理網絡的一個擴展——一個軟件交換機(如Open vSwitch),它封裝了發送到其他服務器上運行的虛擬機的流量。邏輯集中式控制器在這些虛擬交換機中安裝規則,以控制如何封裝數據包,并在虛擬機移動到新位置時更新這些規則。
- ?網絡虛擬化用于評估和測試SDN
將SDN控制應用程序與底層數據平面分離的能力,使得在將SDN控制應用程序部署到操作網絡之前,可以在虛擬環境中測試和評估SDN控制應用程序。Mininet使用基于進程的虛擬化在同一物理(或虛擬)機上運行多個虛擬OpenFlow交換機、終端主機和SDN控制器,每個控制器都作為單個進程。使用基于進程的虛擬化允許Mininet模擬一個網絡,在一臺機器上有數百個主機和交換機。在這樣的環境中,研究人員或網絡運營商可以開發控制邏輯,并在生產數據平面的全面仿真上輕松地對其進行測試。一旦對控制平面進行了評估、測試和調試,就可以將其部署到實際的生產網絡上。
- 虛擬化(切片)SDN
在傳統網絡中,虛擬化路由器或交換機是很復雜的,因為每個虛擬組件都需要運行自己的Controlplane軟件實例,相比之下虛擬化“啞”SDN交換機要簡單得多。FlowVisor系統使校園能夠支持在承載生產流量的相同物理設備上進行聯網研究的試驗臺,其主要思想是將業務流空間劃分為“片”(Planetlab的早期工作中引入的概念),其中每個片有一個網絡資源共享,由不同的SDN控制器管理。FlowVisor作為Hypervisor運行,向每個SDN控制器和底層交換機傳遞OpenFlow。
最近的工作建議對家庭網絡進行分層控制,以允許不同的第三方服務提供商(如智能電網運營商)在網絡上部署服務,而無需安裝自己的基礎設施,最近的工作也提出了用自己的邏輯拓撲和地址空間來表示軟件定義網絡的每個“片段”的方法。
Myths and misconceptions
人們經常提到所謂的“SDN的好處”——比如分攤物理資源的成本,或者在實際上來自網絡虛擬化的多租戶環境中動態地重新配置網絡。盡管SDN有助于網絡虛擬化,因此可能使其中一些功能更易于實現,但必須認識到SDN提供的功能(即數據和控制平面的分離,分布式網絡狀態的抽象)不能直接提供這些好處。
Exploring a broader range of use cases
盡管SDN在早期已經取得了一些實際的成功,并且確實提供了支持網絡虛擬化的特定用例所急需的技術,但是需要做更多的工作來改進現有的基礎設施,并探索SDN解決更廣泛的用例集問題的潛力。盡管早期的SDN部署主要集中在大學校園、數據中心和私人骨干網,但最近的工作探索了SDN的應用和擴展,使其擴展到更廣泛的網絡設置,包括家庭網絡、企業網絡、Internet交換點,蜂窩核心網絡,蜂窩和WiFi無線接入網絡,以及終端主機應用和網絡的聯合管理。每一個這樣的環境都會帶來許多新的機遇和挑戰,社區將在未來幾年中探索這些機遇和挑戰。
4. Conclusion:
本文介紹了可編程網絡的發展歷史——可編程網絡的概念最初形成為主動網絡,支持許多與SDN相同的愿景,但缺乏明確的用例和增量部署路徑。在主動網絡研究項目時代之后,鐘擺從視覺轉向實用主義,以數據和控制平面分離的形式,使網絡更易于管理,這項工作主要集中在路由網絡流量的更好的方法上,這比以前關于主動網絡的工作要細得多。最終,關于OpenFlow和網絡操作系統的工作在愿景和實用主義之間取得了正確的平衡,這項工作提倡對廣泛的應用進行網絡范圍的控制,但僅依賴于交換芯片組的現有能力。現有交換機硬件的向后兼容性吸引了許多設備供應商,他們要求在不斷增長的數據中心網絡市場上展開競爭,當SDN在網絡虛擬化中發現了一個引人注目的用例時,廣泛、清晰的愿景與廣泛采用的實用策略之間的平衡得到了重視。
隨著可持續發展網絡的不斷發展,我們相信歷史有重要的教訓要講。
首先,SDN技術將在“使用拉動”的基礎上生存或消亡。盡管SDN通常被認為是所有網絡問題的解決方案,但值得記住的是,SDN只是一個更容易解決網絡管理問題的工具,SDN僅僅是把開發新應用程序和解決長期問題的能力交給我們,在這方面,我們的工作才剛剛開始。如果過去有任何跡象表明,這些新技術的發展將需要在多個時間尺度上進行創新,從長期大膽的愿景(如積極的網絡)到近期創造性的問題解決(如專注于分離控制和數據平面的工作)。
第二,遠見和實用主義之間的平衡仍然脆弱。SDN的大膽設想提倡各種各樣的控制應用程序,然而OpenFlow對數據平面的控制僅限于包頭字段上的原始匹配操作。我們應該記住,OpenFlow的最初設計是由快速采用的愿望驅動的,而不是最初的原則。支持廣泛的網絡服務需要更復雜的方法來分析和操作流量(例如,深度數據包檢查,數據包的壓縮、加密和轉碼),使用商品服務器(例如,x86機器)或可編程硬件(例如,FPGAS,網絡處理器和/或GPU)。有趣的是,對更復雜的數據平面功能(如網絡功能虛擬化)的重新興趣,讓哈肯回到了先前關于主動網絡的工作中,使我們的故事更為全面。保持SDN的大膽設想需要我們繼續“開箱即用”地思考網絡編程的最佳方法,而不受當前技術的限制。與其簡單地按照當前的OpenFlow協議設計SDN應用程序,我們應該考慮我們希望對數據平面進行什么樣的控制,并用實際的部署策略來平衡這一愿景。
?
轉載于:https://www.cnblogs.com/chelinger/p/11545604.html
總結
以上是生活随笔為你收集整理的The Road to SDN: An Intellectual History of Programmable Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: The Design and Imple
- 下一篇: Are We Ready for SDN