1006大設(shè)計(jì)翻譯版以同一物理機(jī)上KVM虛擬機(jī)間通信監(jiān)控系統(tǒng)的_第1頁(yè)
1006大設(shè)計(jì)翻譯版以同一物理機(jī)上KVM虛擬機(jī)間通信監(jiān)控系統(tǒng)的_第2頁(yè)
1006大設(shè)計(jì)翻譯版以同一物理機(jī)上KVM虛擬機(jī)間通信監(jiān)控系統(tǒng)的_第3頁(yè)
1006大設(shè)計(jì)翻譯版以同一物理機(jī)上KVM虛擬機(jī)間通信監(jiān)控系統(tǒng)的_第4頁(yè)
1006大設(shè)計(jì)翻譯版以同一物理機(jī)上KVM虛擬機(jī)間通信監(jiān)控系統(tǒng)的_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

我,本 時(shí)間:20146DesignandImplementationoftheSystemMonitoringCommunicationbetweenKVMVirtualMachinesonaHostAuthor:YueXichunTutor:XiaoAlongwiththeprogressofhardwaretechnology,virtualizationhasobtainedcomprehensivedevelopmentincomponents,systemandapplicationlevel.Cloudcomputing,asarevolutionoftheITindustry,hasgotmuchunprecedentedattention.Asthemostimportantsupportingtechnologyofthegreatideaofcloudcomputing,virtualizationtechnologyhasalsobeenimprovedrapidly.Virtualizationtechnologyhasitssecurityproblemalongwithconvenientinitshighspeeddevelopment.Somevirtualmachinehasimplementedsomesecuritymechanismpreliminarilyatpresent,includingtrustedbootTbootandencryptiontechnologyonimagefiles.Butthesesecuritymechanismcannotresolveallthevirtualizationsecurityproblems.Someproblemsinvolvedsecurityproblemsofcommunicationbetweenvirtualmachinesonahosthavenotbeensolvedwell.Inthispaper,weyzesomerelevanttechnologyaboutKVMandespeciallythecommunicationarchitectureinKVM.Onthisbasis,weproposetheideatomonitorcommunicationamongvirtualmachinesinuseofOpenvSwitchtechnology.Thenwemanagetodesignandimplementthesystem,improvingthesecurityperformance.Themainworkofthispaperdisysasfollow.Firstly,weyzetheKVMcommunicationarchitecture,theoperatingprincipleofOpenvSwitch,thepacketcapturemechanismandotherrelated.Secondly,weproposetheideaofthedesignandtheoveralldesignarchitecture.Thesystemisdividedintotwoparts,themonitoringcommunicationmoduleandtheremotemanagementmodule.Andwealsoprovidethedetaileddesigns.Thirdly,accordingtothedesignrequirements,weachievethepacketcaptureandfilteringofthemonitoringcommunicationmoduleusingthelibpcaplibraryandBPFpacketfilteringmechanism.Finally,weachievethesystemfunctiontestmakinguseoftheSocketAfterthefunctiontest,weverifytheavailabilityandaccuracyofthe:CommunicationMonitor,Inter-VMsCommunication,KVM,Virtual緒 研究背 云計(jì)算的發(fā) 虛擬化與內(nèi)核虛擬 研究意 研究目 研究?jī)?nèi) 課題來(lái) 組織結(jié) 國(guó)內(nèi)外相關(guān)研究及發(fā)展趨 “發(fā)卡彎”技 分布式虛擬交換機(jī)技 軟件定義網(wǎng) 發(fā)展趨勢(shì)分 本章小 相關(guān)技術(shù)概 內(nèi)核虛擬機(jī)網(wǎng)絡(luò)通信架 OpenvSwitch工作原 包捕獲機(jī) 本章小 同一物理機(jī)上KVM虛擬機(jī)間通信系統(tǒng)設(shè) 設(shè)計(jì)思 總體設(shè) 通信模塊設(shè) 數(shù)據(jù)包的捕 數(shù)據(jù)包的過(guò) 遠(yuǎn)端管理模塊設(shè) 管理模塊的功能需 管理模塊的設(shè) 本章小 同一物理機(jī)上KVM虛擬機(jī)間通信系統(tǒng)實(shí) 通信模塊實(shí) 通信模塊的實(shí)現(xiàn)框 主要的結(jié)構(gòu) 主要函數(shù)介 管理模塊實(shí) 本章小 同一物理機(jī)上KVM虛擬機(jī)間通信系統(tǒng)測(cè) 測(cè)試環(huán) 測(cè)試平臺(tái)搭 OpenvSwitch安裝和配 物理機(jī)上的相關(guān)設(shè) 測(cè)試方 分 本章小 總結(jié)與展 主要工作總 研究展 致 參考文 于KVM(內(nèi)核虛擬機(jī),KernelVirtualMachine)的虛擬化技術(shù)被廣泛認(rèn)可。RHEL、Fedora、Ubuntu等。KVM內(nèi)核模塊在運(yùn)行時(shí)按需加載進(jìn)入內(nèi)核1.1QEMU虛擬設(shè)備模擬,虛擬網(wǎng)橋等,這OpenFlow協(xié)議。OpenFLowKVM的良好支持,是我們選擇OpenFlow的原因。虛擬機(jī)間通信的系統(tǒng)。OpenvSwitch作為一種基于軟件實(shí)現(xiàn)的開(kāi)源虛擬交換機(jī),其最主要的工作就是實(shí)現(xiàn)由于網(wǎng)卡是同時(shí)工作在I開(kāi)放式系統(tǒng)互聯(lián)體系結(jié)構(gòu)中的物理層和數(shù)據(jù)鏈路層,BPF(BSDPacketFiletr、CSPF(CMU/StanfordPacketFilter)SUNNIT塊和管理模塊提出了比較詳細(xì)設(shè)計(jì)方法。第六章同一物理機(jī)上KVM虛擬機(jī)間通信系統(tǒng)測(cè)試說(shuō)明,最后得到并進(jìn)行分析。IEEE802.1工作組制定了新標(biāo)準(zhǔn)802.1QbgEdgeVirtualBridging(EVB),其思想理可擴(kuò)展性問(wèn)題得以很好的解決。但因?yàn)榱髁勘粡奶摂M機(jī)上引入到外部網(wǎng)絡(luò),使EVB目前仍在Cisco自己的解決方案中使用。其思想是在標(biāo)準(zhǔn)以太網(wǎng)幀中增加一段的標(biāo)記——VN-Tag,用以區(qū)分不同的VIF,從而識(shí)別特定虛擬機(jī)的流量。在軟件定義網(wǎng)絡(luò)環(huán)境下,控制節(jié)點(diǎn)可以根據(jù)相應(yīng)算法、邏輯、分析和規(guī)則,以軟件定義規(guī)范方式將配置信息推到交換和路由節(jié)點(diǎn),完成路由或交換從控制節(jié)點(diǎn)接據(jù)落地轉(zhuǎn)發(fā)由每個(gè)特定交換或路由節(jié)點(diǎn)完成。當(dāng)計(jì)算或資源變化時(shí),控制節(jié)點(diǎn)和精細(xì)化動(dòng)態(tài)配置管理。同時(shí)由于其控制節(jié)點(diǎn)的統(tǒng)一管理,也可以任一節(jié)點(diǎn)的率。隨著SDN技術(shù)浪潮的興起,網(wǎng)絡(luò)產(chǎn)業(yè)將被打造成一個(gè)開(kāi)放的三層生態(tài)架構(gòu),即交換設(shè)備層、平臺(tái)層(網(wǎng)絡(luò)操作系統(tǒng))和應(yīng)用層。SDN將是IT化、軟件化、虛擬化的網(wǎng)的方向[7]SDNSDN來(lái)統(tǒng)一管理Linux系統(tǒng)中,TUNTAP設(shè)備是內(nèi)核提供的虛擬網(wǎng)絡(luò)設(shè)備。一般的網(wǎng)絡(luò)設(shè)備太網(wǎng)設(shè)備,在第二層協(xié)議層處理以太網(wǎng)幀。TUN設(shè)備模擬了網(wǎng)絡(luò)層設(shè)備操作網(wǎng)絡(luò)層數(shù)TAP/TUN設(shè)備發(fā)送數(shù)據(jù)包被定向到與該設(shè)備綁定的用戶程序中。用協(xié)議棧處理,來(lái)模擬從外部數(shù)據(jù)源收程。3.1KVM3.1TAP設(shè)備本身作為一塊獨(dú)立的虛擬網(wǎng)卡,與真實(shí)的物理網(wǎng)卡如果在交換機(jī)地址表找到目的MAC地址,則在特定的端口上發(fā)送這個(gè)數(shù)據(jù)包,如果發(fā)KVMXen上的虛擬交換機(jī)。在虛擬化平臺(tái)上,OVS2層交換功能,卡,同時(shí)虛擬交換機(jī)內(nèi)部會(huì)一張映射表,根據(jù)MAC3.23.2所示,當(dāng)數(shù)據(jù)包從虛擬機(jī)發(fā)出后,首先將通過(guò)虛擬機(jī)上配置的虛擬網(wǎng)卡。在被網(wǎng)卡放行后將轉(zhuǎn)發(fā)至虛擬交換機(jī),與其他虛擬交換機(jī)不同的是,提供了OpenFlow支持能力的OVS將根據(jù)自身保存的流表對(duì)數(shù)據(jù)包進(jìn)行匹配,如果匹配成功則按照相應(yīng)圖3.3OVS架如圖3.3所示,OVS的數(shù)據(jù)轉(zhuǎn)發(fā)通路(datapath)主要用于執(zhí)行數(shù)據(jù)交換工作,即利用專門(mén)的Linux內(nèi)核模塊的快速通道。OVS在實(shí)現(xiàn)中分為用戶空間和內(nèi)核空間兩個(gè)部分。其中,OVS在用戶空間程序擁OVS的組件及其關(guān)聯(lián)關(guān)系如圖3.4所示。

數(shù)據(jù)庫(kù)操作

圖3.4OVS組件及其關(guān)聯(lián)關(guān)中,ovs-vswitchdovsdb中。ovsdb-serverovs-vswitchdovsdb-server通過(guò)UNIXsocket機(jī)制進(jìn)行通信以獲得或者保存配置信息。ovs-vsctl、ovs-apptcl、ovs-dpctl庫(kù)操作時(shí),可以通過(guò)運(yùn)行ovsdb-組件ovsdb-server,或者直接使用ovsdb-tooldatapath3.53.5所示,除了“ovs-vswitchd進(jìn)程查看數(shù)據(jù)包,找到目的端口”階段,其他VLANVLANtag就需要首先從數(shù)據(jù)包中被去除,然后再將其轉(zhuǎn)發(fā)到正確是3.5OVSLinux在2.2及以后的版本中提供協(xié)議族PF_PACKET來(lái)實(shí)現(xiàn)捕獲機(jī)制。PF_PACKET的調(diào)用形式為socket(PF_PACKET,intsocket_type,intprotocol),其中socketSOCK_RAWSOCK_DGRAM。SOCK_RAW類型使得數(shù)據(jù)包從SOCK_DRRAM則要對(duì)數(shù)sockaddr_ll來(lái)保存鏈路信息。protocolIP0x0800,當(dāng)其為htons(ETH_P_ALL)(其宏定義為0)時(shí)表示收發(fā)所有的協(xié)議。initinitsocket-find3.6socket()函數(shù)進(jìn)入sys_socketcall(),根據(jù)子系統(tǒng)調(diào)用號(hào),執(zhí)行sys_socket()函數(shù)創(chuàng)建socket()是該結(jié)構(gòu)體中的inode成員。套接字保存在inetsw中的同一鏈表中,因此需要遍歷鏈表來(lái)查找;本章主要介紹了本系統(tǒng)在研究、設(shè)計(jì)過(guò)程中的相關(guān)技術(shù)及理論基礎(chǔ)。3.1節(jié)OpenvSwitchOpenvSwitch的組件之間的關(guān)系,以及datapath中對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)的內(nèi)部細(xì)節(jié)。3.3節(jié)介紹了數(shù)據(jù)4.1虛擬機(jī)通過(guò)OVS4.1OVS進(jìn)行通信的架構(gòu)圖,首先我們先了解幾個(gè)Hypervisor:也稱為VirtualMachineMonitor,虛擬機(jī)器。它的主要職能是tap3.2節(jié)中的數(shù)據(jù)流上的通信程序,主要負(fù)責(zé)對(duì)虛擬機(jī)通信過(guò)程中數(shù)據(jù)包的抓取,過(guò)濾,解析工作;第設(shè)計(jì)思路是利用ssh(SecureS)協(xié)議,進(jìn)行登錄、文件傳輸?shù)裙δ堋P﹨?shù)傳給程序,然后再獲得由程序返回的數(shù)據(jù)包,如圖4.2所示。

4.2并根據(jù)管理員的需求獲得各個(gè)tap上的通信數(shù)據(jù)。通信程序在獲得數(shù)據(jù)之后再進(jìn)行 4.3著互連網(wǎng)的快速普及和網(wǎng)絡(luò)行為的頻繁出現(xiàn),保護(hù)網(wǎng)絡(luò)的運(yùn)行安全也成為軟件獲得一個(gè)捕獲句柄:結(jié)構(gòu)體pcap_t。函數(shù)pcap_open_live()的調(diào)用形式是pcap_t*pcap_open_live(constchar*device,intsnaplen,intpromisc,intto_ms,char*ebuf),其中如deviceNULL或“any”,則對(duì)所有接口捕獲;snaplen代表用戶期望的捕獲數(shù)據(jù)包最大長(zhǎng)度,我們可以設(shè)置這個(gè)值來(lái)只抓每個(gè)數(shù)據(jù)包的頭部,而不關(guān)心具體的內(nèi)容。典型的以太網(wǎng)幀長(zhǎng)度是1518字節(jié),65535個(gè)字節(jié);promisc指定是否打開(kāi)混雜模式(PromiscuousMode),0表示非混雜模式,只有在設(shè)備給定的情況下有意義;to_ms代表函數(shù)超時(shí)返回的時(shí)間,0表示一直等待直到有數(shù)據(jù)包到來(lái);ebuf是存放出錯(cuò)信息的數(shù)組。如圖4.4所示,其執(zhí)行步驟如下:pcap_t分別利用函數(shù)live_open_new()或live_open_old()嘗試創(chuàng)建PF_PACKET方socketpcap_tlinux系統(tǒng)下的特定函數(shù),其中最重要的是讀數(shù)據(jù)包函數(shù)和設(shè)置過(guò)濾器函數(shù)。handle->read_op=pcap_read_linux;handle->setfilter_oppcap_setfilter_linux4.4和110(pop3)的TCP數(shù)據(jù)包,對(duì)DNS系統(tǒng)進(jìn)行就只需要端為53的UDP為,濾機(jī)制在包捕獲機(jī)制中心地位。true,則通只需要TCP類型且端口為110的數(shù)據(jù)包或ARP類型的數(shù)據(jù)包。濾機(jī)制在具體的而謂詞判斷會(huì)根據(jù)具體的協(xié)議映射到數(shù)組特定位置的值。如判斷ARP類型數(shù)據(jù)包,只需要判斷數(shù)組中第13、14個(gè)字節(jié)(以太頭中的數(shù)據(jù)包類型)是否為0X0806。從理論BPFBSDPacketFilterUNIX平臺(tái)上多數(shù)嗅包工具(tcpdump,絡(luò)接口時(shí),數(shù)據(jù)鏈路層的驅(qū)動(dòng)會(huì)把它向系統(tǒng)的協(xié)議棧傳送。但如果BPF接口,驅(qū)動(dòng)首先調(diào)用BPF。BPF首先進(jìn)行過(guò)濾操作,然后把數(shù)據(jù)包存放在過(guò)濾器相關(guān)的緩沖區(qū)的NIT過(guò)濾機(jī)制先緩沖每個(gè)數(shù)據(jù)包直到用戶讀數(shù)據(jù)時(shí)再過(guò)濾所造成的效率問(wèn)題[11]。BPF對(duì)無(wú)環(huán)控制流圖(CFG,controlflowgraph)算法的代碼實(shí)現(xiàn)非常復(fù)雜,它使用偽機(jī)器方式。BPF偽機(jī)器是一個(gè)輕量級(jí)的,高效的狀態(tài)機(jī),對(duì)BPF過(guò)濾代碼進(jìn)行解釋處理。BPF過(guò)濾代碼形式為"opcodejtjfk",分別代表了操作碼和尋址方式、判斷正確的跳轉(zhuǎn)、判斷失敗的跳轉(zhuǎn)、操作使用的通用數(shù)據(jù)域。BPF過(guò)濾代碼從邏輯上看很類似顯然,由用戶來(lái)寫(xiě)過(guò)濾代碼太過(guò)復(fù)雜,因此libpcap允許用戶書(shū)寫(xiě)的、容易理解的過(guò)濾字符串,然后將其編譯為BPF代碼[12]。BPF包捕獲技術(shù)是一種基于內(nèi)核的過(guò)濾和緩沖,在高速網(wǎng)絡(luò)中可獲得良好的性能。libpcap開(kāi)發(fā)包來(lái)具體實(shí)現(xiàn)數(shù)據(jù)包捕獲系統(tǒng)。libpcapBPF數(shù)據(jù)過(guò)濾,它工如圖4.5為包捕獲系統(tǒng)的結(jié)構(gòu)圖。4.5BPF4.4.1管理模塊的功能需比較簡(jiǎn)單,用例圖如圖4.6所示。其中,參與者是管理員。主要用例有Authenticate——使用用戶名和進(jìn)行認(rèn)證包;Stopmonitor——停止,結(jié)束捕獲數(shù)據(jù)包。圖 4.4.2管理模塊的設(shè)員同樣需要經(jīng)常地登錄到各個(gè)物理機(jī),獲取各個(gè)物理機(jī)上不同虛擬機(jī)之間的通信數(shù) SSH(SecureS)協(xié)議是一種在兩個(gè)主機(jī)之間通過(guò)加密和驗(yàn)證機(jī)制提供安全連接的協(xié)議。目前廣泛應(yīng)用的支持ssh協(xié)議的工具是開(kāi)源的OpenSSH。WorkingGroup所制定的一族協(xié)議,其目的是要在非安全網(wǎng)絡(luò)上提供安全的登錄和SSH協(xié)議框架最主要的部分是三個(gè)協(xié)議:傳輸層協(xié)議、用戶認(rèn)證協(xié)議和連接協(xié)議。同時(shí)SSH協(xié)議框架中還為許多的應(yīng)用協(xié)議提供擴(kuò)展支持[14]。SSH安全驗(yàn)4.7SSH4.7所示,SSHTCPTCP連接 4.8SSH4.8SSH;服務(wù)器將客戶端發(fā)送的用戶名和信息,與設(shè)備上或者認(rèn)證服務(wù)器上保 圖4.9管理模塊設(shè)計(jì)步本章主要介紹了系統(tǒng)的設(shè)計(jì)方法。4.1節(jié)根據(jù)前幾章對(duì)相關(guān)技術(shù)的分析,介紹了系其設(shè)計(jì)思路。4.4節(jié)介紹了遠(yuǎn)端管理模塊的設(shè)計(jì)方案,給出了功能需求和設(shè)計(jì)思路。通信模塊實(shí)通信模塊的實(shí)現(xiàn)框通信模塊的實(shí)現(xiàn)步驟主要分為七步,實(shí)現(xiàn)框架如圖5.1所示圖5.1通信模塊實(shí)現(xiàn)框char*device;/*char*device;/*用來(lái)捕獲數(shù)據(jù)包的網(wǎng)絡(luò)接口的名稱*/pcap_t*p;/*捕獲數(shù)據(jù)包句柄,最重要的數(shù)據(jù)結(jié)構(gòu)*/structbpf_programfcode;/*BPF過(guò)濾代碼結(jié)構(gòu)*//**/device=pcap_lookupdev(errbuf);/*第二步:創(chuàng)建捕獲句柄,準(zhǔn)備進(jìn)行捕獲p=pcap_open_live(device,8000,1,500,/**/pile(p,&fcode,filter_string,0,netmask);pcap_setfilter(p,/*第四步:捕獲數(shù)據(jù)包intpcap_loop(pcap_t*p,intcnt,pcap_handlercallback,u_char*/*MAC*/eth=(structlibnet_ethernet_hdr*)ptr;if(eth->ether_type==ntohs(ETHERTYPE_IP))出前執(zhí)行本條代碼*/函數(shù)getifaddrs()獲得所有網(wǎng)絡(luò)接口的地址,以及對(duì)應(yīng)的網(wǎng)絡(luò)掩碼、廣播地址、目標(biāo)地址等相關(guān)信息,再利用add_addr_to_iflist()、add_or_find_if()、get_instance()把網(wǎng)絡(luò)接口的信息增加到結(jié)構(gòu)鏈表pcap_if中,最后從鏈表中提取第一個(gè)接口作為捕獲設(shè)備。其()控的端口是虛擬網(wǎng)絡(luò)端口tap系列,所以我們?cè)趯?shí)現(xiàn)中省略第一步,將要的端口作tapMAC幀格式,為了定義這些結(jié)構(gòu)體,TCPIP數(shù)據(jù)報(bào)[15]IP地址的5.2MAC5.35.3以太網(wǎng)V2MACMAC幀的數(shù)據(jù)交給上一層的這個(gè)協(xié)議。例如,當(dāng)類型字段的值后一個(gè)字段是4字節(jié)的幀檢驗(yàn)序列FCS(使用CRC檢驗(yàn)。#define#defineSNAP_LEN1500MAC18字節(jié),所以SIZE_ETHERNE字節(jié),ETHER_ADDR_LEN表示源地址和目的地址的長(zhǎng)度都是6個(gè)字節(jié)。 /*MAC地址/*MAC地址IP協(xié)議都具有什么功能。如圖5.4所示是IP數(shù)據(jù)報(bào)的完整格式。總長(zhǎng)度 可選字段(總長(zhǎng)度 可選字段(度可變數(shù)據(jù)部首部(20字節(jié)5.4IPIP數(shù)據(jù)報(bào)由首部和數(shù)據(jù)兩部分組成,首部的前一部分是固定長(zhǎng) /* u_shortip_len;u_shortip_id;u_shortip_off;#defineIP_RF0x8000#defineIP_DF0x4000#defineIP_MF

/*區(qū)分服務(wù)/*總長(zhǎng)度/*標(biāo)識(shí)/*標(biāo)志和片偏移/*保留標(biāo)識(shí)/*不能分片/*還有分片/*標(biāo)志的掩碼/*生存時(shí)間/*協(xié)議/*首部檢驗(yàn)和in_addr/*#define#defineip_vhlip_vhl進(jìn)行處理,#define#define我們?cè)谑褂眠@個(gè)字段是一般都是IP_V(ip)*4形式。由5.1.1小節(jié),可以看到通信模塊的實(shí)現(xiàn)架構(gòu)主要有七個(gè)步驟,在具體的實(shí)現(xiàn)char*dev=/*捕獲設(shè)備的名稱char /*pcap_tchar*dev=/*捕獲設(shè)備的名稱char /*pcap_t/*數(shù)據(jù)包捕獲句柄char*filter_expchar /*過(guò)濾表達(dá)示bpf_u_int32net;/*編譯過(guò)濾表達(dá)示/*/*IP函數(shù)pile(),編譯過(guò)濾表達(dá)式,函數(shù)的調(diào)用形式為int pile(pcap_t*p,structbpf_program*program,char*buf,intoptimize,bpf_u_int32mask),其中第一個(gè)參數(shù)p為捕獲句柄,第三個(gè)參數(shù)buf指向用戶提供的過(guò)濾字符串,在本模塊中來(lái)自主函數(shù)傳入structbpf_program*fp),其中的第二個(gè)參數(shù)fp是在上一步中編譯過(guò)的過(guò)濾表達(dá)式。函數(shù)pcap_loop(),設(shè)置回調(diào)函數(shù),開(kāi)始捕獲數(shù)據(jù)包。函數(shù)的調(diào)用形式為intpcap_loop(pcap_t*p,intcnt,pcap_handlercallback,u_char*user),第一個(gè)參數(shù)是捕獲句回調(diào)函數(shù)的形式為voidcallback(u_char*userarg,conststructpcap_pkthdr*pkthdr,數(shù)是收到的數(shù)據(jù)包的pcap_pkthdr類型的指針,第三個(gè)參數(shù)是收到的數(shù)據(jù)包數(shù)據(jù)。staticintcount=/*包計(jì)數(shù)器staticintcount=/*包計(jì)數(shù)器conststructmonitor_ethernet /*conststructmonitor_ip /*IPconststructmonitor_tcp*tcp;constchar*payload;intsize_ip;int/*TCP/*Packetpayloadethernetethernet=(structip=(structmonitor_ip*)(packet+SIZE_ETHERNET);size_ip=IP_HL(ip)*4;To:%s\n",inet_ntoa(ip-case case }函數(shù)中的表示各種協(xié)議的常量都在/usr/include/netinet/in.h中定義,常用的一些協(xié)議和相應(yīng)的協(xié)議字段值如表5.1所示。5.112689顯示幫助信息的print_app_usage(),清理數(shù)據(jù)停止捕包的函數(shù)pcap_code()和5.2管理模塊實(shí)中GanymedSSH-2forJava函數(shù)庫(kù)實(shí)現(xiàn)了ssh2協(xié)議,支持SSH(命令執(zhí)行和s),本地和端口轉(zhuǎn)發(fā),本地?cái)?shù)據(jù)流轉(zhuǎn)發(fā),X11轉(zhuǎn)發(fā)和SCP。它包含了所有的加密的功能,并且還沒(méi)有依賴任何JCEprovider[16]。實(shí)現(xiàn)步驟如下:ConnectionConnectionconn=new/*它會(huì)返回一個(gè)布爾值,true代表成功登陸目的服務(wù)器,否則登陸失敗InputStreamstdout=newStreamGobbler(sess.getStdout());BufferedReaderInputStreamstdout=newStreamGobbler(sess.getStdout());BufferedReaderbr=newBufferedReader(newInputStreamReader(stdout));DateFormatDateFormatdf=newSimpleDateFormat("yyyyMMddHHmmss");Calendarcalendar=Calendar.getInstance();StringfileName=newFileWriterFileWriterfw=new窗口輸入相關(guān)的數(shù)據(jù)濾條件,具體窗口實(shí)現(xiàn)結(jié)果如下圖。5.5,tport80(80tcp協(xié)議的數(shù)據(jù)包)等[17]。更詳細(xì)的過(guò)濾規(guī)則請(qǐng)查看文獻(xiàn)[17]本章主要是根據(jù)前一章的設(shè)計(jì)方案進(jìn)行實(shí)現(xiàn)工作。5.1節(jié)首先給出了通信模塊的實(shí)現(xiàn)框架,然后介紹了實(shí)現(xiàn)過(guò)程中的主要結(jié)構(gòu)體函數(shù)。5.2節(jié)介紹了遠(yuǎn)端控制CPU:Inter(R)Core(TM)i3-2120CPU@操作系統(tǒng):Ubutnu14.04desktopOpenvSwitchgcc版本:4.8.2操作系統(tǒng):ubuntu13.04desktop兩虛擬機(jī)-一虛擬交換機(jī)的實(shí)驗(yàn)平臺(tái),需要的最重要的兩個(gè)程序就是KVM和OpenvSwitch。KVM的安裝非常簡(jiǎn)單,OpenvSwitch的安裝和配置有一定的復(fù)雜性,接下來(lái)我們分別簡(jiǎn)要介紹KVMOpenvSwitch的安裝配置過(guò)程。6.1Ubunt14.04desktopamd64版本,Linux3.14.1。$egrep-o'(vmx|svm)'首先檢查CPU是否支持安裝KVM,只有支持In -VT和$egrep-o'(vmx|svm)'$sudo$sudoapt-getinstallqemu-kvmlibvirt-binvirt-managerbridge-python語(yǔ)言寫(xiě)的通用API,帶有一套基于文本的虛擬機(jī)管理工具virsh;virt-manager是一套圖形界面管理工具;bridge-utils用于網(wǎng)絡(luò)橋接。$lsmod$lsmod|grep 明KVM可以成功運(yùn)行: OpenvSwitch在相應(yīng)版本的軟件環(huán)境就緒后,OVS包解壓到本地文件夾里,我們實(shí)驗(yàn)的版本是2.1.0,地址如下。$./configure$./configure–with-linux=/lib/modules/’uname-$sudomake$sudomakedatapath模塊,OpenvSwitchdatapath模塊需使用命令“l(fā)smod|grepbridgebridge模塊有沒(méi)有被加載,如果已經(jīng)加載則需要使用“rmmodbridge”刪除該模塊。$sudo$sudomake$sudo$sudomkdir-p$sudoovsdb-toolcreate/usr/local/etc/openvswitch/conf.db\KVM虛擬機(jī)的上網(wǎng)方式,KVM虛擬機(jī)可以有兩種上網(wǎng)模式。第一種,默認(rèn)方式為用戶模式網(wǎng)絡(luò)(UsermodeNetworking數(shù)據(jù)包通過(guò)NAT方式通過(guò)Networking$sudo$sudoapt-getinstallbridge-autoautoifaceloinetloopbackautoeth0ifaceeth0inetmanualautobr0ifacebr0inetstaticnetmaskbridge_portseth0bridge_fd0這樣就可以保證br0正確地工作。SocketTCPTCP報(bào)文段的數(shù)據(jù)部分。這樣在測(cè)試時(shí)可以即時(shí)顯示出包的內(nèi)容,用來(lái)判斷結(jié)實(shí)驗(yàn)平臺(tái)如圖6.1VM0MAC00:11:11:EE:EE:EE,IP地93VM100:22:33:EE:EE:EEIPVM0作為Socket文本傳輸程序的端,VM1作為Socket文本傳輸程序的server端,綁定的端口是8010。VM1VM26.2圖6.2端發(fā)送數(shù)據(jù)示意serverVM26.33131313131313131313131313131313131313131313131313131IPIP地址

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論