本篇文章給大家分享的是有關如何進行Open vSwitch OvS源代碼分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的廣平網站建設公司,廣平接單;提供做網站、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行廣平網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
云計算是現(xiàn)在IT行業(yè)比較流行的,但真正什么是云計算業(yè)界也沒有個什么統(tǒng)一的定義(很多公司都是根據自己的利益狹隘的定義云計算),更別說什么標準 規(guī)范了。所以現(xiàn)在就有很多人說云計算只不過是個幌子,是個噓頭,沒點實用的,嘴上說說而已,雖然我也不太清楚什么叫做云計算,云計算的定義究竟是什么,但 我根據我公司現(xiàn)在做的云計算產品來說,對于云計算服務還是懂些的。我覺得那并不是什么幌子、噓頭,但如果說這云計算技術還不太成熟,我倒還勉強認可的。若 把云計算比作一個人的話,我個人覺得現(xiàn)在它正是二十歲的樣子,到三十多歲就算是比較成熟了,所以大概就能想象的到云計算現(xiàn)在的境況了。下面就來簡介下實現(xiàn) 云計算的一些技術,我對云計算并沒有什么研究,也沒能達到從全局的角度來分析云計算技術,更別說從一些更高的位置來分析問題,我所能介紹的僅僅是我一個小 程序員在工作中所遇到的一些和云計算有關的技術,日積月累,希望終有一天能成為云計算“磚家”。
云計算是個全世界的話題,所以也有全世界的能人異士來為實現(xiàn)這個云計算而奮斗。我現(xiàn)階段遇到的有關云計算的技術就是Open vSwitch、OpenStack技術和docker技術。那就先從Open vSwitch開始介紹起,我會用一系列blog來分析Open vSwitch的相關數(shù)據結構和工作流程,以及各個重要模塊的分析。所有的介紹都是基于源碼的分析,希望對初學著有點用。
Open vSwitch,根據其名就可以知道這是一個開放的虛擬交換機(open virtual switch);它是實現(xiàn)網絡虛擬化SDN的基礎,它是在開源的Apache2.0許可下的產品級質量的多層虛擬交換標準。設計這個Open vSwitch的目的是為了解決物理交換機存在的一些局限性:Open vSwitch較物理交換機而言有著更低的成本和更高的工作效率;一個虛擬交換機可以有幾十個端口來連接虛擬機,而Open vSwitch本身占用的資源也非常?。豢梢愿鶕约旱倪x擇靈活的配置,可以對數(shù)據包進行接收分析處理;同時還支持標準的管理接口和協(xié)議,如 NetFlow、sFlow、SPAN、RSPAN等。
Open vSwtich模塊介紹
當前最新代碼包主要包括以下模塊和特性:
ovs-vswitchd :主要模塊,實現(xiàn)switch的daemon,包括一個支持流交換的Linux內核模塊;
ovsdb-server :輕量級數(shù)據庫服務器,提供ovs-vswitchd獲取配置信息;
ovs-brcompatd :讓ovs-vswitch替換Linux bridge,包括獲取bridge ioctls的Linux內核模塊;
ovs-dpctl: 用來配置switch內核模塊;
一些Scripts and specs: 輔助OvS安裝在Citrix XenServer上,作為默認switch;
ovs-vsctl :查詢和更新ovs-vswitchd的配置;
ovs-appctl :發(fā)送命令消息,運行相關daemon;
ovsdbmonitor: GUI工具,可以遠程獲取OvS數(shù)據庫和OpenFlow的流表。
ovs-openflowd:一個簡單的OpenFlow交換機;
ovs-controller:一個簡單的OpenFlow控制器;
ovs-ofctl :查詢和控制OpenFlow交換機和控制器;
ovs-pki :OpenFlow交換機創(chuàng)建和管理公鑰框架;
ovs-tcpundump:tcpdump的補丁,解析OpenFlow的消息;
上面是網上提到的一些Open vSwitch的主要模塊。其實Open vSwitch中最主要的還是datapath目錄下的一些文件。有端口模塊vport等,還有關鍵的邏輯處理模塊datapath等,以及flow等流 表模塊,最后的還有action動作響應模塊,通道模塊等等。
Open vSwtich工作流程
一般的數(shù)據包在linux網絡協(xié)議棧中的流向為黑色箭頭流向:從網卡上接受到數(shù)據包后層層往上分析,最后離開內核態(tài),把數(shù)據傳送到用戶態(tài)。當然也有些數(shù)據包只是在內核網絡協(xié)議棧中操作,然后再從某個網卡發(fā)出去。
但當其中有openVswitch時,數(shù)據包的流向就不一樣了。首先是創(chuàng)建一個網橋:ovs-vsctl add-br br0;然后是綁定某個網卡:綁定網卡:ovs-vsctl add-port br0 eth0;這里默認為綁定了eth0網卡。數(shù)據包的流向是從網卡eth0上然后到openVswitch的端口vport上進入openVswitch 中,然后根據key值進行流表的匹配。如果匹配成功,則根據流表中對應的action找到其對應的操作方法,完成相應的動作(這個動作有可能是把一個請求 變成應答,也有可能是直接丟棄,也可以自己設計自己的action);如果匹配不成功,則執(zhí)行默認的動作,有可能是放回內核網絡協(xié)議棧中去處理(在創(chuàng)建網 橋時就會相應的創(chuàng)建一個端口連接內核協(xié)議棧的)。
其大概工作流程就是這樣了,在工作中一般在這幾個地方來修改內核代碼以達到自己的目的:第一個是在datapath.c中的 ovs_dp_process_received_packet(struct vport *p, struct sk_buff *skb)函數(shù)內添加相應的代碼來達到自己的目的,因為對于每個數(shù)據包來說這個函數(shù)都是必經之地;第二個就是自己去設計自己的流表了;第三個和第二個是相 關聯(lián)的,就是根據流表來設計自己的action,完成自己想要的功能。
以上就是如何進行Open vSwitch OvS源代碼分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網站標題:如何進行OpenvSwitchOvS源代碼分析
標題鏈接:http://www.rwnh.cn/article18/igpdgp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站排名、域名注冊、響應式網站、網站內鏈、電子商務、網站導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)