發表于 2017-11-28 17:26
1、Windows OS和WMI簡介
隨著互聯網技術的飛速發展,我們對于IT業務系統的服務能力要求越來越高。根據Gartner統計2017年1季度全球服務器出貨量超過125億美金,正在運行支撐各種業務的服務器數量更是龐大。這些服務器中有超過50%的服務器正在使用Windows OS。這些Windows OS支撐了各種大中小型的業務應用,支撐著人們工作、生活等各項活動的開展。那么如此龐大的系統,我們如何有效的監控和管理呢?微軟為Windows OS提供了一個有效的監控工具WMI。
圖 1-1 全球服務器操作系統占有率
WMI(Windows Management Instrumentation)是微軟對WBEM(Web-Based Enterprise Management)的實現,WBEM則是工業界制定的訪問企業環境下管理信息的統一標準[1]。WMI使用CIM(Common Information Model)工業標準[2]來表示操作系統、應用、網絡、設備以及其他被管組件。CIM與WBEM由DMTF(Distributed Management Task Force)開發和維護。
除使用WMI獲取本地計算機信息外,WMI還可經由DCOM(Distributed Component ObjectModel[3])建立遠程連接獲取遠程計算機的信息。因此WMI可作為監控Windows操作系統的有力手段。
2、跨網絡環境下的Windows OS服務器監控
由于IT業務系統的日益龐大,IT基礎資源正在通過各種資源池將網絡和服務器資源進行虛擬化(1:N和N:1)。我們將不同業務隔離在不同的虛擬網絡中,同時還有跨地域的業務應用分布。在這樣的環境下,需要對于Windows OS進行統一監控,通常都必須面對一個問題--NAT地址轉換。NAT可以有效的節約IP地址,隱藏內部的網絡環境;但是在NAT環境下由于通常采用1對多或者多對多的地址映射規則,導致了監控平臺無法有效的訪問Windows OS。
圖 1-2 大型IDC的典型業務場景
勤智運維結合多年的IT運維經驗,將主機的有效配置和勤智IT資源智能發現技術相結合,通過OneCenter統一運維平臺,有效的解決了跨越NAT的Windows OS服務器監控問題。下面詳細分析一下WMI在NAT環境下的相關特性。
2.1 NAT環境下的WMI配置
在NAT環境下,當監控運維平臺需要從NAT業務網絡外部訪問業務網絡內部Windows OS服務器時,需要在NAT網關上配置靜態端口映射,將WAN端的入站請求正確轉發到被監控遠程計算機。
2.1.1端口映射配置
WMI經由DCOM建立遠程連接,因此將向遠程計算機135端口發起請求:
圖 2-1 無NAT環境下的WMI遠程連接
圖 2-1展示了無NAT環境下WMI建立遠程連接的WireShark軟件抓包情況(經過濾),其中監控運維平臺IP為172.16.30.31,Windows OS服務器IP地址為192.168.1.33。注意,除了向Windows OS服務器的135端口發起TCP握手請求之外,當監控運維平臺接收到RemoteCreateInstance Response后,還會向1043端口發起請求。經過多次實驗可知,這一端口是隨機的。這是由于操作系統會向每個DCOM應用程序分配一個終結點(Endpoint),在默認配置下,WMI的終結點是隨機的TCP端口。
因此,需要實現跨越NAT的Windows OS監控除了完成135端口的映射外,還需要將WMI的終結點固定下來并進行端口映射。在Windows Vista及更新的操作系統中,可以通過執行命令Winmgmt /Standalone后重啟WMI服務實現 [4]。固定的終結點默認為24158,這一數值可以進行設置。
在NAT網關上配置端口映射:135映射到遠程計算機的135端口;終結點映射到遠程計算機的對應端口,就完成了NAT路由上的端口映射配置。
2.1.2IP地址配置
通過NAT配置端口映射后,WMI連接仍然無法成功,WBEMTest測試工具將提示RPC服務器不可用:
圖 2-2 NAT環境下的WMI遠程連接
圖 2-2展示了NAT環境下WMI建立遠程連接的WireShark軟件抓包情況(經過濾),其中本地計算機IP為10.1.103.82,NAT網關WAN端地址為10.1.104.68,NAT已設置端口映射。此時,當監控運維平臺服務器收到RemoteCreateInstance Response后,并未向Windows OS服務器WMI終結點(路由器WAN端24158端口)發起TCP握手請求。
考慮到WMI終結點可以指定任意TCP端口,必然在響應中有對應的終結點端口信息,則可以猜想在響應中也有對應的IP地址信息。深入分析RemoteCreateInstance Response:
圖 2-3 RemoteCreateInstance Response分析
圖 2-3 展示了響應中的地址信息,其中WIN-JO2OB7DN0HG為遠程計算機的主機名,192.168.40.1為監控運維平臺服務器與NAT路由器LAN端在同一子網內的私有IP地址,192.168.40.1和192.168.1.200為監控運維平臺其他網卡IP地址,并且可以抓包到本地計算機嘗試向這幾個地址發起請求。
基于上述事實,一種解決方式是在本地計算的Hosts文件中,將監控運維平臺的主機名解析為NAT路由器的WAN端IP。這樣本地計算機就會嘗試向NAT路由器的WAN端發起請求,完成WMI連接。
3、總結
本文簡單介紹了WMI、NAT等基礎知識,并詳細說明了WMI監控遠程計算機的配置方法以及在NAT環境下的網絡配置方法。通過分析NAT環境下WMI的數據包,初步探索了WMI通過DCOM建立遠程連接的內部原理。希望這個分析過程能在配置其他網絡環境下的其他協議時起到一些幫助。
Copyright ?2005-2021 勤智數碼科技股份有限公司 川公網安備 51019002003506號 蜀ICP備11012966號-7