一種物理機訪問虛擬網(wǎng)絡(luò)的方法及網(wǎng)卡的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)設(shè)備管理技術(shù)領(lǐng)域,特別是涉及物理機和虛擬機技術(shù)領(lǐng)域,具體 為一種物理機訪問虛擬網(wǎng)絡(luò)的方法及網(wǎng)卡。
【背景技術(shù)】
[0002] 物理機是相對于虛擬機而言的對實體計算機的稱呼。物理機提供給虛擬機以硬件 環(huán)境,有時也稱為"寄主"或"宿主"。虛擬機(VirtualMachine)指通過軟件模擬的具有完 整硬件網(wǎng)卡功能的、運行在一個完全隔離環(huán)境中的完整計算機網(wǎng)卡。虛擬網(wǎng)卡通過生成現(xiàn) 有操作網(wǎng)卡的全新虛擬鏡像,它具有真實windows網(wǎng)卡完全一樣的功能,進入虛擬網(wǎng)卡后, 所有操作都是在這個全新的獨立的虛擬網(wǎng)卡里面進行,可以獨立安裝運行軟件,保存數(shù)據(jù), 擁有自己的獨立桌面,不會對真正的網(wǎng)卡產(chǎn)生任何影響,而且具有能夠在現(xiàn)有網(wǎng)卡與虛擬 鏡像之間靈活切換的一類操作網(wǎng)卡。通過物理機和虛擬機的配合,一臺計算機上可以安裝 上多個操作網(wǎng)卡(一個外界操作網(wǎng)卡和虛擬機中的數(shù)個操作網(wǎng)卡),并且?guī)讉€操作網(wǎng)卡間 還可以實現(xiàn)通信,就像是有多臺計算機一樣。
[0003] 在現(xiàn)在的云數(shù)據(jù)中心里,不是所有的服務(wù)器運行在虛擬機上的。因為性能問題,或 者出于安全的考慮,或者其他不可抵抗的因素,用戶更愿意把把一些重要的應(yīng)用放在物理 機上。比如一些重要的數(shù)據(jù)庫是運行的物理機上的,但是使用數(shù)據(jù)庫的應(yīng)用的運行在虛擬 機上的。所以,用戶就有了讓物理服務(wù)器來訪問虛擬網(wǎng)絡(luò)的需求。
[0004] 隧道技術(shù)(Tunneling)是一種通過使用互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)設(shè)施在網(wǎng)絡(luò)之間傳遞數(shù) 據(jù)的方式。使用隧道傳遞的數(shù)據(jù)(或負載)可以是不同協(xié)議的數(shù)據(jù)幀或包。隧道協(xié)議將 其它協(xié)議的數(shù)據(jù)幀或包重新封裝然后通過隧道發(fā)送。新的幀頭提供路由信息,以便通過互 聯(lián)網(wǎng)傳遞被封裝的負載數(shù)據(jù)。當(dāng)前,用戶通過隧道技術(shù)來創(chuàng)建虛擬的覆蓋網(wǎng)絡(luò)來鏈接虛擬 機,通常會使用VXLAN技術(shù)。VXLAN(VirtualExtensibleLAN)虛擬可擴展局域網(wǎng),是一種 overlay的網(wǎng)絡(luò)技術(shù),使用MACinUDP的方法進行封裝,共50字節(jié)的封裝報文頭。VXLAN是 一種在UDP中封裝MAC的簡單機制,可以創(chuàng)建跨多個物理IP子網(wǎng)的虛擬2層子網(wǎng)。VXLAN 通過一個24位分片ID,在一個數(shù)據(jù)中心內(nèi)它能部署百萬個虛擬網(wǎng)。而且,VXLAN數(shù)據(jù)包格 式很容易在硬件中實現(xiàn),所以它以后也許可以更緊密地與物理網(wǎng)絡(luò)設(shè)備集成。
[0005] 對于虛擬機,我們可以在虛擬服務(wù)器上的虛擬交換機上配置虛擬隧道終端(VTEP virtualTunnelEndpoint;或VXLANTunnelEndpoint)。但是對于連接到虛擬網(wǎng)絡(luò)的物 理機來說,它沒有虛擬交換機可用。所有,沒有設(shè)備可以為物理服務(wù)器封裝或解分裝那些來 自(或發(fā)向)虛擬網(wǎng)絡(luò)的隧道報文。
[0006] 傳統(tǒng)的解決辦法是使用軟件隧道網(wǎng)關(guān),或者使用帶有隧道功能的TOR交換機,使 得物理服務(wù)器可以訪問虛擬網(wǎng)絡(luò)。軟件網(wǎng)關(guān)需要用戶自己添加專門的設(shè)備和并且需要額外 的管理,而且其性能會成為瓶頸。支持隧道功能的TOR交換機,一般都需要支持SDK協(xié)議, 通常這樣的交換機都會很貴。而且交換機的端口還需要和物理服務(wù)器綁定,這樣TOR交換 機才能知道哪個口聯(lián)接的是物理服務(wù)器,哪個口聯(lián)接的是虛擬服務(wù)器。
【發(fā)明內(nèi)容】
[0007] 鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種物理機訪問虛擬網(wǎng)絡(luò) 的方法及網(wǎng)卡,用于解決現(xiàn)有技術(shù)中物理機訪問虛擬網(wǎng)絡(luò)時成本高或性能差的問題。
[0008] 為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種物理機訪問虛擬網(wǎng)絡(luò)的方法, 所述物理機訪問虛擬網(wǎng)絡(luò)的方法包括:利用物理機的網(wǎng)卡對所述物理機發(fā)送至虛擬網(wǎng)絡(luò)的 原始數(shù)據(jù)包進行封裝,形成VXLAN數(shù)據(jù)包并將所述VXLAN數(shù)據(jù)包發(fā)送至所述虛擬網(wǎng)絡(luò);利 用物理機的網(wǎng)卡對所述虛擬網(wǎng)絡(luò)發(fā)送至所述物理機的VXLAN數(shù)據(jù)包進行解封裝,獲取所述 VXLAN數(shù)據(jù)包內(nèi)的原始數(shù)據(jù)包并將獲取的所述原始數(shù)據(jù)包發(fā)送至所述物理機內(nèi)。
[0009] 優(yōu)選地,所述物理機訪問虛擬網(wǎng)絡(luò)的方法還包括:在所述物理機的網(wǎng)卡內(nèi)建立一 個用于顯示IP地址和MAC地址之間地址映射關(guān)系的地址映射表,所述網(wǎng)卡根據(jù)所述地址映 射表對所述原始數(shù)據(jù)包進行封裝形成VXLAN數(shù)據(jù)包。
[0010] 優(yōu)選地,所述物理機訪問虛擬網(wǎng)絡(luò)的方法還包括:在利用物理機的網(wǎng)卡對所述虛 擬網(wǎng)絡(luò)發(fā)送至所述物理機的VXLAN數(shù)據(jù)包進行解封裝時,獲取MAC地址和IP地址并將獲取 的所述MAC地址和所述IP地址更新至所述地址映射表。
[0011] 優(yōu)選地,所述利用物理機的網(wǎng)卡對所述物理機發(fā)送至虛擬網(wǎng)絡(luò)的原始數(shù)據(jù)包進行 封裝,形成VXLAN數(shù)據(jù)包具體包括:利用所述物理機的網(wǎng)卡驅(qū)動配置MAC地址頭段,將所述 MC地址頭段與所述原始數(shù)據(jù)包封裝形成初始封裝數(shù)據(jù)包;再利用所述物理機的網(wǎng)卡驅(qū)動 配置IP數(shù)據(jù)頭段、UDP數(shù)據(jù)頭段和VXLAN數(shù)據(jù)頭段,將所述MAC地址頭段、所述IP數(shù)據(jù)頭 段、所述UDP數(shù)據(jù)頭段和所述VXLAN數(shù)據(jù)頭段與所述原始數(shù)據(jù)包封裝形成VXLAN數(shù)據(jù)包。
[0012] 優(yōu)選地,利用物理機的網(wǎng)卡對所述虛擬網(wǎng)絡(luò)發(fā)送至所述物理機的VXLAN數(shù)據(jù)包進 行解封裝,獲取所述VXLAN數(shù)據(jù)包內(nèi)的原始數(shù)據(jù)包具體包括:利用所述物理機的網(wǎng)卡驅(qū)動 解除所述VXLAN數(shù)據(jù)包內(nèi)的VXLAN數(shù)據(jù)頭段、UDP數(shù)據(jù)頭段和IP數(shù)據(jù)頭段形成初始接封裝 數(shù)據(jù)包;再利用所述物理機的網(wǎng)卡驅(qū)動解除所述VXLAN數(shù)據(jù)包內(nèi)的MC地址數(shù)據(jù)頭段,獲取 所述VXLAN數(shù)據(jù)包內(nèi)的原始數(shù)據(jù)包。
[0013] 為實現(xiàn)上述目的,本發(fā)明還提供一種物理機訪問虛擬網(wǎng)絡(luò)的網(wǎng)卡,所述物理機訪 問虛擬網(wǎng)絡(luò)的網(wǎng)卡內(nèi)包含:數(shù)據(jù)封裝模塊,用于對所述物理機發(fā)送至虛擬網(wǎng)絡(luò)的原始數(shù)據(jù) 包進行封裝,形成VXLAN數(shù)據(jù)包并將所述VXLAN數(shù)據(jù)包發(fā)送至所述虛擬網(wǎng)絡(luò);數(shù)據(jù)解封裝模 塊,與所述數(shù)據(jù)封裝模塊相連,用于對所述虛擬網(wǎng)絡(luò)發(fā)送至所述物理機的VXLAN數(shù)據(jù)包進 行解封裝,獲取所述VXLAN數(shù)據(jù)包內(nèi)的原始數(shù)據(jù)包并將獲取的所述原始數(shù)據(jù)包發(fā)送至所述 物理機內(nèi)。
[0014] 優(yōu)選地,所述物理機訪問虛擬網(wǎng)絡(luò)的網(wǎng)卡內(nèi)還包含:地址映射表模塊,分別與所述 數(shù)據(jù)封裝模塊和所述數(shù)據(jù)解封裝模塊相連,用于建立一個用于顯示IP地址和MAC地址之間 地址映射關(guān)系的地址映射表;所述數(shù)據(jù)封裝模塊根據(jù)所述地址映射表對所述原始數(shù)據(jù)包進 行封裝形成VXLAN數(shù)據(jù)包。
[0015] 優(yōu)選地,所述物理機訪問虛擬網(wǎng)絡(luò)的網(wǎng)卡還包括:更新模塊,與所述地址映射表模 塊相連,用于在對所述虛擬網(wǎng)絡(luò)發(fā)送至所述物理機的VXLAN數(shù)據(jù)包進行解封裝時,獲取MC 地址和IP地址并將獲取的所述MAC地址和所述IP地址更新至所述地址映射表。
[0016] 優(yōu)選地,所述數(shù)據(jù)封裝模塊包括:初始封裝單元,用于配置MAC地址頭段,將所述 MC地址頭段與所述原始數(shù)據(jù)包封裝形成初始封裝數(shù)據(jù)包;VXLAN數(shù)據(jù)包封裝單元,與所述 初始封裝單元相連,用于配置IP數(shù)據(jù)頭段、UDP數(shù)據(jù)頭段和VXLAN數(shù)據(jù)頭段,將所述MC地 址頭段、所述IP數(shù)據(jù)頭段、所述UDP數(shù)據(jù)頭段和所述VXLAN數(shù)據(jù)頭段與所述原始數(shù)據(jù)包封 裝形成VXLAN數(shù)據(jù)包。
[0017] 優(yōu)選地,所述數(shù)據(jù)解封裝模塊包括:初始解封裝單元,用于解除所述VXLAN數(shù)據(jù)包 內(nèi)的VXLAN數(shù)據(jù)頭段、UDP數(shù)據(jù)頭段和IP數(shù)據(jù)頭段形成初始接封裝數(shù)據(jù)包;原始數(shù)據(jù)包解 封裝單元,與所述初始解封裝單元相連,用于解除所述VXL