IPv6網(wǎng)絡中識別虛擬主機的方法和DPI設備的制作方法
【專利摘要】本公開涉及一種IPv6網(wǎng)絡中識別虛擬主機的方法和DPI設備。該方法包括接收、復制并轉發(fā)IPv6報文;提取所復制的IPv6報文中的報文頭;自報文頭中提取發(fā)送IPv6報文的源IPv6地址的接口地址;將接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配;如果接口地址中廠商代碼部分與接口地址特征庫中的任一個特征值相同,則確定IPv6報文由虛擬主機發(fā)出,否則,確定IPv6報文由物理主機發(fā)出。本公開在不安裝虛擬機檢測程序的情況下可以識別出發(fā)送報文的主機類型。
【專利說明】IPv6網(wǎng)絡中識別虛擬主機的方法和DPI設備
【技術領域】
[0001]本公開涉及IPv6網(wǎng)絡,特別地,涉及一種IPv6網(wǎng)絡中識別虛擬主機的方法和DPI(Deep Packet Inspect1n,深度包檢測)設備。
【背景技術】
[0002]虛擬機技術是目前比較流行的主機虛擬化技術,通過該技術可以在一臺實體物理主機上模擬出一個虛擬的主機環(huán)境,從而實現(xiàn)一臺主機上運行多個操作系統(tǒng)的目的。目前常用的虛擬機軟件有Vmware、VirtualBox等。
[0003]通過虛擬機技術,用戶可以在當前使用的主機上模擬一個物理主機環(huán)境,并使用這一虛擬主機進行上網(wǎng)。目前在網(wǎng)絡中存在各種報文分析的需求,需要網(wǎng)絡側能夠識別出終端側的虛擬機,例如,I拖N的檢測。
[0004]傳統(tǒng)檢測虛擬機的方法大致都是通過運行一個檢測程序來檢測操作系統(tǒng)的CPWD(CPU ID,計算機標識)、IDT (Interrupt Descriptor Table,中斷描述符表)表首地址、⑶T(Global Descriptor Table,全局描述符表)表首地址是否與物理主機的相關信息一致,如果不一致,則說明檢測程序是運行在虛擬主機中。
[0005]上述傳統(tǒng)的虛擬機檢測方法由于需要在終端上運行軟件,導致檢測有一定的局限性,例如,在一些不能在PC機上安裝軟件的場景下無法實現(xiàn)檢測,而且也比較容易被反檢測軟件屏蔽。
【發(fā)明內容】
[0006]本公開鑒于以上問題中的至少一個提出了新的技術方案。
[0007]本公開在其一個方面提供了一種IPv6網(wǎng)絡中識別虛擬主機的方法,其在不安裝虛擬機檢測程序的情況下可以識別出發(fā)送報文的主機類型。
[0008]本公開在其另一方面提供了一種DPI設備,其在不安裝虛擬機檢測程序的情況下可以識別出發(fā)送報文的主機類型。
[0009]根據(jù)本公開,提供一種IPv6網(wǎng)絡中識別虛擬主機的方法,包括:
[0010]接收、復制并轉發(fā)IPv6報文;
[0011]提取所復制的IPv6報文中的報文頭;
[0012]自報文頭中提取發(fā)送IPv6報文的源IPv6地址的接口地址;
[0013]將接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配;
[0014]如果接口地址中廠商代碼部分與接口地址特征庫中的任一個特征值相同,則確定IPv6報文由虛擬主機發(fā)出,否則,確定IPv6報文由物理主機發(fā)出。
[0015]在本公開的一些實施例中,源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關。
[0016]在本公開的一些實施例中,相應主機為虛擬主機或物理主機。
[0017]在本公開的一些實施例中,虛擬主機和物理主機的MAC地址中均帶有廠商代碼。
[0018]在本公開的一些實施例中,虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼。
[0019]根據(jù)本公開,還提供了一種DPI設備,包括:
[0020]報文處理單元,用于接收、復制并轉發(fā)IPv6報文;
[0021]報文頭提取單元,用于提取所復制的IPv6報文中的報文頭;
[0022]接口地址提取單元,用于自報文頭中提取發(fā)送IPv6報文的源IPv6地址的接口地址;
[0023]接口地址匹配單元,用于將接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配;
[0024]主機類型確定單元,用于如果接口地址中廠商代碼部分與接口地址特征庫中的任一個特征值相同,則確定IPv6報文由虛擬主機發(fā)出,否則,確定IPv6報文由物理主機發(fā)出。
[0025]在本公開的一些實施例中,源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關。
[0026]在本公開的一些實施例中,相應主機為虛擬主機或物理主機。
[0027]在本公開的一些實施例中,虛擬主機和物理主機的MAC地址中均帶有廠商代碼。
[0028]在本公開的一些實施例中,虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼。
[0029]在本公開的技術方案中,DPI設備對主機發(fā)出的IPv6報文進行了復制,進而可以對該報文做進一步的分析,在分析時可以根據(jù)報文頭中的源IPv6地址的接口地址來判斷該報文是由虛擬主機發(fā)出的還是由物理主機發(fā)出的。由于虛擬主機的接口地址是通過EU1-64算法生成的,而該算法又依賴于虛擬主機網(wǎng)卡的MAC地址,MAC地址中又包含有虛擬網(wǎng)卡的廠商代碼,因此,可以通過逐級分析得到廠商代碼信息,從而可以判斷出報文是來自虛擬主機還是來自物理主機。
【專利附圖】
【附圖說明】
[0030]此處所說明的附圖用來提供對本公開的進一步理解,構成本申請的一部分。在附圖中:
[0031]圖1是本公開通過IPv6網(wǎng)絡側部署的DPI設備檢測虛擬機的原理示意圖。
[0032]圖2是本公開一個實施例的IPv6網(wǎng)絡中識別虛擬主機的方法的流程示意圖。
[0033]圖3是本公開另一實施例的IPv6網(wǎng)絡中識別虛擬主機的方法的流程示意圖。
[0034]圖4是TCP報文格式示意圖。
[0035]圖5是本公開一個實施例的DPI設備的結構示意圖。
【具體實施方式】
[0036]下面將參照附圖描述本公開。要注意的是,以下的描述在本質上僅是解釋性和示例性的,決不作為對本公開及其應用或使用的任何限制。除非另外特別說明,否則,在實施例中闡述的部件和步驟的相對布置以及數(shù)字表達式和數(shù)值并不限制本公開的范圍。另外,本領域技術人員已知的技術、方法和裝置可能不被詳細討論,但在適當?shù)那闆r下意在成為說明書的一部分。
[0037]發(fā)明人發(fā)現(xiàn),IPv6網(wǎng)絡中,在IPv6終端的IP地址中引入了主機MAC (MediumAccess Control,媒體接入控制)地址這一與主機相關的信息,從而為虛擬機的檢測提供了可能。本公開下述實施例在這一技術原理的基礎上提出了相關的檢測方法,即,如圖1所示,在IPv6網(wǎng)絡上,通過在網(wǎng)絡側部署DPI設備對用戶上網(wǎng)流量進行檢測,從而可以發(fā)現(xiàn)該上網(wǎng)流量是來源于虛擬機還是物理機。
[0038]圖2是本公開一個實施例的IPv6網(wǎng)絡中識別虛擬主機的方法的流程示意圖。
[0039]如圖2所示,該實施例可以包括以下步驟:
[0040]S202,接收、復制并轉發(fā)IPv6報文;
[0041]為了保證報文的正常傳輸,并且不影響用戶的上網(wǎng)體驗,在接收到IPv6報文后,對整個報文進行復制后馬上進行報文的轉發(fā),以盡量減小對報文傳輸時延的影響。
[0042]S204,提取所復制的IPv6報文中的報文頭,該報文頭中包括128比特的報文源地址和128比特的報文目的地址,其中,源地址與目的地址均由前綴地址與接口地址構成,并且,128比特的前64比特是地址前綴,后64比特是接口地址。
[0043]S206,自報文頭中提取發(fā)送IPv6報文的源IPv6地址的接口地址,該接口地址可以通過EU1-64算法生成,而該算法又依賴于網(wǎng)卡的MAC地址,MAC地址又包含網(wǎng)卡的廠商代碼,如果該網(wǎng)卡為虛擬網(wǎng)卡,則算法所利用的地址為虛擬網(wǎng)卡的MAC地址,如果該網(wǎng)卡為物理網(wǎng)卡,則算法所利用的地址為物理網(wǎng)卡的MAC地址。依據(jù)包含廠商代碼的MAC地址生成的接口地址的前三個字節(jié)即為廠商代碼。
[0044]S208,將接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配,其中,虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼,例如,可以將接口地址的前三個字節(jié)與特征庫中的廠商代碼進行匹配。
[0045]S210,如果接口地址中廠商代碼部分與接口地址特征庫中的任一個特征值相同,即,接口地址中包含的廠商代碼處于特征庫中,則確定IPv6報文由虛擬主機發(fā)出,否則,確定IPv6報文由物理主機發(fā)出。
[0046]具體由哪個虛擬主機發(fā)出,可以根據(jù)廠商代碼進行識別。如果物理主機上運行了多個由不同軟件支持的虛擬機,則通過廠商代碼可以識別出該報文具體來自哪個虛擬主機。
[0047]在該實施例中,DPI設備對主機發(fā)出的IPv6報文進行了復制,進而可以對該報文做進一步的分析,在分析時可以根據(jù)報文頭中的源IPv6地址的接口地址來判斷該報文是由虛擬主機發(fā)出的還是由物理主機發(fā)出的。由于虛擬主機的接口地址是通過EU1-64算法生成的,而該算法又依賴于虛擬主機網(wǎng)卡的MAC地址,MAC地址中又包含有虛擬網(wǎng)卡的廠商代碼,因此,可以通過逐級分析得到廠商代碼信息,從而可以判斷出報文是來自虛擬主機還是來自物理主機。
[0048]同樣地,上述方法也適用于對物理主機的識別。
[0049]如果步驟S210檢測出該IPv6報文來自于物理主機,可以將IPv6報文頭中的源地址的接口地址中的廠商代碼部分與物理機網(wǎng)卡接口地址特征庫中的特征值進行匹配,查找出對應的物理網(wǎng)卡的廠商,進而可以知道該IPv6報文來自哪個物理主機。其中,物理機網(wǎng)卡接口地址特征庫中的特征值為各類物理網(wǎng)卡的廠商代碼。
[0050]進一步地,源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關,即,接口地址是利用EU1-64算法基于相應主機的網(wǎng)卡的MAC地址生成,其中,EU1-64算法可以參照相關現(xiàn)有技術。
[0051]其中,相應主機為虛擬主機或物理主機。并且,虛擬主機和物理主機的MAC地址中均帶有廠商代碼。
[0052]接下來,通過一個具體實例對上述實施例作進一步說明。
[0053]如圖3所示,在IPv6網(wǎng)絡中,終端節(jié)點的IPv6地址的接口地址部分通常是通過EU1-64算法生成的,這個算法依賴于網(wǎng)卡的MAC地址。在虛擬機中,為了保證不影響宿主機,虛擬機都要虛擬出一個網(wǎng)卡,這個網(wǎng)卡的MAC地址帶有虛擬機軟件的軟件特征(例如,廠商代碼),例如,Vmware的虛擬網(wǎng)卡MAC地址的廠商代碼部分為“00-05-69、00-0C_29或者00-50-56”。因此,其生成的IPv6接口地址的前三個字節(jié)即為這些廠商代碼,同時又由于每個廠商都有特定的取值,不可能混用,因此該值可以作為DPI檢測的一個虛擬機廠商的特征碼,一旦檢測到這些值既可以確定這個報文是由虛擬機軟件發(fā)出的。
[0054]在前述實施例中,可以通過識別IPv6地址中的接口地址廠商代碼特征值來識別出IPv6報文是否由虛擬主機發(fā)出。
[0055]如果IPv6報文是由虛擬主機發(fā)出,可以進一步分析這一虛擬機發(fā)送的IPv6報文的內容,以在雙棧主機環(huán)境中可以根據(jù)IPv6報文來發(fā)現(xiàn)IPv4虛擬機。
[0056]如果報文中封裝的是TCP (Transmiss1n Control Protocol,傳輸控制協(xié)議)協(xié)議包,分析系統(tǒng)可以記錄下該TCP報文的序號。
[0057]TCP報文的格式如圖4所示。
[0058]其中,序號字段就是需要記錄的字段。
[0059]TCP序號字段通常的生成方式如下:
[0060]每個TCP連接的初始序號的生成是按照操作系統(tǒng)內部的計時器計算生成的,TCP標準推薦這個計數(shù)值在操作系統(tǒng)計時器間隔4ms以后增加I。
[0061]后續(xù)報文的序號是以該報文第一個字節(jié)在整個TCP連接中發(fā)送的字節(jié)數(shù)加上初始序號作為這個TCP報文的序號。
[0062]例如,根據(jù)操作系統(tǒng)內部時間計算之后得到一個TCP的初始連接序號為ΟχΟΟΟΟΟΟΟΙΗ,第一發(fā)送的TCP報文序號即為ΟχΟΟΟΟΟΟΟΙΗ,如第一個報文的字節(jié)長度為1000 字節(jié)(16 進制為 0X000003E8H),則第二個 TCP 報文的序號為 0x00000001H+0x000003E8H=0x000003E9H。
[0063]從TCP序號的生成方式來看,一臺物理主機或者虛擬機,其TCP序號產生具有一定的連續(xù)性,可以通過分析主機發(fā)送的報文數(shù)量和初始報文的TCP序號識別出來。如果這臺物理主機或者虛擬機是一臺雙棧主機,其操作系統(tǒng)會使用IPv4/IPv6協(xié)議棧來發(fā)送TCP報文,通過TCP報文序號的分析就可以知道哪個IPv4地址和哪個IPv6地址是屬于同一臺主機的。
[0064]如果事先已經(jīng)分析出一個IPv6地址屬于一臺虛擬機,通過這一關聯(lián)分析方法就可以判斷出哪個IPv4地址也是屬于同一臺虛擬機的。因此,可以基于對IPv6報文的分析來發(fā)現(xiàn)IPv4虛擬機。
[0065]本領域普通技術人員可以理解,實現(xiàn)上述方法實施例的全部和部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算設備可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟,而前述的存儲介質可以包括ROM、RAM、磁碟和光盤等各種可以存儲程序代碼的介質。
[0066]圖5是本公開一個實施例的DPI設備的結構示意圖。
[0067]如圖5所示,該實施例中的DPI設備50可以包括報文處理單元502、報文頭提取單元504、接口地址提取單元506、接口地址匹配單元508和主機類型確定單元510。其中,
[0068]報文處理單元502,用于接收、復制并轉發(fā)IPv6報文;
[0069]報文頭提取單元504,用于提取所復制的IPv6報文中的報文頭;
[0070]接口地址提取單元506,用于自所述報文頭中提取發(fā)送所述IPv6報文的源IPv6地址的接口地址;
[0071]接口地址匹配單元508,用于將所述接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配;
[0072]主機類型確定單元510,用于如果所述接口地址中廠商代碼部分與所述接口地址特征庫中的任一個特征值相同,則確定所述IPv6報文由虛擬主機發(fā)出,否則,確定所述IPv6報文由物理主機發(fā)出。
[0073]在該實施例中,DPI設備對主機發(fā)出的IPv6報文進行了復制,進而可以對該報文做進一步的分析,在分析時可以根據(jù)報文頭中的源IPv6地址的接口地址來判斷該報文是由虛擬主機發(fā)出的還是由物理主機發(fā)出的。由于虛擬主機的接口地址是通過EU1-64算法生成的,而該算法又依賴于虛擬主機網(wǎng)卡的MAC地址,MAC地址中又包含有虛擬網(wǎng)卡的廠商代碼,因此,可以通過逐級分析得到廠商代碼信息,從而可以判斷出報文是來自虛擬主機還是來自物理主機。
[0074]進一步地,源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關,即,接口地址是利用EU1-64算法基于相應主機的網(wǎng)卡的MAC地址生成。
[0075]其中,相應主機為虛擬主機或物理主機。并且,虛擬主機和物理主機的MAC地址中均帶有廠商代碼。
[0076]需要指出的是,虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼。
[0077]進一步地,DPI設備中還可以包括TCP序號提取單元和IPv4報文判斷單元。
[0078]其中,TCP序號提取單元,用于提取來自源主機的報文中的TCP序號,該報文可以為IPv6報文,也可以是IPv4報文;
[0079]IPv4報文判斷單元,由于雙棧主機的IPv4報文中的序號與IPv6報文的序號是連續(xù)的,因此,如果檢測到的IPv4的報文的序號是上次檢測到的IPv6報文的序號再加上上次檢測到的IPv6報文中的字節(jié)長度,則表明該IPv4報文與上次檢測到的IPv6報文來自同一虛擬主機。
[0080]本說明書中各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同和相似的部分可以相互參見。對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處可以參見方法實施例部分的說明。
[0081]本公開上述實施例具有以下有益效果:
[0082](I)無需在終端主機、虛擬機上安裝軟件,通過網(wǎng)絡側的報文分析來實現(xiàn)對虛擬機的識別;
[0083](2)本公開技術方案屬于被動檢測手段,在網(wǎng)絡側分析主機的報文,不需要在終端上安裝軟件,或者發(fā)送探測報文;
[0084](3)有較高的準確性,由于MAC地址一般與網(wǎng)卡、虛擬機廠商綁定,而IPv6接口地址按EU1-64算法生成也是目前普遍采用的,因此該方法的檢測準確率較高;
[0085](4)可以提升網(wǎng)絡側DPI設備檢測的準確率,解決I拖N檢測中虛擬機檢測的問題;
[0086](5)可以提升DPI設備推送的準確性。
[0087]此外,需要指出的是,本公開實施例可以在IPv6網(wǎng)絡、雙棧網(wǎng)絡、在網(wǎng)絡側需要檢測虛擬機的場景中應用,例如,雙棧網(wǎng)絡的I拖N檢測中。
[0088]雖然已參照示例性實施例描述了本公開,但應理解,本公開不限于上述的示例性實施例。對于本領域技術人員顯然的是,可以在不背離本公開的范圍和精神的條件下修改上述的示例性實施例。所附的權利要求的范圍應被賦予最寬的解釋,以包含所有這樣的修改以及等同的結構和功能。
【權利要求】
1.一種IPv6網(wǎng)絡中識別虛擬主機的方法,其特征在于,包括: 接收、復制并轉發(fā)IPv6報文; 提取所復制的IPv6報文中的報文頭; 自所述報文頭中提取發(fā)送所述IPv6報文的源IPv6地址的接口地址; 將所述接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配; 如果所述接口地址中廠商代碼部分與所述接口地址特征庫中的任一個特征值相同,則確定所述IPv6報文由虛擬主機發(fā)出,否則,確定所述IPv6報文由物理主機發(fā)出。
2.根據(jù)權利要求1所述的IPv6網(wǎng)絡中識別虛擬主機的方法,其特征在于,所述源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關。
3.根據(jù)權利要求2所述的IPv6網(wǎng)絡中識別虛擬主機的方法,其特征在于,所述相應主機為虛擬主機或物理主機。
4.根據(jù)權利要求3所述的IPv6網(wǎng)絡中識別虛擬主機的方法,其特征在于,所述虛擬主機和所述物理主機的MAC地址中均帶有廠商代碼。
5.根據(jù)權利要求1所述的IPv6網(wǎng)絡中識別虛擬主機的方法,其特征在于,所述虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼。
6.—種DPI設備,其特征在于,包括: 報文處理單元,用于接收、復制并轉發(fā)IPv6報文; 報文頭提取單元,用于提取所復制的IPv6報文中的報文頭; 接口地址提取單元,用于自所述報文頭中提取發(fā)送所述IPv6報文的源IPv6地址的接口地址; 接口地址匹配單元,用于將所述接口地址中廠商代碼部分與虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值進行匹配; 主機類型確定單元,用于如果所述接口地址中廠商代碼部分與所述接口地址特征庫中的任一個特征值相同,則確定所述IPv6報文由虛擬主機發(fā)出,否則,確定所述IPv6報文由物理主機發(fā)出。
7.根據(jù)權利要求6所述的DPI設備,其特征在于,所述源IPv6地址的接口地址與相應主機的網(wǎng)卡的MAC地址相關。
8.根據(jù)權利要求7所述的DPI設備,其特征在于,所述相應主機為虛擬主機或物理主機。
9.根據(jù)權利要求8所述的DPI設備,其特征在于,所述虛擬主機和所述物理主機的MAC地址中均帶有廠商代碼。
10.根據(jù)權利要求6所述的DPI設備,其特征在于,所述虛擬機虛擬網(wǎng)卡接口地址特征庫中的特征值為各類虛擬機的廠商代碼。
【文檔編號】H04L12/26GK104348671SQ201310317742
【公開日】2015年2月11日 申請日期:2013年7月26日 優(yōu)先權日:2013年7月26日
【發(fā)明者】陳仲華, 楊平 申請人:中國電信股份有限公司