作者簡(jiǎn)介:
李騁,SSBU團(tuán)隊(duì)資深技術(shù)研發(fā)工程師,擁有多年技術(shù)研究經(jīng)驗(yàn),熱愛(ài)技術(shù),善于自學(xué)和鉆研,對(duì)運(yùn)維網(wǎng)絡(luò)、拓?fù)渌惴ň哂蓄H深的技術(shù)理解,曾攻克ITM產(chǎn)品采集相關(guān)的諸多技術(shù)難題。
1、Windows OS和WMI簡(jiǎn)介
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,我們對(duì)于IT業(yè)務(wù)系統(tǒng)的服務(wù)能力要求越來(lái)越高。根據(jù)Gartner統(tǒng)計(jì)2017年1季度全球服務(wù)器出貨量超過(guò)125億美金,正在運(yùn)行支撐各種業(yè)務(wù)的服務(wù)器數(shù)量更是龐大。這些服務(wù)器中有超過(guò)50%的服務(wù)器正在使用Windows OS。這些Windows OS支撐了各種大中小型的業(yè)務(wù)應(yīng)用,支撐著人們工作、生活等各項(xiàng)活動(dòng)的開(kāi)展。那么如此龐大的系統(tǒng),我們?nèi)绾斡行У谋O(jiān)控和管理呢?微軟為Windows OS提供了一個(gè)有效的監(jiān)控工具WMI。
圖 1-1 全球服務(wù)器操作系統(tǒng)占有率
WMI(Windows Management Instrumentation)是微軟對(duì)WBEM(Web-Based Enterprise Management)的實(shí)現(xiàn),WBEM則是工業(yè)界制定的訪問(wèn)企業(yè)環(huán)境下管理信息的統(tǒng)一標(biāo)準(zhǔn)[1]。WMI使用CIM(Common Information Model)工業(yè)標(biāo)準(zhǔn)[2]來(lái)表示操作系統(tǒng)、應(yīng)用、網(wǎng)絡(luò)、設(shè)備以及其他被管組件。CIM與WBEM由DMTF(Distributed Management Task Force)開(kāi)發(fā)和維護(hù)。
除使用WMI獲取本地計(jì)算機(jī)信息外,WMI還可經(jīng)由DCOM(Distributed Component Object Model[3])建立遠(yuǎn)程連接獲取遠(yuǎn)程計(jì)算機(jī)的信息。因此WMI可作為監(jiān)控Windows操作系統(tǒng)的有力手段。
2、跨網(wǎng)絡(luò)環(huán)境下的Windows OS服務(wù)器監(jiān)控
由于IT業(yè)務(wù)系統(tǒng)的日益龐大,IT基礎(chǔ)資源正在通過(guò)各種資源池將網(wǎng)絡(luò)和服務(wù)器資源進(jìn)行虛擬化(1:N和N:1)。我們將不同業(yè)務(wù)隔離在不同的虛擬網(wǎng)絡(luò)中,同時(shí)還有跨地域的業(yè)務(wù)應(yīng)用分布。在這樣的環(huán)境下,需要對(duì)于Windows OS進(jìn)行統(tǒng)一監(jiān)控,通常都必須面對(duì)一個(gè)問(wèn)題--NAT地址轉(zhuǎn)換。NAT可以有效的節(jié)約IP地址,隱藏內(nèi)部的網(wǎng)絡(luò)環(huán)境;但是在NAT環(huán)境下由于通常采用1對(duì)多或者多對(duì)多的地址映射規(guī)則,導(dǎo)致了監(jiān)控平臺(tái)無(wú)法有效的訪問(wèn)Windows OS。
圖 1-2 大型IDC的典型業(yè)務(wù)場(chǎng)景
勤智運(yùn)維結(jié)合多年的IT運(yùn)維經(jīng)驗(yàn),將主機(jī)的有效配置和勤智IT資源智能發(fā)現(xiàn)技術(shù)相結(jié)合,通過(guò)OneCenter統(tǒng)一運(yùn)維平臺(tái),有效的解決了跨越NAT的Windows OS服務(wù)器監(jiān)控問(wèn)題。下面詳細(xì)分析一下WMI在NAT環(huán)境下的相關(guān)特性。
2.1 ? ? ? ? ?NAT環(huán)境下的WMI配置
在NAT環(huán)境下,當(dāng)監(jiān)控運(yùn)維平臺(tái)需要從NAT業(yè)務(wù)網(wǎng)絡(luò)外部訪問(wèn)業(yè)務(wù)網(wǎng)絡(luò)內(nèi)部Windows OS服務(wù)器時(shí),需要在NAT網(wǎng)關(guān)上配置靜態(tài)端口映射,將WAN端的入站請(qǐng)求正確轉(zhuǎn)發(fā)到被監(jiān)控遠(yuǎn)程計(jì)算機(jī)。
2.1.1 端口映射配置
WMI經(jīng)由DCOM建立遠(yuǎn)程連接,因此將向遠(yuǎn)程計(jì)算機(jī)135端口發(fā)起請(qǐng)求:
圖 2-1 無(wú)NAT環(huán)境下的WMI遠(yuǎn)程連接
圖 2-1展示了無(wú)NAT環(huán)境下WMI建立遠(yuǎn)程連接的WireShark軟件抓包情況(經(jīng)過(guò)濾),其中監(jiān)控運(yùn)維平臺(tái)IP為172.16.30.31,Windows OS服務(wù)器IP地址為192.168.1.33。注意,除了向Windows OS服務(wù)器的135端口發(fā)起TCP握手請(qǐng)求之外,當(dāng)監(jiān)控運(yùn)維平臺(tái)接收到RemoteCreateInstance Response后,還會(huì)向1043端口發(fā)起請(qǐng)求。經(jīng)過(guò)多次實(shí)驗(yàn)可知,這一端口是隨機(jī)的。這是由于操作系統(tǒng)會(huì)向每個(gè)DCOM應(yīng)用程序分配一個(gè)終結(jié)點(diǎn)(Endpoint),在默認(rèn)配置下,WMI的終結(jié)點(diǎn)是隨機(jī)的TCP端口。
因此,需要實(shí)現(xiàn)跨越NAT的Windows OS監(jiān)控除了完成135端口的映射外,還需要將WMI的終結(jié)點(diǎn)固定下來(lái)并進(jìn)行端口映射。在Windows Vista及更新的操作系統(tǒng)中,可以通過(guò)執(zhí)行命令Winmgmt /Standalone后重啟WMI服務(wù)實(shí)現(xiàn) [4]。固定的終結(jié)點(diǎn)默認(rèn)為24158,這一數(shù)值可以進(jìn)行設(shè)置。
在NAT網(wǎng)關(guān)上配置端口映射:135映射到遠(yuǎn)程計(jì)算機(jī)的135端口;終結(jié)點(diǎn)映射到遠(yuǎn)程計(jì)算機(jī)的對(duì)應(yīng)端口,就完成了NAT路由上的端口映射配置。
2.1.2 IP地址配置
通過(guò)NAT配置端口映射后,WMI連接仍然無(wú)法成功,WBEMTest測(cè)試工具將提示RPC服務(wù)器不可用:
圖 2-2 NAT環(huán)境下的WMI遠(yuǎn)程連接
圖 2-2展示了NAT環(huán)境下WMI建立遠(yuǎn)程連接的WireShark軟件抓包情況(經(jīng)過(guò)濾),其中本地計(jì)算機(jī)IP為10.1.103.82,NAT網(wǎng)關(guān)WAN端地址為10.1.104.68,NAT已設(shè)置端口映射。此時(shí),當(dāng)監(jiān)控運(yùn)維平臺(tái)服務(wù)器收到RemoteCreateInstance Response后,并未向Windows OS服務(wù)器WMI終結(jié)點(diǎn)(路由器WAN端24158端口)發(fā)起TCP握手請(qǐng)求。
考慮到WMI終結(jié)點(diǎn)可以指定任意TCP端口,必然在響應(yīng)中有對(duì)應(yīng)的終結(jié)點(diǎn)端口信息,則可以猜想在響應(yīng)中也有對(duì)應(yīng)的IP地址信息。深入分析RemoteCreateInstance Response:
圖 2-3 RemoteCreateInstance Response分析
圖 2-3 展示了響應(yīng)中的地址信息,其中WIN-JO2OB7DN0HG為遠(yuǎn)程計(jì)算機(jī)的主機(jī)名,192.168.40.1為監(jiān)控運(yùn)維平臺(tái)服務(wù)器與NAT路由器LAN端在同一子網(wǎng)內(nèi)的私有IP地址,192.168.40.1和192.168.1.200為監(jiān)控運(yùn)維平臺(tái)其他網(wǎng)卡IP地址,并且可以抓包到本地計(jì)算機(jī)嘗試向這幾個(gè)地址發(fā)起請(qǐng)求。
基于上述事實(shí),一種解決方式是在本地計(jì)算的Hosts文件中,將監(jiān)控運(yùn)維平臺(tái)的主機(jī)名解析為NAT路由器的WAN端IP。這樣本地計(jì)算機(jī)就會(huì)嘗試向NAT路由器的WAN端發(fā)起請(qǐng)求,完成WMI連接。
3、總結(jié)
本文簡(jiǎn)單介紹了WMI、NAT等基礎(chǔ)知識(shí),并詳細(xì)說(shuō)明了WMI監(jiān)控遠(yuǎn)程計(jì)算機(jī)的配置方法以及在NAT環(huán)境下的網(wǎng)絡(luò)配置方法。通過(guò)分析NAT環(huán)境下WMI的數(shù)據(jù)包,初步探索了WMI通過(guò)DCOM建立遠(yuǎn)程連接的內(nèi)部原理。希望這個(gè)分析過(guò)程能在配置其他網(wǎng)絡(luò)環(huán)境下的其他協(xié)議時(shí)起到一些幫助。
引用
1、 Distributed Management Task Force, Inc., “Web-Based Enterprise Management,” [聯(lián)機(jī)]. Available: http://www.dmtf.org/standards/wbem.
2、 Distributed Management Task Force, Inc., “Common Information Model,” [聯(lián)機(jī)]. Available: https://www.dmtf.org/standards/cim.
3、 Microsoft, “[MS-DCOM]: Distributed Component Object Model (DCOM) Remote Protocol,” [聯(lián)機(jī)]. Available: https://msdn.microsoft.com/en-us/library/cc226801.aspx.
4、 Microsoft, “Setting Up a Fixed Port for WMI,” [聯(lián)機(jī)]. Available: https://msdn.microsoft.com/en-us/library/bb219447(v=vs.85).aspx.
推薦閱讀
【觀點(diǎn)】體驗(yàn)自助式運(yùn)維服務(wù),構(gòu)建高校一站式IT服務(wù)平臺(tái)
【觀點(diǎn)】可視化,讓運(yùn)維由繁化簡(jiǎn)
【大話運(yùn)維 第9期】 運(yùn)維大數(shù)據(jù)日記:故障根源分析之關(guān)聯(lián)規(guī)則挖掘
閱讀原文:http://mp.weixin.qq.com/s?timestamp=1511861572&src=3&ver=1&signature=LFe0h-QDceeGNpxjK1st*fMEbvdBGDEYViojvGFgRi7Ns2eFcdvIcimYjLlSMcZLxE987NspVFNI4fW6hTVL*ok3wipHqyMJ75OYjESywZ3usoG5yFNZU64Kc4PnRZs1r1EVj4l-NVjmTdZ-wRI1Wp4HZ91jvl4mcCtL8sFRSK4=&devicetype=Windows-QQBrowser&version=61030004&pass_ticket=qMx7ntinAtmqhVn+C23mCuwc9ZRyUp20kIusGgbFLi0=&uin=MTc1MDA1NjU1&ascene=1