OpenFlow你該懂的小知識

2021-10-25 02:10:07 字數 3055 閱讀 9402

總結作為sdn(software defined network 軟體定義 網路)的主要實現方式,openflow發展史就是sdn的發展史,對整個sdn的發展起著功不可沒的作用

openflow起源於史丹福大學的clean slate專案組,clean slate專案的最終目的非常大膽,是要「重新發明網際網路(reinvent the internet)」,改變被認為已經略顯不合時宜且難以進化發展的現有網路基礎架構。在openflow發展的初期,為了達到更好利用現有硬體的目的,需要網路裝置中內建一種稀有且昂貴的特殊記憶體tcam(ternary content-addressable memory)來儲存流表。

在openflow發展的初期,為了達到更好利用現有硬體的目的,需要網路裝置中內建一種稀有且昂貴的特殊記憶體tcam(ternary content-addressable memory)來儲存流表。設計openflow的初衷是無須更改已搭載tcam的網路裝置硬體,僅通過軟體公升級即可實現網路行為變更,能夠一邊考慮應用現有架構,一邊構建虛擬網路,也是openflow廣受業界關注的原因所在。

設計openflow的初衷是無須更改已搭載tcam的網路裝置硬體,僅通過軟體公升級即可實現網路行為變更,能夠一邊考慮應用現有架構,一邊構建虛擬網路,也是openflow廣受業界關注的原因所在。

openflow協議的思路是網路裝置維護乙個flowtable,並且只通過flowtable對報文進行處理,flowtable本身的生成、維護和下發完全由外接的控制器實現。此外,openflow交換機把傳統網路中完全由交換機或路由器控制的報文**,轉換為由交換機和控制器共同完成,從而實現報文**與路由控制的分離。控制器則通過事先規定好的介面操作openflow交換機中的流表,達到資料**的目的。

在openflow交換機中,包含了安全通道、多級流表和組表。通過安全通道,openflow交換機可以和控制器建立基於openflow協議的連線;而流表則用來匹配openflow交換機收到的報文;組表用來定義流表需要執行的動作。

openflow通過使用者定義的或缺省的規則匹配和處理網路包。一條openflow的規則由匹配域、優先順序、處理指令和統計資料等字段組成。

在一條規則中,可以根據網路包在l2、l3或者l4等網路報文頭的任意字段進行匹配,比如乙太網幀的源mac位址、ip包的協議型別和ip位址或者tcp/udp的埠號等。目前open-flow的規範中還規定了switch裝置廠商可以有選擇性地支援萬用字元進行匹配。openflow未來還計畫支援對整個資料報的任意字段進行匹配。

所有openflow的規則都被組織在不同的flowtable中,而在同乙個flowtable中,按規則的優先順序進行先後匹配。乙個openflow switch可以包含乙個或者多個flowtable,從0開始依次編號排列。

openflow規範中定義了流水線式的處理流程。當網路資料報進入switch後,必須從table 0開始依次匹配,table可以按從小到大的次序越級跳轉,但不能從某一table向前跳轉至編號更小的table。當資料報成功匹配一條規則後,將首先更新該規則對應的統計資料(如成功匹配資料報總數目和總位元組數等),然後根據規則中的指令進行相應操作,比如跳轉至後續某一table繼續處理,修改或立即執行該資料報對應的action set等。當資料報已經處於最後乙個table時,其對應的action set中的所有action將被執行,包括**至某一埠、修改資料報的某一欄位、丟棄資料報等。openflow規範對目前所支援的in-structions和actions進行了完整詳細的說明和定義。

openflow協議主要通過對不同型別訊息的處理來實現控制器與交換機之間的路由控制。目前,openflow主要支援三種訊息型別,分別是controller-to-switch、asynchronous(非同步訊息)及symmetric(對稱訊息)

hello、features、echo又分別包含了request與reply訊息,每一對request與reply的transaction id相同,交換機通過id進行識別對應事件埠。圖1-4所示即為在通常的交換機事件發生時,主要經過的幾個互動步驟。

隨著openflow以及sdn的發展和推廣,其研究和應用領域也得到了不斷拓展,比如網路虛擬化、安全和訪問控制、負載均衡、綠色節能,以及與傳統網路裝置互動和整合等。下面重點介紹網路虛擬化和負載均衡。

網路虛擬化的本質是對底層網路的物理拓撲進行抽象,在邏輯上對網路資源進行分片或整合,從而滿足各種應用對於網路的不同需求。為了達到這個目的,flowvisor實現了乙個特殊的openflow controller,可以看作其他不同使用者或應用的con-troller與網路裝置之間的一層**,如xia圖所示。因此,不同使用者或應用可以使用自己的controller來定義不同的網路拓撲,同時flowvisor又可以保證這些controller之間能夠互相隔離且互不影響。

flowvisorflowvisor不僅是乙個典型的openflow應用案例,同時還是乙個很好的研究平台,目前已經有很多基於flowvisor的研究和應用。

傳統的負載均衡方案一般需要在伺服器集群的入口處,通過乙個gateway監測、統計伺服器的工作負載,並據此將使用者請求動態地分配到負載相對較輕的伺服器上。既然網路中的所有網路裝置都可以通過openflow進行集中式的控制和管理,同時伺服器的負載又可以及時地反饋給openflow controller,那麼openflow就非常適合做負載均衡的工作。

基於openflow的負載均衡模型aster*x通過host manager和net manager來分別監測伺服器和網路的工作負載,然後將這些資訊反饋給flowmanager,這樣flowmanager就可以根據這些實時的負載資訊,重新定義網路裝置上的openflow規則,從而將使用者請求(即網路包)按照伺服器的能力進行調整和分發。

小知識 Copyright該如何寫?

結語參考 嘛,雖然知道已經沒有必要寫這玩意兒了,不過習慣 裝b 還是會寫上版權申明,那麼這個東西該怎麼寫呢?最初出版年 the year of first publication 另有說法可以加上最新使用年,如2012 2020。但筆者沒有在維基百科裡找到關於後面這個說法的描述。corp.2002 ...

你確定懂 使用者畫像 ?來點基礎知識

大資料助力企業營銷的核心在於 在 合適的時間 基於對使用者的了解,把你希望推送的東西通過 合適的載體 以 合適的方式 推送給 合適的人 一 什麼是標籤體系 說到客戶標籤,不得不說使用者畫像。使用者畫像,有個類似的概念叫 受眾定向 使用者畫像 既有人口屬性 生活狀態這些基本靜態資訊,又包括使用者 最近...

你該明白的

1 x86小端模式下 int a 0x123456 char p a p 1 的值0x34,因為p指向的是變數a記憶體單元最小位址處 char型指標指向的是乙個位元組的空間所以char型指標 1移動8位,int型指標指向的是4個位元組的空間所以int型指標 1移動32位。2 x86小端模式下 str...