近十年來,有兩個重要技術對信息技術產生了重大影響:虛擬化和云計算。這些技術使網絡工程師和應用架構師可以非常靈活地處理數據中心空間,從而幫助他們最大程度利用硬件的價值和實現較高的可用性。
然而,應用程序所依賴的底層數據網絡則幾乎沒有發展。事實上,雖然虛擬化和云計算已經改變了大多數IT從業人員對于計算領域的看法,但是網絡領域至今也沒 有發生太多變化。網絡技術的大多數變化都表現在帶寬升級上,而不涉及網絡的基礎實現方法上。許多網絡專業人員現在仍然可以參考5年甚至10年前編寫的網絡 設計書籍,網絡在一般意義上并沒有發生太多的變化。亞馬遜Web Services杰出工程師James Hamilton在2010年指出:“數據中心網絡在我的掌控之中。”
事實上,網絡領域缺少創新已經束縛了應用交付設計師。雖然響應有一些晚,但是在最近一段時間里,網絡供應商一直在致力于提高網絡的靈活性和降低網絡使用難 度,以滿足服務提供商和企業的需求。在過去幾年里,網絡領域的創新包括中央控制、可編程性、網絡編排和虛擬化。這些創新在大范疇里屬于軟件定義網絡 (SDN),它們的目標是解決企業面對的一些特殊問題,因為他們的虛擬基礎架構和云服務已經將邊界擴展到他們現有網絡所能支持的范圍之外。
SDN基礎:中央控制
SDN旨在通過運行在中央控制器上的軟件來定制和控制網絡。現代網絡交換機和路由器可以在本地編程控制他們的路由轉發表,這意味著網絡設備可以在內部自行決定如何轉發流量。由分布式控制面板協議發出的流量轉發決策包括生成樹、OSPF和BGP。但是,這些傳統網絡協議的靈活性非常有限。為了讓它們能夠正常 工作,所有參與轉發域的網絡設備都必須遵循協議標準所定義的相同規則。這樣既束縛了創新的空間,也不利于一些特殊業務需求的實現。
SDN將控制面板(網絡設備轉發流量的方式)從數據或轉發面板(基于控制面板策略轉發流量的網絡設備)分離。通過SDN,分離的控制面板就轉移到一個中央 控制器上,它負責監控整個網絡,其中包括主機在什么位置連接網絡,以及網絡將采用什么拓撲將所有主機連接在一起。有了這個無所不知的中央控制器,網絡工程 師只需要修改運行在控制器的軟件,就可以實現獨特和靈活的轉發策略。
這個中央控制器是SDN的核心概念。控制器的2個重要術語是:北向和南向。而我們可以將控制器視為中間件。應用程序將告訴控制器如何編程實現北向通信,而 南向通信則負責編程控制網絡設備。控制器充當一個仲裁者角色,它將底層物理網絡與準備編程控制底層網絡的應用程序分離。
中央控制器編程控制網絡轉發表的常見例子有:
創建一個實驗網絡,它使用生產網絡所在的物理基礎架構,但是邏輯上又與它完全隔離。
應用一些流量策略,它們能夠動態地學習應用策略的流量流,從而保持一個既定的服務質量(QoS)。
“為錢轉發”,即所有轉發路徑都可以根據對公司財務的影響而調整變化。
智能網絡安全性,例如,將一些特定的流分流到入侵檢測系統進行深度數據包檢測,而其他流則基于運營策略自由傳輸。
整個網絡層面的流量鏡像(例如,生成樹),使網絡中任意點的流量都可以復制到另一個網絡位置,以便執行日志記錄、報表或分析操作。這類似于“工具網絡”或“可見性結構”的概念。