近期筆者在單位服務(wù)器虛擬化(VMware vSphere)集群中新建了一臺虛擬主機用作Web服務(wù)器部署Web應(yīng)用。虛擬主機建好后,服務(wù)器操作系統(tǒng)(CentOS 7)順利安裝完成,虛擬機能正常訪問網(wǎng)絡(luò)。奇怪的是,遠程VPN登錄服務(wù)器網(wǎng)絡(luò),無法訪問上述創(chuàng)建的VMware虛擬主機,而且也無法Ping通故障虛擬主機。但遠程VPN進入服務(wù)器網(wǎng)絡(luò),通過VMware vSphere管理主機,能Ping通上述故障虛擬主機,故障虛擬主機也能Ping通VMware vSphere管理主機。
服務(wù)器虛擬化采用VMware vSphere6.0虛擬化軟件將三臺物理服務(wù)器進行集群,三臺物理主機的互聯(lián)網(wǎng)絡(luò)部分和存儲網(wǎng)絡(luò)部分獨立分開,每臺物理服務(wù)器通過獨立網(wǎng)絡(luò)接口與存儲交換機相連,然后存儲交換機再與網(wǎng)絡(luò)存儲相聯(lián)接。
同時,每臺物理服務(wù)器通過另外一個獨立網(wǎng)絡(luò)接口與匯聚交換機相聯(lián)接,再通過防火墻接入互聯(lián)網(wǎng)。有專門的一臺物理主機用作VMware vSphere管理主機和網(wǎng)絡(luò)存儲管理主機。具體結(jié)構(gòu)如圖1所示。
部署Web應(yīng)用的工程師需要通過SSH遠程登錄到新建的虛擬主機進行遠程部署,反映無法通過SSH進行遠程連接。SSH服務(wù)已經(jīng)安裝并成功啟動,并且在VMware vSphere管理主機進行過SSH遠程連接測試,能進行連接,用管理員賬號也可以成功登錄,一切正常。初步可以排除故障虛擬主機的配置問題。如果SSH服務(wù)和網(wǎng)絡(luò)配置有問題,上述測試應(yīng)該能夠發(fā)現(xiàn)問題的。
1.聯(lián)系遠程部署Web應(yīng)用工程師進行聯(lián)合調(diào)試。要求進行Ping測試,對方反饋無法Ping通虛擬主機(虛擬主機網(wǎng)絡(luò)允許Ping)。初步排除SSH服務(wù)引起的故障,問題很可能出在網(wǎng)絡(luò)連接上。
2.遠程登錄VMware vSphere管理主機,Ping故障的虛擬主機。奇怪的現(xiàn)象出現(xiàn)了,筆者居然可以Ping通。遠程部署Web應(yīng)用工程師是通過VPN連接到服務(wù)器網(wǎng)絡(luò)的,筆者也是通過VPN連接進來的。難道是VPN登錄賬號配置的問題?
圖1 網(wǎng)絡(luò)拓撲結(jié)構(gòu)
3.登錄防火墻,檢查VPN配置,筆者所用VPN賬號與部署工程師所用的VPN賬號配置權(quán)限完全相同。為了進一步驗證,用部署工程師所用的VPN賬號遠程登錄到服務(wù)器網(wǎng)絡(luò),通過VMware vSphere管理主機Ping故障的虛擬主機,居然可以Ping通,說明故障跟VPN賬號配置無關(guān)。
4.再次詢問部署工程師是如何進行操作的。部署工程師反饋是通過VPN遠程連接后,直接在本地遠程連接SSH和Ping包測試的,無法通過SSH登錄,也無法Ping通。部署工程師和筆者的測試不同在于:一個是VPN連接后,在本地直接訪問虛擬主機,而筆者是VPN連接后,遠程登錄到VMware vSphere管理主機,通過VMware vSphere管理主機訪問虛擬主機。VPN登錄連接成功后,本地主機和VMware vSphere管理主機是一樣的,都在同一個服務(wù)器組成的局域網(wǎng)內(nèi),不應(yīng)該無法Ping通。
5.模擬部署工程師的操作進行測試。首先通過VPN登錄服務(wù)器網(wǎng)絡(luò),在本地直接Ping故障虛擬主機,的確無法Ping通。難道是VMware vSphere網(wǎng)絡(luò)配置的問題?嘗試通過服務(wù)器局域網(wǎng)中的另外一臺實體服務(wù)器Ping故障虛擬主機,也是可以Ping通的。VMware vSphere網(wǎng)絡(luò)配置的問題也被排除了。
至此,故障已經(jīng)相當明確了,服務(wù)器局域網(wǎng)本地訪問是沒有任何問題,問題就聚焦在VPN登錄進來的主機。懷疑問題應(yīng)該出在了出口防火墻的VPN配置上。
6.VPN是在內(nèi)網(wǎng)中架設(shè)一臺VPN服務(wù)器。用戶連上互聯(lián)網(wǎng)后,通過互聯(lián)網(wǎng)連接VPN服務(wù)器,然后通過VPN服務(wù)器進入內(nèi)網(wǎng),可讓用戶通過外網(wǎng)訪問到內(nèi)網(wǎng)資源。VPN連接成功,就相當于內(nèi)部局域網(wǎng)中的一臺主機。
筆者單位的VPN服務(wù)器集成在了防火墻設(shè)備中。登錄網(wǎng)絡(luò)防火墻,仔細分析VPN配置,發(fā)現(xiàn)VPN登錄進來的用戶賬號被分配到了172.17.70.X網(wǎng)段。問題進一步明晰,是172.17.70.X的網(wǎng)段的主機無法Ping通172.17.50.X網(wǎng)段的故障虛擬主機。是否172.17.70.X的網(wǎng)段的主機也無法Ping通172.17.50.X網(wǎng)段的其他主機?如果同樣也無法Ping通,則問題可能出在三層轉(zhuǎn)發(fā)。結(jié)合圖1,可以判定是網(wǎng)絡(luò)防火墻的問題。如果可以正常Ping通,說明僅無法Ping通故障虛擬主機,則問題很可能出在網(wǎng)關(guān)配置。
7.VPN遠程登錄連接,在本地直接Ping172.17.50.X網(wǎng)段的另一臺服務(wù)器172.17.50.6,一切正常。由此可以推斷,故障是由網(wǎng)關(guān)配置造成的。
圖2 故障虛擬主機網(wǎng)絡(luò)配置
由于VPN遠程登錄后,可以Ping通172.17.50.X網(wǎng)段的其他主機,說明防火墻的VPN關(guān)于網(wǎng)絡(luò)地址分配的配置沒有問題。問題出在故障虛擬主機的網(wǎng)絡(luò)配置。遠程登錄到VMware vSphere管理主機,查看故障虛擬主機的網(wǎng)絡(luò)配置(如圖2)。故障虛擬主機的網(wǎng)關(guān)被錯設(shè)置成了172.17.50.253,正確的網(wǎng)關(guān)應(yīng)該是172.17.50.254。修改網(wǎng)關(guān),設(shè)置完成重新啟動,故障消失。
本次VMware虛擬主機網(wǎng)絡(luò)不通故障的順利解決,給我們提供了以下四點啟發(fā)。
1.Ping命令是網(wǎng)絡(luò)管理員的得力助手,在日常的網(wǎng)絡(luò)維護和故障排除中有著不可替代的作用。在使用Ping命令前,請確保被Ping主機、網(wǎng)絡(luò)設(shè)備(如:防火墻、路由器、三層交換機等設(shè)備)、Ping主機允許Ping包通過,否則根本無法確認網(wǎng)絡(luò)是否連通。
2.網(wǎng)絡(luò)是一個互聯(lián)互通的系統(tǒng),需要放在一個系統(tǒng)里綜合考慮。開始筆者是排除故障虛擬主機的配置問題,最后問題又聚焦回故障主機的網(wǎng)絡(luò)配置,最終通過重新修改網(wǎng)關(guān)配置解決問題。
3.主機在同一個網(wǎng)段內(nèi)互相訪問,無需通過網(wǎng)關(guān)進行轉(zhuǎn)發(fā),網(wǎng)關(guān)配置出錯,將不會影響同一個網(wǎng)段內(nèi)的主機互相訪問。主機跨網(wǎng)段訪問時,網(wǎng)關(guān)就顯得至關(guān)重要了。如果網(wǎng)關(guān)配置出錯,主機將數(shù)據(jù)包發(fā)往錯誤的地址,從而造成網(wǎng)絡(luò)不通。
4.網(wǎng)絡(luò)管理工作不能過于隨意,得遵循一定的規(guī)范。之所以出現(xiàn)上述錯誤配置,是由于筆者單位內(nèi)部局域網(wǎng)中有部分三層交換機被網(wǎng)絡(luò)工程師配置成相應(yīng)網(wǎng)段的253地址作為網(wǎng)關(guān)。按照常理網(wǎng)關(guān)配置一般不是網(wǎng)段的1地址就是254地址,一般網(wǎng)段的開始或者結(jié)尾地址是分配給網(wǎng)關(guān)使用,即172.17.50.1或者172.17.50.254。如果嚴格遵循這種分配規(guī)范,怎么也不會將網(wǎng)關(guān)錯誤配置成172.17.50.253。