︿
Top

前言

上一篇文章「理論篇 - VMware View Agent Direct-Connection」當中,已經說明有關 VADC 的運作原理,本文將直接進入實戰程序,開始來玩玩吧。

本文實作環境 VDI VM 為 Windows 7,並且只在單機 WorkGroup 環境 (建立 Windows AD/DNS/DHCP),虛擬桌面環境中僅有 ESXi 及 vCenter Server,而建立 Horizon View 當中的 Composer、Connection Server。



實作環境

  • VMware vSphere ESXi 5.5 (1331820)
  • VMware vCenter Server 5.5.0 (1378901)
  • Windows 7 SP1 (WorkGroup)
  • VMware View Agent 5.3 (1427931)
  • VMware View Agent Direct-Connection 5.3 (1427931)
  • VMware View Client 5.4.0 (1219906)



設定 VM 的 Video RAM 大小

在理論篇中已經說明 VADC 的安裝程序,「建 VM > 設定 Video RAM > 安裝 OS > 安裝 View Agent > 安裝 View Agent Direct-Connection」,一開始建立好 VM 之後,必須將 VM 的  Video RAM 修改為至少「128 MB」(最大支援至 512 MB) 以支援 PCoIP 協定 的運作需求。





安裝 View Agent 及 VADC

安裝 View Agent 及 VADC 時,都採用「預設值」進行安裝程序即可。值得注意的地方,大概是安裝 VADC 後會建立「View Agent Direct-Connection Users」群組,才及開啟「VMware View HTTPS (TCP Port 443)」的防火牆規則。

其中建立 View Agent Direct-Connection Users 群組的用意,若是你的環境中並沒有建立 Windows AD 網域,那麼在單機運作的環境當中,你仍然可以透過本機群組的功能來決定哪些帳號可以利用 View Client 進行登入及權限指派的動作。

預設情況下,會將「Authenticated Users」群組加入 View Agent Direct-Connection Users 群組當中,也就是「通過驗證」的使用者帳號便可以利用 View Client 登入安裝 VADC 的 VDI VM。你也可以加入單個使用者帳號,例如 使用者帳號 Weithenn 也可以登入此台 VDI VM,但它的帳號權限只有 Users Group。



另外,也必須再次確認 VDI VM 在安裝 VADC 之後,有開啟 VMware View HTTPS (TCP Port 443) 的防火牆規則,否則 View Client 屆時將無法順利連接至此台 VDI VM。此外,若企業內部有建立 CA 憑證中心的話,也可以將預設的 Self-Signed SSL 進行更換,但本文並不會針對此議題進行討論及實作,有興趣的朋友可以參考 VMware Horizon View 5.3 Agent Direct-Connection Plugin Administration Guide




組態調整

因為 VADC 是適合小架構環境,甚至可以不需要整合 Windows AD 網域,但隨之而來的問題就是「管理」問題了,舉例來說 想要設定 VADC 的 Session Timeout 組態的話,若有 Windows AD 的話,可以透過 GPO 進行組態派送的動作,若是單機環境則必須要一台一台處理了。

單機環境的話,你可以透過修改在「HKEY_LOCAL_MACHINE\Software\VMware, Inc.\VMware VDM\Agent\Configuration\XMLAPI」路徑當中的「機碼 (Registry)」值,來進行組態的調整,例如 要調整 Session Timeout 組態的話,請加入「sessionTimeout」的 Registry Value,並採用「REG_SZ」的 Type,接著填入你要設定的組態值 (預設為 600 Minutes)。詳細的組態設定項目及說明,請參考 VMware Horizon View 5.3 Agent Direct-Connection Plugin Administration Guide




整合 NAT / Port Mapping 機制

環境中只有「1 個 Public IP」在 NAT 的 WAN 介面中 (ex. 61.60.59.58),而 NAT 另一個 LAN 介面 (ex. 10.10.1.0/24) 則可以與安裝 VADC 的 VDI VM 溝通,此時就來實作 NAT / Port Mapping 機制,您也會了解到理論篇中說明為何要替每個 VDI VM 先預留「5 Ports」的原因。照官方 VMware End-User Computing Blog - Using View Agent Direct-Connection in VMware Horizon View 5.3的說明中可知,若以單一 Public IP 且 Port 65535 計算的話,那麼將可以處理約「13,000」的 VDI VM (這種大架構還是別用此方法吧?)

此實作中,NAT 採用 FreeBSD 8.4 並啟用 PF 機制來達成,詳細資訊請參考站內文章「Packet Filter - 建置 NAT 機制」,而 View Client 將從網際網路連到安裝 VADC 的 VDI VM,並且僅採用 PCoIP 協定進行溝通。

NAT / Port Mapping 設定 (FreeBSD PF)

在 NAT 主機 上,設定的 Port Mapping 規則說明如下:
  • Public IP: 61.60.59.58
  • VADC VDI VM IP: 10.10.1.21
  • VADC VDI VM SSL Port: 443 (View Client 連接至 VDI VM),外部導入 Port 為 10120
  • VADC VDI VM PCoIP Port: 4172 (TCP / UDP),外部導入 Port 為 10121
  • VADC VDI VM Framework Channel Port: 32111,外部導入 Port 為 10122

下列為 FreeBSD PF 規則中 NAT 及 RDR 的部份:
# cat /etc/pf.conf
  ###Macros###
  ext_if="vmx3f0"          #WAN
  lan_if="vmx3f1"          #LAN
  lan_net="10.10.1.0/24"   #LAN Subnet
  ###NAT/RDR###
  nat on $ext_if from $lan_net to any -> ($ext_if)
  ###VADC Testing###
  rdr on $ext_if proto tcp from any to $ext_if/32 port 10120 -> 10.10.1.21 port 443
  rdr on $ext_if proto { tcp, udp } from any to $ext_if/32 port 10121 -> 10.10.1.21 port 4172
  rdr on $ext_if proto tcp from any to $ext_if/32 port 10122 -> 10.10.1.21 port 32111


VADC VDI VM 組態設定

完成了 NAT 主機的 Port Mapping 機制設定後,接著你必須在「每台」VADC VDI VM 中進行組態設定,否則 VADC VDI VM 怎麼知道它的 PCoIP、Framework Channel Port 是分別對應哪些來源,下列 VADC_PortMapping.reg 機碼內容,會自動在機碼路徑中新增上述的相關 Port 號,並且新增機碼後「無須」重新啟動即可立即運作。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware VDM\Agent\Configuration\XMLAPI]
"externalIPAddress"="61.60.59.58"
"externalPCoIPPort"="10121"
"externalFrameworkChannelPort"="10122"





View Client 連接 VADC VDI VM

順利設定完畢之後,開啟  View Client 將 NAT 主機 WAN 介面的 IP 位址 (此實作為 61.60.59.58),以及要導向至該台 VADC VDI VM 的 Port 443 (此實作為 10120)填入後,按下 連線 鈕即可。


接著,填入剛才在 View Agent Direct-Connection Users 群組當中,所允許連接的「使用者帳號」進行登入的動作,此實作為填入 Weithenn



登入後,因為 Weithenn 使用者帳號,「」具備「Users」群組的權限,所以嘗試要調整防火牆設定時,便會彈出 UAC 驗證視窗。


連接後在 NAT (61.60.59.58) 端可以看到,順利將 View Client (71.70.69.68) 連接時會用到的相關 Port 號 (443/10120、4172/10121、32111/10122),重新導向到 VADC VDI VM (10.10.1.21)。
# pfctl -ss | grep 71.70.69.68
No ALTQ support in kernel
ALTQ related functions disabled
all tcp 10.10.1.21:443 <- 61.60.59.58:10120 <- 71.70.69.68:52980       ESTABLISHED:ESTABLISHED
all tcp 10.10.1.21:4172 <- 61.60.59.58:10121 <- 71.70.69.68:52981       ESTABLISHED:FIN_WAIT_2
all tcp 10.10.1.21:32111 <- 61.60.59.58:10122 <- 71.70.69.68:52982       ESTABLISHED:ESTABLISHED
all udp 10.10.1.21:4172 <- 61.60.59.58:10121 <- 71.70.69.68:50002       MULTIPLE:MULTIPLE




參考

文章標籤: ,