本篇文章給大家分享的是有關(guān)如何進(jìn)行Open vSwitch OvS源代碼分析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的廣平網(wǎng)站建設(shè)公司,廣平接單;提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行廣平網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
云計(jì)算是現(xiàn)在IT行業(yè)比較流行的,但真正什么是云計(jì)算業(yè)界也沒有個(gè)什么統(tǒng)一的定義(很多公司都是根據(jù)自己的利益狹隘的定義云計(jì)算),更別說什么標(biāo)準(zhǔn) 規(guī)范了。所以現(xiàn)在就有很多人說云計(jì)算只不過是個(gè)幌子,是個(gè)噓頭,沒點(diǎn)實(shí)用的,嘴上說說而已,雖然我也不太清楚什么叫做云計(jì)算,云計(jì)算的定義究竟是什么,但 我根據(jù)我公司現(xiàn)在做的云計(jì)算產(chǎn)品來說,對(duì)于云計(jì)算服務(wù)還是懂些的。我覺得那并不是什么幌子、噓頭,但如果說這云計(jì)算技術(shù)還不太成熟,我倒還勉強(qiáng)認(rèn)可的。若 把云計(jì)算比作一個(gè)人的話,我個(gè)人覺得現(xiàn)在它正是二十歲的樣子,到三十多歲就算是比較成熟了,所以大概就能想象的到云計(jì)算現(xiàn)在的境況了。下面就來簡(jiǎn)介下實(shí)現(xiàn) 云計(jì)算的一些技術(shù),我對(duì)云計(jì)算并沒有什么研究,也沒能達(dá)到從全局的角度來分析云計(jì)算技術(shù),更別說從一些更高的位置來分析問題,我所能介紹的僅僅是我一個(gè)小 程序員在工作中所遇到的一些和云計(jì)算有關(guān)的技術(shù),日積月累,希望終有一天能成為云計(jì)算“磚家”。
云計(jì)算是個(gè)全世界的話題,所以也有全世界的能人異士來為實(shí)現(xiàn)這個(gè)云計(jì)算而奮斗。我現(xiàn)階段遇到的有關(guān)云計(jì)算的技術(shù)就是Open vSwitch、OpenStack技術(shù)和docker技術(shù)。那就先從Open vSwitch開始介紹起,我會(huì)用一系列blog來分析Open vSwitch的相關(guān)數(shù)據(jù)結(jié)構(gòu)和工作流程,以及各個(gè)重要模塊的分析。所有的介紹都是基于源碼的分析,希望對(duì)初學(xué)著有點(diǎn)用。
Open vSwitch,根據(jù)其名就可以知道這是一個(gè)開放的虛擬交換機(jī)(open virtual switch);它是實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化SDN的基礎(chǔ),它是在開源的Apache2.0許可下的產(chǎn)品級(jí)質(zhì)量的多層虛擬交換標(biāo)準(zhǔn)。設(shè)計(jì)這個(gè)Open vSwitch的目的是為了解決物理交換機(jī)存在的一些局限性:Open vSwitch較物理交換機(jī)而言有著更低的成本和更高的工作效率;一個(gè)虛擬交換機(jī)可以有幾十個(gè)端口來連接虛擬機(jī),而Open vSwitch本身占用的資源也非常小;可以根據(jù)自己的選擇靈活的配置,可以對(duì)數(shù)據(jù)包進(jìn)行接收分析處理;同時(shí)還支持標(biāo)準(zhǔn)的管理接口和協(xié)議,如 NetFlow、sFlow、SPAN、RSPAN等。
Open vSwtich模塊介紹
當(dāng)前最新代碼包主要包括以下模塊和特性:
ovs-vswitchd :主要模塊,實(shí)現(xiàn)switch的daemon,包括一個(gè)支持流交換的Linux內(nèi)核模塊;
ovsdb-server :輕量級(jí)數(shù)據(jù)庫服務(wù)器,提供ovs-vswitchd獲取配置信息;
ovs-brcompatd :讓ovs-vswitch替換Linux bridge,包括獲取bridge ioctls的Linux內(nèi)核模塊;
ovs-dpctl: 用來配置switch內(nèi)核模塊;
一些Scripts and specs: 輔助OvS安裝在Citrix XenServer上,作為默認(rèn)switch;
ovs-vsctl :查詢和更新ovs-vswitchd的配置;
ovs-appctl :發(fā)送命令消息,運(yùn)行相關(guān)daemon;
ovsdbmonitor: GUI工具,可以遠(yuǎn)程獲取OvS數(shù)據(jù)庫和OpenFlow的流表。
ovs-openflowd:一個(gè)簡(jiǎn)單的OpenFlow交換機(jī);
ovs-controller:一個(gè)簡(jiǎn)單的OpenFlow控制器;
ovs-ofctl :查詢和控制OpenFlow交換機(jī)和控制器;
ovs-pki :OpenFlow交換機(jī)創(chuàng)建和管理公鑰框架;
ovs-tcpundump:tcpdump的補(bǔ)丁,解析OpenFlow的消息;
上面是網(wǎng)上提到的一些Open vSwitch的主要模塊。其實(shí)Open vSwitch中最主要的還是datapath目錄下的一些文件。有端口模塊vport等,還有關(guān)鍵的邏輯處理模塊datapath等,以及flow等流 表模塊,最后的還有action動(dòng)作響應(yīng)模塊,通道模塊等等。
Open vSwtich工作流程

一般的數(shù)據(jù)包在linux網(wǎng)絡(luò)協(xié)議棧中的流向?yàn)楹谏^流向:從網(wǎng)卡上接受到數(shù)據(jù)包后層層往上分析,最后離開內(nèi)核態(tài),把數(shù)據(jù)傳送到用戶態(tài)。當(dāng)然也有些數(shù)據(jù)包只是在內(nèi)核網(wǎng)絡(luò)協(xié)議棧中操作,然后再從某個(gè)網(wǎng)卡發(fā)出去。
但當(dāng)其中有openVswitch時(shí),數(shù)據(jù)包的流向就不一樣了。首先是創(chuàng)建一個(gè)網(wǎng)橋:ovs-vsctl add-br br0;然后是綁定某個(gè)網(wǎng)卡:綁定網(wǎng)卡:ovs-vsctl add-port br0 eth0;這里默認(rèn)為綁定了eth0網(wǎng)卡。數(shù)據(jù)包的流向是從網(wǎng)卡eth0上然后到openVswitch的端口vport上進(jìn)入openVswitch 中,然后根據(jù)key值進(jìn)行流表的匹配。如果匹配成功,則根據(jù)流表中對(duì)應(yīng)的action找到其對(duì)應(yīng)的操作方法,完成相應(yīng)的動(dòng)作(這個(gè)動(dòng)作有可能是把一個(gè)請(qǐng)求 變成應(yīng)答,也有可能是直接丟棄,也可以自己設(shè)計(jì)自己的action);如果匹配不成功,則執(zhí)行默認(rèn)的動(dòng)作,有可能是放回內(nèi)核網(wǎng)絡(luò)協(xié)議棧中去處理(在創(chuàng)建網(wǎng) 橋時(shí)就會(huì)相應(yīng)的創(chuàng)建一個(gè)端口連接內(nèi)核協(xié)議棧的)。
其大概工作流程就是這樣了,在工作中一般在這幾個(gè)地方來修改內(nèi)核代碼以達(dá)到自己的目的:第一個(gè)是在datapath.c中的 ovs_dp_process_received_packet(struct vport *p, struct sk_buff *skb)函數(shù)內(nèi)添加相應(yīng)的代碼來達(dá)到自己的目的,因?yàn)閷?duì)于每個(gè)數(shù)據(jù)包來說這個(gè)函數(shù)都是必經(jīng)之地;第二個(gè)就是自己去設(shè)計(jì)自己的流表了;第三個(gè)和第二個(gè)是相 關(guān)聯(lián)的,就是根據(jù)流表來設(shè)計(jì)自己的action,完成自己想要的功能。
以上就是如何進(jìn)行Open vSwitch OvS源代碼分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:如何進(jìn)行OpenvSwitchOvS源代碼分析
標(biāo)題鏈接:http://www.chinadenli.net/article18/igpdgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、域名注冊(cè)、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、電子商務(wù)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)