一種監控虛擬網絡流量的方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及虛擬化技術和信息安全技術領域,尤指一種監控內核虛擬機(KVM, Kernel-basedVirtualMachine)虛擬化環境中基于LinuxRridgelXinux系統的網橋)實 現的虛擬網絡流量的方法和裝置。
【背景技術】
[0002] 云計算是計算機和互聯網的又一次新的革命,它將計算和存儲轉移到了云端,用 戶可W通過使用輕量級的便攜式終端來進行復雜的計算和大容量的存儲。從技術的角度來 看,云計算不僅僅是一種新的概念,并行計算和虛擬化是實現云計算應用的主要技術手段。 由于硬件技術的快速發展,使得一臺普通的物理服務器的所具有性能遠遠超過普通的單一 用戶對硬件性能的需求。因此,通過虛擬化的手段,將一臺物理服務器虛擬為多臺虛擬機, 提供虛擬化服務成為了構建公有云和企業私有云的技術基礎。
[0003] 虛擬化在帶來技術變革的同時,也提出了新的虛擬網絡安全監控問題。傳統的網 絡安全監控通常采用在安全域的網絡邊界、W及需要監聽的安全域內的網絡鏈路上旁路式 部署網絡安全監控產品,如入侵檢測系統(IDS,IntrusionDetectionSystems)、安全審 計系統等。虛擬化技術對網絡工程的最大影響是使得傳統的物理網絡邊界不再清晰的存 在,從而無法找到網絡安全域的網絡流的物理匯聚點,也就使得傳統網絡安全監控產品無 法找到合適的部署位置來保護虛擬網絡安全域的邊界安全。由于虛擬交換機的存在,使得 連接在同一臺虛擬交換機上的兩臺虛擬機之間的流量在未劃分虛擬局域網(vlan,Virtual LocalArea化twork)或者存在軟路由的情況下,不會被轉發到物理網絡上,送樣即使鏡像 虛擬化服務器的全部物理端口網絡流量,也無法監聽送部分僅存在于虛擬網絡上的流量。
[0004] 使用安全虛擬機監聽或者導出被監聽流量是一種可行的監控虛擬網絡中全流量 (包括不被轉發到物理網絡上的流量)的方法,如趨勢科技、啟明星辰等安全公司都發布有 利用安全虛擬機實現入侵檢測的產品和方案。在VMware平臺上,虛擬交換機可W配置混雜 端口組,把安全虛擬機接入到該混雜端口組,從而實現監聽到在虛擬交換機上交換的所有 網絡數據包。在Xen或KVM平臺上,若使用化envswitch組件作為虛擬交換機,則也可W 通過端口鏡像的方式,實現類似混雜端口組的功能。但是,目前市場上存在大量直接使用 Linux化idge作為虛擬交換機模塊的KVM虛擬化環境,Linux化idge并不支持鏡像其上的 數據包到特定虛擬端口上,因此安全虛擬機將無法直接部署在送樣的環境上,而現有技術 并沒有提供監控基于Linux化idge實現的虛擬網絡流量的方法。
【發明內容】
[0005] 為了解決上述問題,本發明提出了一種監控虛擬網絡流量的方法和裝置,能夠在 KVM平臺上,虛擬網絡層使用Linux化idge作為虛擬交換機模塊時,在不修改LinuxBridg 和安全虛擬機的內核代碼的前提下對虛擬網絡流量進行監控。
[0006] 為了達到上述目的,本發明提出了一種監控虛擬網絡流量的方法,應用于內核虛 擬機KVM虛擬化環境中基于Linux化idge實現的虛擬網絡,預先在虛擬網絡的宿主系統上 設置監控代理,并將宿主系統中的Linux化idge的工作模式設置為混雜模式;其中,監控 代理用于捕獲連接多臺虛擬機的Linux化idge的二層數據包;
[0007] 該方法包括:
[0008] 監控代理捕獲所有通過Linux化idge的二層數據包;
[0009] 監控代理判斷出需要對捕獲的數據包進行安全監控,將捕獲的數據包發送給安全 虛擬機。
[0010] 優選地,所述監控代理判斷出需要對捕獲的數據包進行安全監控包括:
[0011] 所述監控代理獲取所述捕獲的數據包的源媒體訪問控制MC地址和目的MC地 址,根據獲得的源MC地址和目的MC地址確定發送和接收捕獲的數據包的虛擬機所在的 業務域,根據所述業務域對應的安全策略判斷出需要對所述獲得的設備發送的數據包進行 安全監控。
[0012] 優選地,該方法還包括:
[0013] 所述監控代理判斷出不需要對所述捕獲的數據包進行安全監控,丟棄所述捕獲的 數據包。
[0014] 本發明還提出了一種監控虛擬網絡流量的裝置,至少包括:
[0015] 混雜監聽模塊,用于捕獲所有通過Linux化idge的二層數據包;
[0016] 監聽策略模塊,用于判斷出需要對捕獲的數據包進行安全監控,將捕獲的數據包 發送給安全虛擬機。
[0017] 優選地,所述監聽策略模塊還用于:
[0018] 判斷出不需要對所述捕獲的數據包進行安全監控,丟棄所述捕獲的數據包。
[0019] 與現有技術相比,本發明包括:監控代理捕獲所有通過Linux化idge的二層數據 包;監控代理判斷出需要對捕獲的數據包進行安全監控,將捕獲的數據包發送給安全虛擬 機。通過本發明的方案,監控代理在捕獲到通過Linux化idge的二層數據包后,將需要進行 安全監控的數據包發送給安全虛擬機進行安全檢測,從而實現對虛擬網絡流量進行監控。
【附圖說明】
[0020] 下面對本發明實施例中的附圖進行說明,實施例中的附圖是用于對本發明的進一 步理解,與說明書一起用于解釋本發明,并不構成對本發明保護范圍的限制。
[0021] 圖1為本發明的監控虛擬網絡流量的方法流程圖;
[0022] 圖2為本發明的監控虛擬網絡流量的裝置的結構組成示意圖;
[0023] 圖3為本發明實施例中KVM宿主機上所有相關組件和模塊的部署方式的示意圖。
【具體實施方式】
[0024] 為了便于本領域技術人員的理解,下面結合附圖對本發明作進一步的描述,并不 能用來限制本發明的保護范圍。
[0025] 參見圖1,本發明提出了一種監控虛擬網絡流量的方法,應用于KVM虛擬化環境中 基于Linux化idge實現的虛擬網絡,預先在虛擬網絡的宿主系統上設置監控代理,并將宿 主系統中的Linux化idge的工作模式設置為混雜模式。
[0026] 其中,監控代理用于捕獲連接多臺虛擬機的Linux化idge的二層數據包。
[0027] 其中,可W采用現有的方法將Linux化idge的工作模式設置為混雜模式。
[0028] 將Linux化idge的工作模式設置為混雜模式后,當數據包到達宿主系統的內 核時,將數據包轉發給LinuxBridge,由于Linux化idge的工作模式為混雜模式,Linux 化idge在處理數據包時,會對數據包進行一次克隆,并把克隆的數據包中的設備改為Linux Bridge,然后將數據包發送給內核;內核接收到數據包后,將數據包發送到宿主機的協議找 中。
[0029] 該方法包括:
[0030] 步驟100、監控代理捕獲所有通過Linux化idge的二層數據包。
[0031] 本步驟中,監控代理可W采用系統函數ioctl獲得Linux化idge的接口索引,根 據獲得的接口索引采用bind機制判斷數據包是否來自于LinuxBridge;如果是,則W原始 套接字的方式實現對所有通過Linux化idge的二層數據包的捕獲。
[0032] 步驟101、監控代理判斷出需要對捕獲的數據包進行安全監控,將捕獲的數據包發 送給安全虛擬機。
[0033] 本步驟中,監控代理判斷出需要對捕獲的數據包進行安全監控包括:
[0034] 監控代理獲取捕獲的數據包的源媒體訪問控制(MAC,MediaAccessControl)地 址和目的MAC地址,根據獲得的源MAC地址和目的MAC地址確定發送和接收