欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法和系統(tǒng)與流程

文檔序號(hào):11709985閱讀:262來(lái)源:國(guó)知局
一種捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法和系統(tǒng)與流程

本申請(qǐng)涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及一種捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法和系統(tǒng)。



背景技術(shù):

隨著虛擬化技術(shù)的廣泛應(yīng)用,對(duì)虛擬交換機(jī)提出越來(lái)越高的性能要求。為了提高虛擬交換機(jī)的性能,新一代的虛擬交換機(jī)將數(shù)據(jù)平面在用戶態(tài)實(shí)現(xiàn)從而可以利用dpdk等高性能數(shù)據(jù)平面技術(shù),但用戶態(tài)數(shù)據(jù)平面也面臨著傳統(tǒng)的網(wǎng)絡(luò)故障診斷工具無(wú)法使用的問題。為了解決虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面故障診斷工具問題,圖2提出了一種方案將數(shù)據(jù)報(bào)文io端口的所有發(fā)送接收?qǐng)?bào)文都寫入一個(gè)抓包文件里面,再由tcpdump進(jìn)行離線分析,該方案由于所有的寫文件操作都要做系統(tǒng)調(diào)用而且不能設(shè)置過濾規(guī)則,因此效率低下,而且必須離線分析。圖3提出的方案將數(shù)據(jù)報(bào)文重新注入內(nèi)核,從而可以復(fù)用現(xiàn)有的tcpdump等抓包工具,但由于無(wú)法在抓包第一時(shí)間進(jìn)行過濾,也面臨著嚴(yán)重的性能問題,而且該方案還必須依賴額外的內(nèi)核模塊,從而增加了系統(tǒng)維護(hù)代價(jià)。因此,本領(lǐng)域存在對(duì)虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文進(jìn)行高效率、高性能、靈活地抓包的方法的需求。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)敘述的方法用于捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文,從而使得虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面可以高效靈活地進(jìn)行診斷。根據(jù)一個(gè)實(shí)施例,提供了捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法,該方法包括:抓包工具向虛擬交換機(jī)請(qǐng)求捕獲用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上的數(shù)據(jù)報(bào)文,虛擬交換機(jī)創(chuàng)建與指定數(shù)據(jù)報(bào)文io端口關(guān)聯(lián)的抓包代理,抓包工具與抓包代理建立數(shù)據(jù)通道;抓包代理捕獲數(shù)據(jù)報(bào)文io端口上符合過濾規(guī)則的數(shù)據(jù)報(bào)文,將其放入與抓包工具之間的數(shù)據(jù)通道,抓包工具從與抓包代理之間的數(shù)據(jù)通道接收數(shù)據(jù)報(bào)文;抓包工具向虛擬交換機(jī)注銷用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上的數(shù)據(jù)報(bào)文捕獲,虛擬交換機(jī)刪除相應(yīng)的抓包代理。

在前述實(shí)施例的上下文中,虛擬交換機(jī)數(shù)據(jù)平面為用戶態(tài)數(shù)據(jù)平面。

在前述實(shí)施例的上下文中,抓包工具向虛擬交換機(jī)抓包管理接口發(fā)送指定數(shù)據(jù)報(bào)文io端口上的捕獲請(qǐng)求和捕獲注銷命令。

在前述實(shí)施例的上下文中,抓包工具可以設(shè)置抓包代理上的過濾規(guī)則。

在前述實(shí)施例的上下文中,抓包工具和抓包代理之間的數(shù)據(jù)通道基于共享內(nèi)存。

在前述實(shí)施例的上下文中,多個(gè)抓包工具實(shí)例可以同時(shí)對(duì)不同數(shù)據(jù)報(bào)文io端口進(jìn)行抓包。

本發(fā)明的其他實(shí)施例提供了一種可由網(wǎng)絡(luò)設(shè)備的一個(gè)或多個(gè)處理器讀取的程序存儲(chǔ)設(shè)備,其有形地包含可由所述一個(gè)或多個(gè)處理器執(zhí)行以便實(shí)施用于捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法步驟的指令程序,所述方法步驟包括:抓包工具向虛擬交換機(jī)請(qǐng)求捕獲用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上的數(shù)據(jù)報(bào)文,虛擬交換機(jī)創(chuàng)建與指定數(shù)據(jù)報(bào)文io端口關(guān)聯(lián)的抓包代理,抓包工具與抓包代理建立數(shù)據(jù)通道;抓包代理捕獲數(shù)據(jù)報(bào)文io端口上符合過濾規(guī)則的數(shù)據(jù)報(bào)文,將其放入與抓包工具之間的數(shù)據(jù)通道,抓包工具從與抓包代理之間的數(shù)據(jù)通道接收數(shù)據(jù)報(bào)文;抓包工具向虛擬交換機(jī)注銷用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上的數(shù)據(jù)報(bào)文捕獲,虛擬交換機(jī)刪除相應(yīng)的抓包代理。

本發(fā)明實(shí)施例的其他特征將從附圖和后面的詳細(xì)敘述中更明顯得到。

本發(fā)明的突出優(yōu)點(diǎn)為該方法是一種簡(jiǎn)單高效捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法,而且抓包工具的使用方式與傳統(tǒng)的使用方式完全一致,易于虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面的日常診斷。

附圖說(shuō)明

在附圖中的視圖中借助舉例方式對(duì)本發(fā)明的實(shí)施例進(jìn)行描述,這些實(shí)施例并非起局限作用,附圖中類似的參考數(shù)字將表示類似的元件,其中:

圖1是從概念上描述本發(fā)明方法的邏輯關(guān)系圖。

圖2描述了一種使用寫抓包文件然后離線分析的方法。

圖3描述了一種將用戶態(tài)數(shù)據(jù)平面導(dǎo)入內(nèi)核再進(jìn)行抓包的方法。

圖4描述了應(yīng)用本發(fā)明的一個(gè)具體實(shí)施例的功能模塊圖。

圖5描述了一個(gè)具體實(shí)施例的抓包建立過程。

圖6描述了一個(gè)具體實(shí)施例的數(shù)據(jù)報(bào)文捕獲過程。

圖7描述了一個(gè)具體實(shí)施例的抓包退出過程。

圖8是可以使用本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的實(shí)例。

具體實(shí)施方式

本申請(qǐng)敘述了一種捕獲虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文的方法和系統(tǒng)。本申請(qǐng)實(shí)施的技術(shù)方案中,抓包工具基于tcpdump,在tcpdump使用的libpcap庫(kù)中新增一種虛擬交換機(jī)抓包適配器。tcpdump通過虛擬交換機(jī)的抓包管理接口可以在特定的虛擬交換機(jī)用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上請(qǐng)求報(bào)文捕獲,虛擬交換機(jī)創(chuàng)建抓包代理,并建立相應(yīng)的基于共享內(nèi)存的數(shù)據(jù)通道。tcpdump可以向虛擬交換機(jī)抓包管理接口請(qǐng)求抓包過濾規(guī)則,該過濾規(guī)則基于bpf指令,抓包代理利用bpfjit技術(shù)將收到的基于bpf指令轉(zhuǎn)化為本地的機(jī)器指令以提高過濾速度。tcpdump可以向虛擬交換機(jī)抓包管理接口配置用于通知數(shù)據(jù)通道報(bào)文到達(dá)的eventfd。抓包代理捕獲數(shù)據(jù)報(bào)文io端口上符合過濾規(guī)則的數(shù)據(jù)報(bào)文,將其放入基于共享內(nèi)存的數(shù)據(jù)通道,tcpdump從基于共享內(nèi)存的數(shù)據(jù)通道接收數(shù)據(jù)報(bào)文。抓包過程結(jié)束時(shí),tcpdump向虛擬交換機(jī)注銷用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口上的數(shù)據(jù)報(bào)文捕獲,虛擬交換機(jī)刪除相應(yīng)的抓包代理。多個(gè)tcpdump實(shí)例可以同時(shí)對(duì)不同數(shù)據(jù)報(bào)文io端口進(jìn)行抓包。

在后面的敘述中,為了提供對(duì)本發(fā)明實(shí)施例的全面理解,公開了許多特定的詳細(xì)內(nèi)容。然而,本領(lǐng)域的技術(shù)人員將明白,在不具有這些具體細(xì)節(jié)中的某些細(xì)節(jié)的情況下,也可以實(shí)現(xiàn)本發(fā)明的實(shí)施例。

術(shù)語(yǔ)

虛擬交換機(jī):由軟件實(shí)現(xiàn)的根據(jù)以太網(wǎng)報(bào)頭進(jìn)行報(bào)文轉(zhuǎn)發(fā)的系統(tǒng),也可提供安全訪問控制、流量控制和隧道等功能。

控制平面:用于控制和管理所有網(wǎng)絡(luò)協(xié)議的運(yùn)行,控制平面提供了數(shù)據(jù)平面數(shù)據(jù)處理轉(zhuǎn)發(fā)前所必須的各種網(wǎng)絡(luò)信息和轉(zhuǎn)發(fā)查詢表項(xiàng)。

數(shù)據(jù)平面io端口:用于接收發(fā)送數(shù)據(jù)報(bào)文的端口,可以是連接虛擬機(jī)的虛擬端口,連接物理網(wǎng)卡的物理端口,也可以是其它的特殊端口如隧道端口,tap端口等。

數(shù)據(jù)平面:用于處理數(shù)據(jù)報(bào)文在各種數(shù)據(jù)平面io端口之間的轉(zhuǎn)發(fā)。

用戶態(tài)數(shù)據(jù)平面:運(yùn)行在操作系統(tǒng)用戶態(tài)的數(shù)據(jù)平面。

bpf:伯克利數(shù)據(jù)包過濾器,一種通用的定義報(bào)文過濾規(guī)則的方法,由bpf指令構(gòu)成。

bpfjit:一種將bpf指令翻譯為本地指令的方法,用于提高執(zhí)行過濾規(guī)則的性能。

libpcap:一種抓包的函數(shù)庫(kù),可以對(duì)不同類型的網(wǎng)絡(luò)接口進(jìn)行抓包,還可以將上層過濾規(guī)則轉(zhuǎn)化為bpf指令。

tcpdump:一種通用的基于libpcap的抓包工具,可以定義過濾規(guī)則以及分析報(bào)文。

eventfd:用于不同線程,進(jìn)程間通知事件。

圖4描述了應(yīng)用本發(fā)明的一個(gè)具體實(shí)施例的功能模塊圖。在tcpdump(480)中,新增了libpcap虛擬交換機(jī)抓包適配器(485)。在虛擬交換機(jī)(410)中,抓包管理接口(415)用于接收來(lái)自libpcap虛擬交換機(jī)抓包適配器(485)上的各種請(qǐng)求消息,它會(huì)管理每個(gè)抓包代理(460)的創(chuàng)建,配置以及刪除。在libpcap虛擬交換機(jī)抓包適配器(485)和對(duì)應(yīng)的抓包代理(460)之間會(huì)建立一條基于共享內(nèi)存的數(shù)據(jù)通道(470),每條數(shù)據(jù)通道(470)包含一個(gè)基于共享內(nèi)存的報(bào)文隊(duì)列(475),以及報(bào)文通知eventfd(471)。

圖5描述了抓包的建立過程。

tcpdump(510)首先向虛擬交換機(jī)抓包管理接口(520)發(fā)起請(qǐng)求查詢可以實(shí)施抓包的數(shù)據(jù)報(bào)文io端口(步驟540),虛擬交換機(jī)抓包管理接口(520)會(huì)返回可以實(shí)施抓包的數(shù)據(jù)報(bào)文io端口列表(步驟545),tcpdump使用者可以從列表中挑選數(shù)據(jù)報(bào)文io端口進(jìn)行抓包。

在發(fā)起特定數(shù)據(jù)報(bào)文io端口抓包請(qǐng)求以前,tcpdump(510)需要映射虛擬交換機(jī)共享內(nèi)存到本地進(jìn)程(步驟550)。

tcpdump(510)向虛擬交換機(jī)抓包管理接口(520)發(fā)起請(qǐng)求創(chuàng)建指定數(shù)據(jù)報(bào)文io端口上的抓包代理(步驟555),虛擬交換機(jī)抓包管理接口(520)會(huì)創(chuàng)建抓包代理(步驟560)并向指定的用戶態(tài)數(shù)據(jù)平面數(shù)據(jù)報(bào)文io端口(530)注冊(cè)報(bào)文接收發(fā)送回調(diào)(步驟565)。虛擬交換機(jī)抓包管理接口(520)向tcpdump(510)返回抓包代理句柄(步驟570)。

tcpdump(510)可以設(shè)置抓包代理消息通知eventfd(步驟575)。

tcpdump(510)可以設(shè)置抓包代理上的基于bpf指令的過濾規(guī)則(步驟580),虛擬交換機(jī)抓包管理接口(520)對(duì)抓包代理(525)設(shè)置過濾規(guī)則(步驟585),抓包代理(525)將bpf指令通過bpfjit轉(zhuǎn)換為本地的機(jī)器指令(步驟586)。

圖6描述了數(shù)據(jù)報(bào)文捕獲過程。

數(shù)據(jù)報(bào)文io端口(630)上有數(shù)據(jù)報(bào)文接收發(fā)送操作(步驟640),執(zhí)行已注冊(cè)的抓包代理回調(diào)函數(shù)(步驟645)。抓包代理(620)檢測(cè)是否已配置過濾規(guī)則,如果配置了過濾規(guī)則但bpfjit過濾器返回不匹配,則對(duì)該報(bào)文不做任何處理,返回(步驟650)。如果數(shù)據(jù)通道報(bào)文隊(duì)列已滿,對(duì)報(bào)文不做任何處理,返回(步驟655)。對(duì)報(bào)文進(jìn)行克隆,并放入數(shù)據(jù)通道報(bào)文隊(duì)列(步驟660)。如果抓包代理已設(shè)置通知eventfd,則利用eventfd通知tcpdump(步驟665)。tcpdump(610)輪詢或根據(jù)eventfd通知,在數(shù)據(jù)通道報(bào)文隊(duì)列讀出報(bào)文(步驟670)。

圖7描述了抓包退出過程。

tcpdump(710)向虛擬交換機(jī)抓包管理接口(720)發(fā)送請(qǐng)求注銷指定數(shù)據(jù)報(bào)文io端口上的抓包代理(步驟740)。抓包管理接口(720)向數(shù)據(jù)報(bào)文io端口(730)注銷報(bào)文接收發(fā)送回調(diào)(步驟745),同時(shí)刪除抓包代理(步驟750)。tcpdump(710)釋放抓包代理消息通知eventfd(步驟755),整個(gè)抓包過程結(jié)束。

通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可使用軟件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永靖县| 庆阳市| 孝义市| 曲阜市| 洛浦县| 白朗县| 和顺县| 巴彦县| 津市市| 沙洋县| 得荣县| 彩票| 元朗区| 新龙县| 新河县| 林甸县| 密山市| 麻江县| 八宿县| 醴陵市| 古田县| 昂仁县| 云阳县| 浦东新区| 西贡区| 鄱阳县| 锦屏县| 若尔盖县| 广饶县| 和平区| 本溪| 汨罗市| 凤阳县| 桑日县| 佳木斯市| 玛沁县| 日喀则市| 玉环县| 文安县| 商都县| 新野县|