一種獲取虛擬機的因特網(wǎng)協(xié)議地址的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種獲取虛擬機的因特網(wǎng)協(xié)議(IP)地址的方法和系統(tǒng)。
【背景技術(shù)】
[0002]云計算(Cloud Computing)是指基于互聯(lián)網(wǎng)的超級計算模式,即把原來在本地計算機或遠程服務(wù)器中的計算,通過網(wǎng)絡(luò)分布在大量計算機上進行協(xié)同工作。它是一種新興的共享基礎(chǔ)架構(gòu)的方法,可以將巨大的系統(tǒng)連接在一起以提供各種IT服務(wù)。
[0003]虛擬技術(shù)是云計算的基石。把一臺物理機虛擬出多個虛擬機,再把這些虛擬機租用給不同的用戶,用戶通過付費使用這些虛擬資源。
[0004]虛擬局域網(wǎng)(Virtual Local Area Network, VLAN)是一種建構(gòu)于局域網(wǎng)交換技術(shù)(LAN Switch)的網(wǎng)絡(luò)管理的技術(shù),網(wǎng)管人員可以借此通過控制交換機有效分派出入局域網(wǎng)的數(shù)據(jù)包到正確的出入端口,達到對不同實體局域網(wǎng)中的設(shè)備進行邏輯分群(Grouping)管理,并降低局域網(wǎng)內(nèi)大量數(shù)據(jù)流通時,因無用數(shù)據(jù)包過多導致壅塞的問題,以及提升局域網(wǎng)的信息安全保障。
[0005]在虛擬機的配置信息中,可以對虛擬機的CPU個數(shù)、內(nèi)存、媒質(zhì)訪問控制(MAC)地址等信息進行配置。在外界與虛擬機的交互中,IP地址是一個重要的操作接口,對虛擬機的操作和使用大多要通過IP地址來進行,但是IP地址通常會通過DHCP獲得,物理機不能直接獲取虛擬機的IP地址。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供一種獲取虛擬機的IP地址的方法和系統(tǒng),能夠使服務(wù)器獲得不同虛擬局域網(wǎng)絡(luò)中虛擬機的IP地址,并通過獲得的IP地址對虛擬機進行操作和使用。
[0007]為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0008]一種獲取虛擬機的IP地址的方法,應(yīng)用包括客戶端和服務(wù)端的網(wǎng)絡(luò)中,所述服務(wù)器在所述客戶端上配置虛擬機,并存儲配置文件,配置的各虛擬機不都屬于同一虛擬局域網(wǎng);所述方法包括:
[0009]所述服務(wù)器在所述配置文件中獲取需要查詢IP地址的虛擬機的MAC地址,生成查詢數(shù)據(jù)包并發(fā)送,其中,所述查詢數(shù)據(jù)包用于查詢所述虛擬機的IP地址;
[0010]所述客戶端啟動監(jiān)聽端口,監(jiān)聽到服務(wù)器發(fā)送的查詢數(shù)據(jù)包時,根據(jù)該查詢數(shù)據(jù)包生成反饋數(shù)據(jù)包,并發(fā)送給所述服務(wù)器;
[0011]所述服務(wù)器接收到所述客戶端發(fā)送的反饋數(shù)據(jù)包時,確定接收到的反饋數(shù)據(jù)包中是否攜帶所述虛擬機的IP地址,如果是,更新到數(shù)據(jù)庫中;否則,丟棄接收到的反饋數(shù)據(jù)包。
[0012]一種系統(tǒng),所述系統(tǒng)包括服務(wù)器和客戶端;
[0013]所述服務(wù)器,用于在所述客戶端上配置虛擬機,并存儲配置文件,配置的各虛擬機不都屬于同一虛擬局域網(wǎng);在所述配置文件中獲取需要查詢IP地址的虛擬機的MAC地址,生成查詢數(shù)據(jù)包并發(fā)送,其中,所述查詢數(shù)據(jù)包用于查詢所述虛擬機的IP地址;接收到所述客戶端發(fā)送的反饋數(shù)據(jù)包時,確定接收到的反饋數(shù)據(jù)包中是否攜帶所述虛擬機的IP地址,如果是,更新到數(shù)據(jù)庫中;否則,丟棄接收到的反饋數(shù)據(jù)包;
[0014]所述客戶端,用于啟動監(jiān)聽端口,監(jiān)聽到服務(wù)器發(fā)送的查詢數(shù)據(jù)包時,根據(jù)該查詢數(shù)據(jù)包生成反饋數(shù)據(jù)包,并發(fā)送給所述服務(wù)器。
[0015]綜上所述,本發(fā)明中服務(wù)器根據(jù)存儲的屬于不同虛擬局域網(wǎng)中的虛擬機的配置信息中的MAC地址,向客戶端發(fā)送查詢數(shù)據(jù)包,用于查詢虛擬機的IP地址;服務(wù)器接收到客戶端響應(yīng)的反饋數(shù)據(jù)包時,獲取虛擬機動態(tài)獲取的IP地址。通過本發(fā)明的技術(shù)方案能夠使服務(wù)器獲得不同虛擬局域網(wǎng)絡(luò)中虛擬機的IP地址,并通過獲得的IP地址對虛擬機進行操作和使用。
【附圖說明】
[0016]圖1為本發(fā)明實施例中客戶端中配置虛擬機的結(jié)構(gòu)示意圖;
[0017]圖2為本發(fā)明實施例中獲取虛擬機的IP地址的方法流程示意圖;
[0018]圖3為本發(fā)明具體實施例中應(yīng)用于上述技術(shù)的系統(tǒng)示意圖。
【具體實施方式】
[0019]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步地詳細說明。
[0020]本發(fā)明實施例中提出一種獲取虛擬機的IP地址的方法,應(yīng)用包括客戶端和服務(wù)端的網(wǎng)絡(luò)中,服務(wù)器通過與客戶端之間的通信,獲取客戶端上虛擬機的動態(tài)IP地址。通過該方法能夠使服務(wù)器獲得不同虛擬局域網(wǎng)絡(luò)中虛擬機的IP地址,并通過獲得的IP地址對虛擬機進行操作和使用。
[0021]服務(wù)器在客戶端上配置虛擬機,并存儲配置文件,配置文件中包括配置的虛擬的MAC地址。配置的各虛擬機不都屬于同一虛擬局域網(wǎng)。
[0022]參見圖1,圖1為本發(fā)明實施例中客戶端中配置虛擬機的結(jié)構(gòu)示意圖。圖1中配置了 N個虛擬機,其中虛擬機I和虛擬機2屬于虛擬局域網(wǎng)I,虛擬機3屬于虛擬局域網(wǎng)2,虛擬機N和虛擬機N-1屬于局域網(wǎng)M,其他不再例舉。
[0023]由于存在不同的虛擬機不都屬于一個虛擬局域網(wǎng),存在不同虛擬機屬于同一局域網(wǎng),使得通過傳統(tǒng)的ARP協(xié)議無法獲得虛擬機動態(tài)獲取的IP地址。
[0024]參見圖2,圖2為本發(fā)明實施例中獲取虛擬機的IP地址的方法流程示意圖。具體步驟為:
[0025]步驟201,服務(wù)器在配置文件中獲取需要查詢IP地址的虛擬機的MAC地址,生成查詢數(shù)據(jù)包并發(fā)送。
[0026]本步驟中的查詢數(shù)據(jù)包用于查詢所述虛擬機的IP地址;配置文件為存儲的配置虛擬機的配置文件。
[0027]生成的查詢數(shù)據(jù)包的源IP地址為本服務(wù)器的IP地址;目的IP為配置的IP地址,該配置的IP地址為用于查詢虛擬機IP地址的IP地址,具體實現(xiàn)時,可以配置一個不常用的IP地址,即不會沖突的IP地址,如255.255.255.255 ;源MAC地址為本服務(wù)器的MAC地址;目的MAC地址為獲取的虛擬機的MAC地址,即需要查詢IP地址的虛擬機的MAC地址。
[0028]步驟202,客戶端啟動監(jiān)聽端口,監(jiān)聽到服務(wù)器發(fā)送的查詢數(shù)據(jù)包時,根據(jù)該查詢數(shù)據(jù)包生成反饋數(shù)據(jù)包,并發(fā)送給所述服務(wù)器。
[0029]在具體實現(xiàn)時,客戶端可以通過listen函數(shù)啟動監(jiān)聽端口,接收服務(wù)器發(fā)送的數(shù)據(jù)包。
[0030]客戶端監(jiān)聽到查詢數(shù)據(jù)包時,根據(jù)查詢數(shù)據(jù)包中的目的MAC地址獲知需要查詢的是哪個虛擬機的IP地址。
[0031]客戶端根據(jù)該查詢數(shù)據(jù)包生成反饋數(shù)據(jù)包時,若該虛擬機已獲得動態(tài)IP地址,反饋數(shù)據(jù)包的源IP地址為該虛擬機獲得的動態(tài)IP地址;若所述虛擬機未獲得動態(tài)IP地址,反饋數(shù)據(jù)包的源IP地址為所述查詢數(shù)據(jù)包的目的IP地址;反饋數(shù)據(jù)包的目的IP為所述服務(wù)器的IP地址、源MAC地址為所述虛擬機的MAC地址、目的MAC地址為所述服務(wù)器的MAC地址。
[0032]步驟203,服務(wù)器接收到所述客戶端發(fā)送的反饋數(shù)據(jù)包時,確定接收到的反饋數(shù)據(jù)包中是否攜帶所述虛擬機的IP地址,如果是,更新到數(shù)據(jù)庫中;否則,丟棄接收到的反饋數(shù)據(jù)包。
[0033]在具體實現(xiàn)時,在查詢數(shù)據(jù)包中通過Flag標識數(shù)據(jù)包的類型,如O標識查詢數(shù)據(jù)包,I標識反饋數(shù)據(jù)包。
[0034]本步驟中確定該反饋數(shù)據(jù)包中是否攜帶所述虛擬機的IP地址,包括:
[0035]確定該反饋數(shù)據(jù)包的源IP地址,是否為查詢數(shù)據(jù)包的目的IP地址,即是否為配置的IP地址的,如255.255.255.255 ;如果是,確定該反饋數(shù)據(jù)包中未攜帶所述虛擬機的IP地址;否則,確定該反饋數(shù)據(jù)包中攜帶所述虛擬機的IP地址。
[0036]服務(wù)器將反饋數(shù)據(jù)包中攜帶的虛擬機的IP地址更新到數(shù)據(jù)庫中,具體包括:在數(shù)據(jù)庫中查詢該反饋數(shù)據(jù)包的源MAC地址,如果存在,更新數(shù)據(jù)庫中所述源MAC地址對應(yīng)的IP地址;如果不存在,則將該源MAC地址和IP地址綁定存儲到數(shù)據(jù)庫中。
[0037]在具體實現(xiàn)時,還可以為數(shù)據(jù)庫中已綁定存儲的源MAC地址和IP地址,設(shè)置老換時間,如果老化時間內(nèi)還未更新該源MAC地址對應(yīng)的IP地址,則將綁定存儲的源MAC地址和IP地址刪除。
[0038]通過上述實現(xiàn),可見無論各虛擬機是否屬于同一虛擬局域網(wǎng),通過本發(fā)明提出的實現(xiàn)方法,都可以獲得虛擬機通過DHCP動態(tài)獲取的IP地址。服務(wù)器獲取數(shù)據(jù)包之后,可以通過獲取的IP地址來操作或使用虛擬機。
[0039]服務(wù)器還可以周期性地在所述配置文件中獲取所有虛擬機的MAC地址,根據(jù)各虛擬機的MAC地址分別生成查詢數(shù)據(jù)包并發(fā)送。
[0040]客戶端監(jiān)聽到服務(wù)器發(fā)送的查詢數(shù)據(jù)包時,根據(jù)監(jiān)聽到的各查詢數(shù)據(jù)包分別生成反饋數(shù)據(jù)包,并發(fā)送給所述服務(wù)器。
[0041]服務(wù)器接收到所述客戶端發(fā)送的各反饋數(shù)據(jù)包時,遍歷接收到反饋數(shù)據(jù)包,對于任一反饋數(shù)據(jù)包確定其是否攜帶對應(yīng)的虛擬機的IP地址,如果是,更新到數(shù)據(jù)庫中;否則,丟棄接收到的反饋數(shù)據(jù)包。
[0042]這種采用心跳