1. 程式人生 > >SDN Overlay網絡中虛機到物理機的數據包的轉發

SDN Overlay網絡中虛機到物理機的數據包的轉發

sdn overlay 數據包轉發 轉發網關 直接路由

在之前我們討論了SDN Overlay 網絡中5個不同場景下虛機數據包如何轉發,今天我們將繼續討論處於Overlay網絡中的虛機如何與物理機進行數據轉發。有關於微軟網絡虛擬化HNV的相關概念,如RDIDVSID、虛機網絡、虛擬子網、默認網關等,可以參考http://ichbinleo.blog.51cto.com/11948851/1902265http://ichbinleo.blog.51cto.com/11948851/1903866 進一步了解。

在開始今天的討論之前,我們需要引入一個概——HNV網關,也即轉發網關,轉發網關在SDN Overlay場景中的主要目的有3個:

  1. 通過NAT實現Overlay網絡中虛機訪問外部網絡(

    Internet

  2. 通過NAT或直接路由功能實現Overlay網絡中虛機訪問物理網絡上的設備

  3. 外部網絡到Overlay網絡的S2S VPN

HNV網關可由啟用了RRAS功能的Windows Server 2012及後續版本)虛機實現,也可以由支持NVGRE/VXLAN的物理網絡設備來支持,如CiscoF5Iron Network以及nAppliance等都提供相應的網絡設備。

們這次設定的場景如下圖所示,2臺虛機VM1和VMgwca在不同的虛擬子網,分別運行在不同的物理機上,VMgwca作為VM1所在的虛擬子網的轉發網關。VMgwca具備至少2個網卡:一個網卡關聯HNV邏輯網絡,連接和VM1相同的虛機網絡(RDID相同),一個網卡連接物理網絡(我們可稱之為外部網絡)。啟用了HNV網關特性也意味著2塊網卡所在的子網也默認啟用了靜態路由

技術分享

技術分享


VM1的IP地址為172.16.188.2,MAC地址為MACvm1, VSID為11111

VMgwca的內部IP地址為192.168.188.2,MAC地址為MACgwca,VSID為22222;外部地址為10.1.21.16,外部網卡MAC地址為MAClan

當虛機VM1需要和外部網絡的主機10.1.21.18通信時,數據流是怎樣的呢,下面我們對這一場景的數據流進行詳細的描述:

  1. 因為源和目的IP地址不在同一個子網,所以VM1發送ARP消息詢給默認網關,而不是直接發送給目標IP地址。

  2. Hyper-V虛擬交換機廣播ARP到HNV Filter

  3. HNV Filter返回默認網關的MAC地址MACdfgw,MACdfgw就是HNV Filter自身。

  4. VM1學習到默認網關的MAC地址為MACdfgw,其VSID為11111 (默認網關的MAC地址MACdfgw包含在OOB數據裏)。

  5. VM1封裝IP數據包,目的IP為默認網關的IP地址,目的MAC地址為MACdfgw。

  6. IP數據包發送到Hyper-V虛擬交換機,虛擬交換機獲取到發送虛機的網卡VSID 11111的OOB數據。

  7. HNV Filter 查詢到去往10.1.21.xx子網的客戶路由的下一跳為192.168.188.2(轉發網關)。

  8. HNV Filter 使用其查找記錄來確定下一跳虛機(轉發網關)的PA地址。如果沒有找到PA地址記錄,那麽數據包將被丟棄。

  9. 接著HNV Filter 重寫數據包,以將目的MAC地址更改為MACgwca(轉發網關的MAC地址)

  10. HNV Filter 在查找記錄裏查詢到gwca的CA地址為192.168.188.2,MAC地址MACdfgw,VSID為22222,PA地址為10.2.41.206,於是HNV Filter將獲取到的這些信息和原始IP數據包使用NVGRE/XVLAN進行二次封裝。外部數據包中,目的IP地址為gwca的的PA地址10.2.41.206,目的MAC地址為MACdfgw,VSID為22222,如下圖綠色部分所示。

技術分享

  1. 二次封裝的數據包通過傳輸網絡棧傳輸到網絡上。

  2. IP地址為10.2.41.206以及MAC地址為MACPA2的Hyper-V物理機接收到數據包,然後發送到HNV Filter

  3. HNV Filter拆開封裝的包,獲取到原始數據包,以及包含了VSID 22222的OOB數據。

  4. HNV Filter將原始數據包轉發到具有VSID為22222的Hyper-V虛擬交換機。

  5. Hyper-V虛擬交換機按照訪問控制策略將原始數據包發送到目標虛機(轉發網關虛機)。在整個過程中,源和目標虛機都沒能感知封裝的存在。而此時,數據包已經到達轉發網關虛機gwca。

  6. 轉發網關虛機將數據包在自己2塊不同的網卡之間轉發(連接內部網絡的網卡轉發到連接外部網絡的網卡)

  7. 轉發網關虛機的連接到物理Underlay網絡的網卡將當前MAC地址更改為目的物理服務器的MAC地址MACphy

  8. 物理服務器接收到數據包,但是並不知道該數據包來自虛擬網絡。


本文出自 “黃利軍的博客” 博客,謝絕轉載!

SDN Overlay網絡中虛機到物理機的數據包的轉發