【微軟公有云系列】 Hyper-v (WinSer 2012 R2) 網絡虛擬化(二)原理

前面我們講了一些網絡虛擬化中出現的一些名詞的概念和他們之間如何相互配合去使用的,接下來再給大家分享下,網絡虛擬化中的一些原理。

(若看完覺得抽象,可以跟着後面的Demo實驗的文章去結合理解)


概念:

RoutingDomainID:簡稱RDID,同一虛擬交換機(Logical network)下,不同的VmNetwork則其虛擬機的RDID就不相同,不同RDID的虛擬機之間則不可通信。


VirtualSubnetID:簡稱VSID,同一虛擬交換機(Logical network)下,同一個VmNetwork的多個子網段VSID是一致的,因此此VmNetwork的不同子網(Subnet)間可相互通信。


ProriderAddress:簡稱PA,是在logical network下配置的。當logical network的類型是NVGRE的時候,爲此logical network配置的IP POOL就是PA。當logical network 的類型是非NVGRE的時候,爲此logical network配置的IP POOL 則是物理機或虛擬機所獲得的IP 段。


CustomerAddress:簡稱CA,其實就是客戶虛擬機通過綁定VmNetwork 所分配的對應的子網(Subnet)來獲得的IP。


同一個RDID下可包含一個或多個VSID,這些VSID間是可以相互訪問的;但是無法跨越RDID,也就是說不同的RDID是絕對隔離的


場景一:相同VM network的下面兩個不同子網的網段間是可以相互通信的

因爲相當於是同一個RDID下的多個VSID,因此他們之間是相互可以通信的。

公有云當中,同一租戶的不同子網的虛擬機之間可以相互通信。


我們可以通過,在承載了不同VM network的宿主機上,運行這條命令

Get-NetVirtualizationCustomerRoute

來查看此宿主機上的虛擬機所分配的RDID 和 VSID


wKiom1Nh8IWQcw3sAAHo1smzwSA584.jpg


上圖,我們可以看到相同RDID的下面兩個不同子網的VSID間是可以相互通信的。



場景二:不同VM network的下面兩個子網(SUBNET)的網段間是不可以相互通信的

因爲不同的一個RDID下的VSID之間,哪怕他們是同一網段的IP,他們之間也是不可相互通信的。

公有云當中,不同的兩個租戶之間,哪怕是相同的子網段的虛擬機之間都是不可以相互通信。


我們可以通過,在承載了不同VM network的宿主機上,運行這條命令

Get-NetVirtualizationCustomerRoute

來查看此宿主機上的虛擬機所分配的RDID 和 VSID


wKioL1Nh8VTiYgSzAAFuV4_jO6E433.jpg


上圖,我們可以看到不同RDID的下面兩個子網的網段雖然是看似一致,但是他們是不可以相互通信的。


場景一場景二的原理:


在下圖,VSID 5001 的虛擬機能通過 Hyper-V 網絡虛擬化將其數據包路由或轉發到 VSID 5002 5003 的虛擬機中。在將數據包送往 Hyper-V 交換機之前,Hyper-V 網絡虛擬化將把進入的數據包的 VSID 更新爲目標虛擬機的 VSID。這只有在兩個 VSID 都屬於一個 RDID 的情況下才能實現。如果數據包上的 VSID 與目標虛擬機的 VSID 不匹配,數據包會被丟棄。因此,帶有 RDID1 的虛擬網絡適配器不能將數據包發送到帶有 RDID2 的虛擬網絡適配器。


wKiom1Nh8haRBBa6AAA9eZt_7qs124.gif




場景三:ca&pa的配合


PA:ProviderAddress

CA:CustomerAddress



CAPA的意義是非常非常重要的,正是有了這兩個地址,纔可以實現租戶的跨子網遷移,例如企業用戶將現有環境中的資源直接上傳到公有云上,而不需要修改IP;那麼它的原理是怎樣的呢?


CA即爲用戶已有的IP,是可見的;而PA顧名思義,是提供商IP,或者說叫運營方的IP,也就是對用戶不可見的,在將現有資源上傳到公有云或者混合雲環境後,通過CA與PA之間的相互轉換來實現數據的通信,在下圖中,CA即爲我們A01這個vm network中地址池所分配的IP,而PA是我system center&AD這套基礎架構所在的網段的IP(當然也可以單獨劃分一個虛擬網段作爲PA POOL,這樣可以跟我們的管理網絡區分開來),這裏雖然兩個IP看似一個IP段,但其實不是的,相互是可重疊的IP.

wKioL1Nh-33RodrGAAMlkRo3Lxk234.jpg


參考下微軟官方的摘要說明(CA(即同一個VM NETWORK下的虛擬機)之間的相互通信過程)


首先,在 Hyper-V 網絡虛擬化中的每個虛擬網絡適配器都與兩個 IP 地址(PA&CA)相關


網絡虛擬化的重要方面:

  • 將每臺虛擬機的 CA 映射到物理主機的 PA。

  • 根據映射,將虛擬機在 CA 空間中發送的數據包放置在一個含有 PA 源和目標對的“封套”中。

  • CA-PA 映射必須允許主機爲不同的客戶虛擬機區分數據包。

      因此,網絡虛擬化機制旨在將虛擬機使用的網絡地址虛擬化。


網絡地址虛擬化機制原理:

     Hyper-V 網絡虛擬化支持基本路由封裝實現網絡虛擬化作爲一種機制來虛擬化 IP 地址:

     基本路由封裝   此網絡虛擬化機制將基本路由封裝 (NVGRE) 用作通道報頭的一部分。這種地址虛擬化機制的模式是專爲大多數部署 Hyper-V 網絡虛擬化的數據中心而設計的。在 NVGRE 中,虛擬機的數據包被封裝在另一個數據包中。如圖 所示,新的數據包報頭含有合適的源和目標 PA IP 地址,另外還有存儲在 GRE 報頭密鑰字段中的虛擬子網 ID。


wKioL1NisXTBkB1EAABaCxvGIu0272.gif


      包含在 GRE 報頭中的虛擬子網 ID 可讓主機爲任何指定的數據包確定客戶虛擬機,儘管數據包上的 PA 和 CA 出現重疊。這可讓同一臺主機上的所有虛擬機分享一個 PA(如圖  所示)。


      共享 PA 對網絡可擴展性產生很大的影響。網絡基礎設施必須知悉的 IP 和 MAC 地址數量得以大幅減少。例如,如果每臺終端主機平均有 30 臺虛擬機,網絡基礎設施需要知悉的 IP 和 MAC 地址數量將減少到三十分之一,數據包中嵌入式虛擬子網 ID 還能輕易地將數據包與實際客戶聯繫起來。


使用 Windows Server 2012,Hyper-V 網絡虛擬化完全支持即開即用的 NVGRE;不需要升級或購買新的網絡硬件,如 NIC(網絡適配器)、交換機或路由器。因爲在線 NVGRE 包是 PA 空間中的常規 IP 包,可與當前的網絡基礎結構相兼容。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章