專利名稱:一種通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)領(lǐng)域,尤其涉及一種通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法。
背景技術(shù):
近年來,網(wǎng)絡(luò)安全已經(jīng)引起廣泛的關(guān)注,隨著網(wǎng)絡(luò)用戶的普及,網(wǎng)絡(luò)的安全應(yīng)用也 變得越來越重要,其中網(wǎng)絡(luò)的控制就顯得尤其重要。網(wǎng)絡(luò)控制包括對網(wǎng)絡(luò)的開啟和關(guān)閉以 及對網(wǎng)絡(luò)數(shù)據(jù)的截獲分析等。隨著計算機(jī)技術(shù)的不斷更新,虛擬化技術(shù)得到了廣泛的應(yīng)用, 虛擬化技術(shù)已經(jīng)滲透到了計算機(jī)的各個領(lǐng)域,應(yīng)用虛擬化技術(shù)對計算機(jī)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行控制 也是未來的發(fā)展趨勢。在現(xiàn)有技術(shù)中,計算機(jī)開機(jī)后,連通網(wǎng)線,計算機(jī)會自動連接到hternet網(wǎng)絡(luò)或 工作網(wǎng)絡(luò),進(jìn)行正常的網(wǎng)絡(luò)數(shù)據(jù)傳輸,因此,容易受到網(wǎng)絡(luò)的攻擊,從而使計算機(jī)的網(wǎng)絡(luò)安 全得不到保護(hù)。虛擬機(jī)(virtual machine, VM)是支持多操作系統(tǒng)并行運行在單個物理服務(wù) 器上的一種系統(tǒng),能夠提供更加有效的底層硬件使用。如果在某虛擬機(jī)中出現(xiàn)程序凍結(jié) 現(xiàn)象,這并不會影響運行在虛擬機(jī)外的程序操作和操作系統(tǒng)的正常工作;虛擬機(jī)監(jiān)視器 (Virtual Machine Monitor,VMM)是由 Vanderpool 技術(shù)引入的一個軟件層。一個 VMM 可 以是一個宿主,它可以完全控制系統(tǒng)中的處理器和其他的硬件資源,還可以對運行在他之 上的VM分配資源,如處理器、物理內(nèi)存、中斷管理、輸入輸出端口 I/O分配等;虛擬化技術(shù) (VirtualizationTechnology, VT)是一個廣義的術(shù)語,在計算機(jī)方面通常是指計算機(jī)元器 件在虛擬的基礎(chǔ)上而不是真實的基礎(chǔ)上運行。虛擬化技術(shù)可以擴(kuò)大硬件的容量,簡化軟件 的重新配置過程。CPU的虛擬化技術(shù)可以單CPU模擬多CPU并行,允許一個平臺同時運行多 個操作系統(tǒng),并且應(yīng)用程序都可以在相互獨立的空間內(nèi)運行而互不影響,從而顯著提高計 算機(jī)的工作效率。虛擬化技術(shù)與多任務(wù)以及超線程技術(shù)是完全不同的。多任務(wù)是指在一個操作系統(tǒng) 中多個程序同時并行運行。而在虛擬化技術(shù)中,則可以同時運行多個操作系統(tǒng),而且每一個 操作系統(tǒng)中都有多個程序運行,每一個操作系統(tǒng)都運行在一個虛擬的CPU或者是虛擬主機(jī) 上。而超線程技術(shù)只是單CPU模擬雙CPU來平衡程序運行性能,這兩個模擬出來的CPU是 不能分離的,只能協(xié)同工作。純軟件虛擬軟件有VMWare Workstation, VMWare PC,純軟件虛擬具體的優(yōu)勢表現(xiàn) 在減少虛擬機(jī)的相關(guān)開銷和支持更廣泛的操作系統(tǒng)。原因是使用純軟件的VMM后使得原 來系統(tǒng)中的特權(quán)等級發(fā)生變化,使得VMM和OS之間的通信增加二進(jìn)制的轉(zhuǎn)換,以通過提供 到物理資源(如處理器、內(nèi)存、存儲、顯卡和網(wǎng)卡等)的接口,模擬硬件環(huán)境。而CPU的虛擬化技術(shù)是一種硬件方案,支持虛擬技術(shù)的CPU帶有特別優(yōu)化過的指 令集來控制虛擬過程,通過這些指令集,VMM會很容易提高性能,相比軟件的虛擬實現(xiàn)方式 會很大程度上提高性能。虛擬化技術(shù)可提供基于芯片的功能,借助兼容VMM軟件能夠改進(jìn) 純軟件解決方案。由于虛擬化硬件可提供全新的架構(gòu),支持操作系統(tǒng)直接在上面運行,從而無需進(jìn)行二進(jìn)制轉(zhuǎn)換,減少了相關(guān)的性能開銷,極大簡化了 VMM設(shè)計,進(jìn)而使VMM能夠按通 用標(biāo)準(zhǔn)進(jìn)行編寫,性能更加強大。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種在連通網(wǎng)絡(luò)的情況下,應(yīng)用虛擬化技術(shù) 可以控制計算機(jī)網(wǎng)絡(luò)的開啟和關(guān)閉,對網(wǎng)卡數(shù)據(jù)進(jìn)行截獲,以保護(hù)計算機(jī)的網(wǎng)絡(luò)安全的通 過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法。為解決上述技術(shù)問題,本發(fā)明提供一種通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法,所述方 法包括以下步驟當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)卡模塊,在 UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行監(jiān)控,控制網(wǎng)絡(luò)傳輸功能的開啟和關(guān)閉。在本發(fā)明中,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng) 卡模塊,在UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行控制,控制網(wǎng)絡(luò)傳輸功能的開 啟和關(guān)閉,從而實現(xiàn)對網(wǎng)卡的數(shù)據(jù)截獲或數(shù)據(jù)的傳輸,以保護(hù)計算機(jī)的網(wǎng)絡(luò)安全。
圖1是本發(fā)明實施例提供的通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法的實現(xiàn)流程示意圖。圖2是本發(fā)明實施例提供的接收網(wǎng)絡(luò)數(shù)據(jù)的控制實現(xiàn)流程示意圖。圖3是本發(fā)明實施例提供的發(fā)送網(wǎng)絡(luò)數(shù)據(jù)的控制實現(xiàn)流程示意圖。圖4是本發(fā)明實施例提供的基于UEFI的BIOS的總體邏輯架構(gòu)圖。
具體實施例方式為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié) 合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅 用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教?擬的網(wǎng)卡模塊,在UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行監(jiān)控,控制網(wǎng)絡(luò)傳輸功 能的開啟和關(guān)閉。當(dāng)網(wǎng)絡(luò)傳輸功能處于開啟狀態(tài)時,外部網(wǎng)絡(luò)可以通過網(wǎng)線將網(wǎng)絡(luò)數(shù)據(jù)傳 輸?shù)骄W(wǎng)卡上,再將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)絡(luò)控制模塊,由虛擬的網(wǎng)絡(luò)控制模塊將解析后 的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)阶罱K的操作系統(tǒng)上,同樣,由操作系統(tǒng)發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)通過中間的虛擬 的網(wǎng)絡(luò)控制模塊傳輸?shù)秸嬲木W(wǎng)卡上,再由網(wǎng)卡傳輸?shù)骄W(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)傳輸功能處于關(guān)閉狀 態(tài)時,外部網(wǎng)絡(luò)傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)會傳輸?shù)秸鎸嵉木W(wǎng)卡上,再傳輸?shù)教摂M的網(wǎng)絡(luò)控制模塊,虛 擬的網(wǎng)絡(luò)控制模塊會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行攔截,不會傳輸?shù)讲僮飨到y(tǒng);同樣,當(dāng)操作系統(tǒng)將網(wǎng)絡(luò) 數(shù)據(jù)發(fā)送到虛擬的網(wǎng)絡(luò)控制模塊時,虛擬的網(wǎng)絡(luò)控制模塊也會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行攔截,不會 傳輸?shù)秸鎸嵉木W(wǎng)卡上。這樣就可以利用虛擬的中間層(網(wǎng)絡(luò)控制模塊)對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行控 制。請參閱圖1,為本發(fā)明實施例提供的通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法的實現(xiàn)流程, 其包括以下步驟在步驟SlOl中,網(wǎng)線將接收到來自網(wǎng)絡(luò)傳輸過來的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)適配器(網(wǎng)卡)上;在本發(fā)明實施例中,網(wǎng)卡本身是LAN (局域網(wǎng))的設(shè)備,通過網(wǎng)關(guān)、路由器等設(shè)備則 可以將這個局域網(wǎng)掛接到hternet上。而hternet本身就是無數(shù)個這樣的局域網(wǎng)組成的。 網(wǎng)卡工作在OSI (Open System Interconnection)結(jié)構(gòu)的數(shù)據(jù)鏈路層和物理層上。在步驟S102中,所述網(wǎng)絡(luò)適配器將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)絡(luò)適配器上;在步驟S103中,虛擬的網(wǎng)絡(luò)適配器將網(wǎng)絡(luò)數(shù)據(jù)傳送到解析模塊;在步驟S104中,解析模塊將解析后的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)轿⑿筒僮飨到y(tǒng)(例如長城 微型操作系統(tǒng));在步驟S105中,由微型操作系統(tǒng)將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M機(jī)監(jiān)視器;在步驟S106中,虛擬機(jī)監(jiān)視器將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡Miniport協(xié)議的IO ;在步驟S107中,通過在UEFI BIOS中設(shè)置網(wǎng)絡(luò)控制功能的開啟和關(guān)閉;在步驟S108中,通過網(wǎng)卡Miniport協(xié)議的IO截獲網(wǎng)絡(luò)的傳輸數(shù)據(jù),判斷是否需 要傳輸?shù)讲僮飨到y(tǒng)中;在步驟S109中,如果網(wǎng)絡(luò)控制功能開啟,則傳輸?shù)讲僮飨到y(tǒng)上;如果網(wǎng)絡(luò)控制功 能關(guān)閉,則截獲網(wǎng)絡(luò)數(shù)據(jù)。請參閱圖2,為本發(fā)明實施例提供的接收網(wǎng)絡(luò)數(shù)據(jù)的控制實現(xiàn)流程,其實現(xiàn)過程如 下計算機(jī)開機(jī)連通網(wǎng)絡(luò)后,執(zhí)行步驟001 網(wǎng)絡(luò)通過網(wǎng)線將網(wǎng)絡(luò)數(shù)據(jù)以數(shù)據(jù)包的形 式傳輸?shù)骄W(wǎng)絡(luò)適配器上。而后執(zhí)行步驟002 :NIC (network interface card,網(wǎng)卡)把網(wǎng)絡(luò)數(shù)據(jù)從網(wǎng)線接收 到硬件FIF0(First in, First out,先進(jìn)先出的數(shù)據(jù)緩存器),當(dāng)硬件FIFO接收的網(wǎng)絡(luò)數(shù) 據(jù)達(dá)到數(shù)據(jù)限制時,網(wǎng)絡(luò)數(shù)據(jù)開始被DMA (Direct MemoryAccess,存儲器直接訪問)到ring buffer (系統(tǒng)內(nèi)存),當(dāng)整個數(shù)據(jù)包被復(fù)制到ring buffer,頭指針被寫入,CBA (寫指針寄存 器)指向數(shù)據(jù)包的結(jié)尾,然后利用CR(命令寄存器)設(shè)置相應(yīng)的工作模式。步驟003 調(diào)用網(wǎng)卡MiniPort Driver,負(fù)責(zé)同真正的網(wǎng)卡數(shù)據(jù)交換,網(wǎng)卡 MiniPort Driver是一個虛擬的網(wǎng)卡驅(qū)動,調(diào)用Driver服務(wù)程序主要負(fù)責(zé)清除CR設(shè)置的工 作模式,并設(shè)置當(dāng)前讀指針寄存器CAPR。步驟004 當(dāng)VMM監(jiān)控到有網(wǎng)絡(luò)數(shù)據(jù)要從網(wǎng)卡發(fā)送的時候,協(xié)議解析記錄模塊分析 發(fā)送的數(shù)據(jù)包,將發(fā)送的數(shù)據(jù)包解析成高層協(xié)議,主要解決TCP/IPV4和UDP/IPV 4協(xié)議。步驟005 =Gff Mini OS,為長城獨立全新開發(fā)的一個微型操作系統(tǒng),完成CPU保護(hù) 模式初始化,⑶T、IDT、TR、CR0\CR4的處理,虛擬內(nèi)存和物理內(nèi)存管理,模塊管理等,為VMM 和其它模塊提供運行環(huán)境。步驟006 :VMM主要負(fù)責(zé)監(jiān)控到OS和BIOS中的網(wǎng)絡(luò)10和硬盤10和這兩類設(shè)備的 外部Interrupt (中斷)。步驟007 調(diào)用UEFI BIOS中的UNDI服務(wù)來設(shè)置網(wǎng)絡(luò)控制功能的開啟或關(guān)閉。步驟008 =VMM將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡Miniport協(xié)議10模塊,如果UEFIBI0S中 設(shè)置網(wǎng)絡(luò)控制功能為開啟的狀態(tài),網(wǎng)卡Miniport協(xié)議10模塊將網(wǎng)絡(luò)數(shù)據(jù)直接發(fā)送到PCI 總線上,最終傳輸?shù)讲僮飨到y(tǒng)上;若在UEFI BIOS中將網(wǎng)絡(luò)控制功能設(shè)置為關(guān)閉,網(wǎng)卡 Miniport協(xié)議10模塊將在Port 1/0時(計算機(jī)內(nèi)有程序調(diào)用了 in/out相關(guān)指令),會調(diào)用VMM處理函數(shù),從RBSTART Register (—個中間寄存器)獲得網(wǎng)絡(luò)數(shù)據(jù)的物理地址,并將 其截獲。步驟009 網(wǎng)絡(luò)控制功能設(shè)置為開啟狀態(tài),網(wǎng)絡(luò)數(shù)據(jù)沒有被截獲,并直接傳輸?shù)讲?作系統(tǒng)上。步驟010 網(wǎng)絡(luò)控制功能設(shè)置為關(guān)閉狀態(tài),網(wǎng)絡(luò)數(shù)據(jù)被截獲,不會傳輸?shù)讲僮飨到y(tǒng)中。請參閱圖3,為本發(fā)明實施例提供的發(fā)送網(wǎng)絡(luò)數(shù)據(jù)的控制實現(xiàn)流程,其實現(xiàn)過程如 下網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送流程與接收流程是一個逆過程,同樣需要在UEFI BIOS中的UNDI 服務(wù)中設(shè)置網(wǎng)絡(luò)控制模塊的開啟和關(guān)閉,當(dāng)操作系統(tǒng)中的網(wǎng)絡(luò)數(shù)據(jù)需要發(fā)送時,就會產(chǎn)生 一個out port中斷,此時網(wǎng)卡Miniport協(xié)議IO模塊就會判斷BIOS中的網(wǎng)絡(luò)控制功能是 否開啟,如果設(shè)置為開啟,就會將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)絍MM直到通過網(wǎng)線傳輸?shù)骄W(wǎng)絡(luò)。如果設(shè)置 為關(guān)閉,網(wǎng)卡Miniport協(xié)議IO模塊會從4個TSAD獲得網(wǎng)絡(luò)數(shù)據(jù)的地址、數(shù)據(jù)長度以及狀 態(tài),并將其截獲,不向下進(jìn)行發(fā)送。由于發(fā)送與接收數(shù)據(jù)是一個逆過程,所以在這里就不進(jìn) 行詳細(xì)的復(fù)述。匪IO的原理和port 1/0類似,所不同是register (寄存器)還被映射到memory map area(內(nèi)存表)上,驅(qū)動可以靠內(nèi)存來操作NIC。主要的接收和發(fā)送流程同上述流程基 本一致。MMIO發(fā)送數(shù)據(jù)的截獲方法主要是監(jiān)測到Port 10有輸出時,會檢查TxDesc Ring, 把Own為1的數(shù)據(jù)都檢查一次,這些都是要發(fā)送的數(shù)據(jù),獲得發(fā)送數(shù)據(jù)長度,緩存區(qū)物理地 址,并截獲其內(nèi)容;MMIO接收數(shù)據(jù)的截獲方法是當(dāng)有Port 10有中斷發(fā)生時,服務(wù)程序會讀 取ISR的ROK位,檢查RxDesc Ring,把OWN為0的都檢查一次,將物理地址轉(zhuǎn)換為線性地 址,截獲其數(shù)據(jù)。請參閱圖4,為本發(fā)明實施例提供的基于UEFI的BIOS的總體邏輯架構(gòu),由于其是 現(xiàn)有技術(shù),在本發(fā)明中只對其做簡單介紹?;赨EFI的BIOS在邏輯上分為三層最底層是 基于UEFI的BIOS運行的硬件環(huán)境;中間層是基于UEFI的BIOS所支持的BIOS運行的平臺 和驅(qū)動環(huán)境;上層是應(yīng)用程序模塊。其中底層硬件模塊(Hardware)為基于UEFI的BIOS的運行以及上層應(yīng)用程序的 運行提供了硬件支持??蚣軈f(xié)議模塊(Pre-EFI Modules)為基于UEFI的BIOS Driver定 義了數(shù)據(jù)接口協(xié)議。VMM控制模塊為監(jiān)控層,負(fù)責(zé)監(jiān)控底層的硬件資源,并且為驅(qū)動層提供 運行環(huán)境。驅(qū)動層為上層應(yīng)用程序提供相關(guān)的驅(qū)動。網(wǎng)絡(luò)控制模塊對網(wǎng)絡(luò)數(shù)據(jù)的傳輸啟到 一個開關(guān)的作用。UEFI接口模塊根據(jù)UEFI規(guī)范協(xié)議定義了上層應(yīng)用程序接口,通過調(diào)用 UEFI接口模塊14定義的上層應(yīng)用程序接口,實現(xiàn)底層硬件與上層應(yīng)用之間的交互。綜上所述,本發(fā)明實施例當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸 到虛擬的網(wǎng)卡模塊,在UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行控制,控制網(wǎng)絡(luò)傳 輸功能的開啟和關(guān)閉,從而實現(xiàn)對網(wǎng)卡的數(shù)據(jù)截獲或數(shù)據(jù)的傳輸,以保護(hù)計算機(jī)的網(wǎng)絡(luò)安 全。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法,其特征在于,所述方法包括以下步驟當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)卡模塊,在UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行監(jiān)控,控制網(wǎng)絡(luò)傳輸功能的開啟和關(guān)閉。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)網(wǎng)絡(luò)傳輸功能處于開啟狀態(tài)時,外部網(wǎng)絡(luò) 可以通過網(wǎng)線將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上,再將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)絡(luò)控制模塊,由虛 擬的網(wǎng)絡(luò)控制模塊將解析后的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)阶罱K的操作系統(tǒng)上,同樣,由操作系統(tǒng)發(fā)出 的網(wǎng)絡(luò)數(shù)據(jù)通過中間的虛擬的網(wǎng)絡(luò)控制模塊傳輸?shù)秸嬲木W(wǎng)卡上,再由網(wǎng)卡傳輸?shù)骄W(wǎng)絡(luò)。
3.如權(quán)利要求1所述的方法,其特征在于,當(dāng)網(wǎng)絡(luò)傳輸功能處于關(guān)閉狀態(tài)時,外部網(wǎng)絡(luò) 傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)會傳輸?shù)秸鎸嵉木W(wǎng)卡上,再傳輸?shù)教摂M的網(wǎng)絡(luò)控制模塊,虛擬的網(wǎng)絡(luò)控制 模塊會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行攔截,不會傳輸?shù)讲僮飨到y(tǒng);同樣,當(dāng)操作系統(tǒng)將網(wǎng)絡(luò)數(shù)據(jù)發(fā)送到虛 擬的網(wǎng)絡(luò)控制模塊時,虛擬的網(wǎng)絡(luò)控制模塊也會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行攔截,不會傳輸?shù)秸鎸嵉?網(wǎng)卡上。
4.如權(quán)利要求2所述的方法,其特征在于,所述將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)絡(luò)控制模 塊的步驟之前,還包括以下步驟網(wǎng)卡把網(wǎng)絡(luò)數(shù)據(jù)從網(wǎng)線接收到硬件FIFO,當(dāng)硬件FIFO接收的網(wǎng)絡(luò)數(shù)據(jù)達(dá)到數(shù)據(jù)限制 時,網(wǎng)絡(luò)數(shù)據(jù)開始被DMA到ring buffer系統(tǒng)內(nèi)存,當(dāng)整個數(shù)據(jù)包被復(fù)制到ring buffer,頭 指針被寫入,CBA寫指針寄存器指向數(shù)據(jù)包的結(jié)尾,然后利用CR命令寄存器設(shè)置相應(yīng)的工 作模式。
5.如權(quán)利要求4所述的方法,其特征在于,所述利用CR命令寄存器設(shè)置相應(yīng)的工作模 式的步驟之后,還包括以下步驟調(diào)用網(wǎng)卡MiniPort Driver,負(fù)責(zé)同真正的網(wǎng)卡數(shù)據(jù)交換,網(wǎng)卡MiniPortDriver是一 個虛擬的網(wǎng)卡驅(qū)動,調(diào)用Driver服務(wù)程序主要負(fù)責(zé)清除CR設(shè)置的工作模式,并設(shè)置當(dāng)前讀 指針寄存器CAPR。
6.如權(quán)利要求5所述的方法,其特征在于,所述由虛擬的網(wǎng)絡(luò)控制模塊將解析后的網(wǎng) 絡(luò)數(shù)據(jù)傳輸?shù)阶罱K的操作系統(tǒng)上的步驟,具體為VMM將網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡Miniport協(xié)議IO模塊,如果UEFI BIOS中設(shè)置網(wǎng)絡(luò)控制功 能為開啟的狀態(tài),網(wǎng)卡Miniport協(xié)議IO模塊將網(wǎng)絡(luò)數(shù)據(jù)直接發(fā)送到PCI總線上,最終傳輸 到操作系統(tǒng)上。
7.如權(quán)利要求3所述的方法,其特征在于,所述虛擬的網(wǎng)絡(luò)控制模塊會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn) 行攔截,不會傳輸?shù)讲僮飨到y(tǒng)的步驟,具體為若在UEFI BIOS中將網(wǎng)絡(luò)控制功能設(shè)置為關(guān)閉,網(wǎng)卡Miniport協(xié)議IO模塊將在Port I/O時,會調(diào)用VMM處理函數(shù),從RBSTART Register中間寄存器獲得網(wǎng)絡(luò)數(shù)據(jù)的物理地址, 并將其截獲,不會傳輸?shù)讲僮飨到y(tǒng)中。
8.如權(quán)利要求2所述的方法,其特征在于,所述由操作系統(tǒng)發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)通過中間 的虛擬的網(wǎng)絡(luò)控制模塊傳輸?shù)秸嬲木W(wǎng)卡上,再由網(wǎng)卡傳輸?shù)骄W(wǎng)絡(luò)的步驟,具體為當(dāng)操作系統(tǒng)中的網(wǎng)絡(luò)數(shù)據(jù)需要發(fā)送時,就會產(chǎn)生一個out port中斷,此時網(wǎng)卡 Miniport協(xié)議IO模塊就會判斷BIOS中的網(wǎng)絡(luò)控制功能是否開啟,如果設(shè)置為開啟,就會將 網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)絍MM直到通過網(wǎng)線傳輸?shù)骄W(wǎng)絡(luò)。
9.如權(quán)利要求3所述的方法,其特征在于,所述當(dāng)操作系統(tǒng)將網(wǎng)絡(luò)數(shù)據(jù)發(fā)送到虛擬的網(wǎng)絡(luò)控制模塊時,虛擬的網(wǎng)絡(luò)控制模塊也會將網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行攔截,不會傳輸?shù)秸鎸嵉木W(wǎng)卡 上的步驟,具體為如果網(wǎng)絡(luò)控制功能設(shè)置為關(guān)閉,網(wǎng)卡Miniport協(xié)議IO模塊會從4個TSAD獲得網(wǎng)絡(luò)數(shù) 據(jù)的地址、數(shù)據(jù)長度以及狀態(tài),并將其截獲,不向下進(jìn)行發(fā)送,不會傳輸?shù)秸鎸嵉木W(wǎng)卡上。
全文摘要
本發(fā)明適用于計算機(jī)領(lǐng)域,提供了一種通過虛擬機(jī)實現(xiàn)網(wǎng)絡(luò)控制的方法。所述方法包括以下步驟當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)骄W(wǎng)卡上時,網(wǎng)卡將所述網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)教摂M的網(wǎng)卡模塊,在UEFI BIOS中應(yīng)用虛擬的網(wǎng)卡模塊對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行監(jiān)控,控制網(wǎng)絡(luò)傳輸功能的開啟和關(guān)閉。本發(fā)明實現(xiàn)對網(wǎng)卡的數(shù)據(jù)截獲或數(shù)據(jù)的傳輸,以保護(hù)計算機(jī)的網(wǎng)絡(luò)安全。
文檔編號G06F9/455GK102147840SQ20101010918
公開日2011年8月10日 申請日期2010年2月5日 優(yōu)先權(quán)日2010年2月5日
發(fā)明者劉欣房, 宋靖, 林詩達(dá), 王淼, 賈兵, 顧文錦 申請人:中國長城計算機(jī)深圳股份有限公司