在前面我們介紹了傳統裝置與sdn裝置的設計區別,這裡首先總結這兩種裝置的工作方式:
所有裝置執行相同的協議,通過協議資訊交流生成**表。
這裡就具體的裝置來說:
(1)hub(集線器)
基於物理埠進行**,所採用的策略就是洪氾(flood)。
(2)l2 switch(二層交換機)
基於mac位址進行**,能夠將mac位址與埠進行匹配,採用的策略是mac位址的學習和stp的防環技術。
(3)router(路由器)
基於路由表進行**,採用動態和靜態路由的策略。
傳統的網路裝置都是分布式策略,每個裝置都有自己獨自的策略來進行**資料,即策略的制定者為裝置本身。
軟體定義網路中的裝置之間不執行任何協議,網路裝置的**表由控制器配置生成。sdn交換機只負責網路高速**,儲存的用於**決策的**表資訊來自控制器,sdn交換機需要在遠端控制器的管控下工作,這時與之相關的裝置狀態和控制指令都需要由sdn的南向介面傳達,從而實現集中化統一管理。當前,最知名的南向介面莫過於onf倡導的openflow協議。因此現在用的比較多的就是openflow交換機。
openflow交換機的流表如下:
其實這跟交換機的fib差不多,不過這裡支援的功能更加強,這裡就需要了解openflow協議,在以後會有單獨來總結openflow協議的資料結構、訊息、埠和**機制。
由前面知道sdn網路將控制層面和**層面分離了,但是本質上看sdn交換機與傳統裝置工作原理類似,其工作原理都是在收到資料報時,將資料報中的某些特徵域與裝置自身儲存的一些表項進行比對,當發現匹配時則按照表項的要求進行相應處理。但是與傳統裝置存在差異的是,裝置中的各個表項並非是由裝置自身根據周邊的網路環境在本地自行生成的,而是由遠端控制器統一下發的,因此各種複雜的控制邏輯(例如鏈路發現、位址學習、路由計算等等)都無需在sdn交換機中實現。這樣做的目的可以保證完成高速資料**。
雖然sdn交換機可以忽略控制邏輯的實現,只關注基於流表的資料處理,而資料處理的效能也就成為評價sdn交換機優劣的最關鍵指標,因此,很多高效能**技術被提出,例如基於多張表以流水線方式進行高速處理的技術。另外,考慮到sdn和傳統網路的混合工作問題,支援混合模式的sdn交換機也是當前裝置層技術研發的焦點。同時,隨著虛擬化技術的出現和完善,虛擬化環境將是sdn交換機的乙個重要應用場景,因此sdn交換機可能會有硬體、軟體等多種形態。例如,ovs(open vswitch,開放虛擬交換標準)交換機就是一款基於開源軟體技術實現的能夠整合在伺服器虛擬化hypervisor中的交換機,具備完善的交換機功能,在虛擬化組網中起到了非常重要的作用。
open vswitch(簡稱為 ovs)是執行在虛擬化平台上的虛擬交換機。在虛擬化平台上,ovs 可以為動態變化的端點提供2 層交換功能,很好的控制虛擬網路中的訪問策略、網路隔離、流量監控等等。
目前整個ovs**用c寫的。目前有以下功能:(詳見
在前面總結了
ovs的兩種模式:即standalone和secure。
ovs-vsctl set-fail-mode ovs-switch standalone //將ovs-switch換成bridge的名字
我覺得原理最重要,弄清楚open vswitch的原理以及裡面包含的源**的功能,這是最重要的,相反具體的配置的命令沒必要記憶,因為要配置的時候多查查文件,然後多配置幾次就差不多熟練了,所以具體的配置詳細見自己的文件《openvswitch的使用》、《openvswitch安裝及配置》。 Open vSwitch中的報文跟蹤
open vswitch ovs 是一種可程式設計的軟體交換機,可以在每個報文級別執行操作。本文件介紹如何使用跟蹤工具了解資料報在通過資料平面時發生了哪些處理。ovs vswitchd 8 手冊頁描述了ofproto trace命令,在open vswitch中跟蹤的基本用法。對於能夠在ovn 邏輯...
原 SQL相關路徑查詢指令碼
1.查詢機器名 select servername as 機器名稱 查詢已安裝的sql例項名 select from sys.servers 2.查詢sql安裝路徑 declare installpath varchar 200 exec master.dbo.xp regread hkey loc...
memset,memcpy,memcmp的原型函式
void memset void s,int c,size t count int memcmp const void cs,const void ct,size t count void memcpy void dest,const void src,size t count memset是以位元...