2013年2月24日 星期日

關於VMWare ESX裡面的網路(轉載)

很不錯的一篇文章,轉載自 http://www.weithenn.org/cgi-bin/wiki.pl?VMware_Networking


vNetwork 介紹

vNetwork 支援二種 Virtual Switch 也就是 Standard Switches (VSS) 及 Distributed Switches (VDS),而 vNetwrok 提供三種網路服務存取型態 Virtual Machine Port Group、VMKernel Port、Service Console Port
  1. VSS、VDS: 用於 VM 與 VM 之間溝通或 VM 與實體 Switch 溝通之用
    1. vNetwork Standard Switches (VSS) 無法跨 Host 使用
    2. vNetwork Distributed Switches (VDS) 可以跨 Host 使用 (Enterprise Plus 版本才有支援此功能),且當 VM 透過 VMotion 機制移轉至其它台 Host 時原先在虛擬交換器針對 VM 所做的設定,仍然會自動套用到該 Host 上
虛擬網路 (vNetwork): vSwitch 支援下列三種連線類型
  1. Virtual Machine: VM,也就是給虛擬機器 VM 連接使用並搭配後續談到的 Port Group 使用
  2. VMKernel: vmknic,需要連接 iSCSI、NFS 等 IP Storage 及後續談到的進階功能 vMotion 時使用 (ESXi 稱為 Management Network)
  3. Service Console: vswif,安裝完 ESX Host 後與外界溝通的唯一管道用於 vSphere Client 連入時及後續談到的進階功能 HA (HA Heartbeat) 時使用 (只有 ESX Host 才有 Service Console 若是安裝 ESXi 則無)

vSwitch 介紹

  • vSwitch 提供 VM 與實體網路交換資訊的能力
  • vSwitch 可配合指定 多片 實體網路卡 (UpLink) 來達到頻寬的負載平衡 (Balances Traffic) 及容錯 (Failover) 也就是 NIC Teaming 功能
  • vSwitch 建立時預設會提供 56 Ports (最大值 4088 Ports) VM 及實體網卡 (UpLink) 存取使用, ESX / ESXi 顯示預設值為 24 Ports,若更改 vSwitch Ports 設定值則必須將 ESX / ESXi Host 重新啟動才會套用新的設定值
  • 建立 vSwitch 時若 不勾選任何 vmnic 則表示屆時連接此 vSwitch 的 VM  與實體網路卡 (UpLink) 介接也就是只能 VM 與 VM 之間互通,例如可使用於該 VM 是 NAT Client 環境下
  • vSwitch 上面沒有接任何 VM 但有連接實體網路卡 (Up Link) 時表示用於 VMkernel 之用通常使用於 VMotion 或 IP-SAN(iSCSI) 連接之用且不與 VM 共用實體網路頻寬
  • 每一台 Host 最多可以建立 248 台 vSwitch (VI3 則為 127 台)
  • 每一台 vSwitch 上面皆可切出多個 Port Group 出來,例如 VLAN、頻寬管理...等用途
  • 若要支援 Jumbo Frames 則請將 MTU 數值設定為 9000,而 ESXi 則只有及上運作的 VM 能進行設定 ESXi Host 本身無法進行設定。
了解上述 vSwitch 特性後我們可知您可將不同功能用途例如 iSCSI、VMotion、VM、Service Console 都放在同一個 vSwitch 上也可放在不同的 vSwitch 上,至於何種方式比較好則必須視實際環境、流量負載、傳輸效能而定因為二種方式各有其優缺點。
舉例來說若一台 Host 上有三張實體網路卡,若將 iSCSI、VMotion、VM、Service Console 都放在同一個 vSwitch 上或不同 vSwitch 上大致可想得到的優缺點為
  • 同一個 vSwitch: 由於多張實體網路卡指定給同一個 vSwitch 後將具有頻寬的負載平衡 (Balances Traffic) 及容錯 (Failover) 功能,因此好處當實體網路發生問題時因為容錯功能發揮將使得連線不致中斷,但缺點就是所有的服務都在同一個 vSwitch 上亂竄互相影響 (雖然可透過 Port Group 設定進行微調)。
  • 不同一個 vSwitch: 好處當然就是相關服務及傳輸都互相隔離,如此一來傳輸效能及品質都將保持一定的水準,但相對來說若實體網路發生問題時服務也將因此中斷。



Port Group

Port Binding 模式

  • Static Binding: 表示對應一個 VM 就佔用一個 Port
  • Dynamic Binding: 表示該 VM Power ON 時才佔用一個 Port 若 VM Power Off 則釋放 Port 出來
  • Ephemeral - no Binding: 表示沒有 Port Binding 功能

限制流入/流出流量

Distributed Switches (VDS) 支援網路流量 流入 Inbound / 流出 Outbound 的限制,而 Standard Switches (VSS) 僅支援 網路流量 流出 Outbound 的限制
  • Ingress: 即 Traffic Inbound (流入)
  • Dgress: 即 Traffic Outbound (流出)

Security

  • Promiscuous Mode: 是否啟用網卡混亂模式,也就是開啟網卡監聽功能
  • MAC Address Changes: 是否允許 VM 能更改 MAC Address
  • Forged Transmits: 是否啟用阻擋 VM 所送出的封句 (通常配合 Application 進行設定)

VLANs

VLAN 在虛擬環境下有三種不同的方式:
  • VST (Virtual Switch Tagging): 虛擬 vSwitch 進行 tagged 及 untagged,由虛擬 vSwitch 來定義 VLAN 而實體 Switch 不作任何 VLAN 設定 (也就是實體網卡 Uplink Port 必須接至實體 Switch 的 Trunk Port),由於 vSwitch 的 VLAN 是由 VMkernel 來執行 tagged 及 untagged 的動作因此對於 Host 效能有一定程度影響。
  • VGT (Vitual Guest Tagging): VM (Guest OS) 進行 tagged 及 untagged,由 VM 本身自行設定 VLAN 通常很少使用此方式。
  • EST (External Switch Tag): 實體 Switch 進行 tagged 及 untagged,由實體 Switch 設定 VLAN 而 VM 及 vSwitch 不作任何 VLAN 設定,也就是 VM 從哪個 Uplink Port 至實體 Switch 即屬於該 VLAN。
  • PVLAN (Private VLAN): 也就是 VLAN 中又有 VLAN,有如下三種模式 (VDS 才支援,VSS 未支援此功能)
    • Promiscuous: VM E 及 VM F 可互通,同時也可跟 VM ABCD 互通
    • Isolated: VM C 及 VM D 不會通,跟 VM AB 不通,但跟 VM EF 可互通
    • Community: VM A 及 VM B 可互通,跟 VM CD 不通,但跟 VM EF 會通
Community (PVLAN 17)Isolated (PVLAN 155)Promiscuous (PVLAN 5)
VM AVM BVM CVM DVM EVM F
vDS
Primary PVLAN 5

2013年2月20日 星期三

NAT的種類與特性

假設內部位址(Private IP)為N,外部位址(Public IP)為M,NAT的種類分為:

1.Dynamic NAT
   # N個Private IP嘗試從M個Public IP中挑出一個轉址,如果N>M有可能會導致有IP無法轉
      址,另一個缺點是會浪費Public IP,這種情況建議改用PAT
   # NAT timeout可以藉由timeout xlate來改變。
   # 無法提供反向存取,遠端Host無法藉由存取Public IP來存取Private IP,
      但在位址轉換期間,遠端Host有機會嘗試藉由存取Public IP來存取Private IP(前提是
      Security policy有allow),有心攻擊者仍有機會藉由工具達成入侵的目的。


2.PAT
   # M=1,N個Private IP嘗試從1個Public IP中挑出一個轉址,由於只有一個Public IP,所以
      藉由轉換Port(Port Number > 1024)的方式來達到轉址的目的。
      這種方式在某些多媒體運用無法提供正常運作。
   # PAT timeout=30秒,無法改變。
   # 無法提供反向存取,遠端Host無法藉由存取Public IP來存取Private IP,
      但在位址轉換期間,遠端Host有機會嘗試藉由存取Public IP來存取Private IP(前提是
      Security policy有allow),有心攻擊者仍有機會藉由工具達成入侵的目的。

3.Static NAT
   # N=M,提供一對一的轉址
   # 提供反向存取,遠端Host可藉由存取Public IP來直接存取Private IP。
      (在Juniper Firewall上稱為MIP)
   # Static NAT和Dynamic NAT的不同

4.Static PAT
   #提供外部對內部的存取
   #M=1,藉由存取外部IP:port 來直接存取內部IP。 (在Juniper Firewall上稱為VIP)