毀滅性故障 DHCP服務(wù)器大罷工
在不少企事業(yè)單位,出于節(jié)約資源或者便利的需要,往往在一臺PC機上部署很多服務(wù),這樣這臺PC就兼職較多服務(wù)器功能。這樣的規(guī)劃確實方便了管理和維護,但也為網(wǎng)絡(luò)的安全、穩(wěn)定運行埋下了隱患。一旦網(wǎng)絡(luò)發(fā)生故障,對整個局域網(wǎng)的影響幾乎是毀滅性的。和大家共享一個相關(guān)案例,以引起大家的重視。
一、網(wǎng)絡(luò)狀況描述
這個案例來自某高級中學(xué)的中心機房。在該校的中心機房里有不少服務(wù)器,有為大多數(shù)計算機提供服務(wù)的公共服務(wù)器,例如DHCP服務(wù)器。也有為專業(yè)機房和專業(yè)軟件服務(wù)的專用服務(wù)器,例如ERP服務(wù)器等。其中僅有的一臺DHCP服務(wù)器為3個機房大約150臺客戶端提供服務(wù),負(fù)責(zé)所有機房學(xué)生機IP地址的自動分配。通常情況下,該校的機房至少有2個處于使用狀態(tài),一直以來DHCP服務(wù)器運行良好。
最近,該校的機房部署了在線考試系統(tǒng),需要一個數(shù)據(jù)庫服務(wù)器以保存考試題庫,以及進行評分等。于是,管理員在這臺DHCP服務(wù)器上同時部署了在線考試系統(tǒng),以提供考試中的數(shù)據(jù)交互和存取服務(wù)。此外,由于機房沒有磁盤存儲陣列,該DHCP服務(wù)器同時還作為文件服務(wù)器。以備份機房各種相關(guān)資料,如驅(qū)動程序、服務(wù)器應(yīng)用軟件、上機練習(xí)題、考試題、系統(tǒng)鏡像文件等。學(xué)生機只有系統(tǒng)分區(qū)在硬盤還原卡的保護之下,其他分區(qū)沒有設(shè)定為保護留給學(xué)生作為數(shù)據(jù)盤。為了便于維護,學(xué)生機部署完畢之后,在服務(wù)器上做了系統(tǒng)的鏡像備份,這樣一旦系統(tǒng)被學(xué)生破壞,可以很方便地通過網(wǎng)絡(luò)克隆來恢復(fù)。于是,這臺DHCP服務(wù)器還兼職這項功能。
二、故障現(xiàn)象及診斷
在網(wǎng)絡(luò)考試前一天的模擬測試中,發(fā)現(xiàn)測試機房中的客戶端大部分無法登錄,登錄后無法獲取題庫或者速度非常慢。同時,另外一個機房中正在進行上機課,上課的老師也反映學(xué)生機大面積網(wǎng)絡(luò)不通。上課老師馬上進行了排錯,發(fā)現(xiàn)并不是由于鏈路故障所致。然后,在操作系統(tǒng)的命令提示符中中使用網(wǎng)絡(luò)命令ipconfig,發(fā)現(xiàn)客戶端機器無法獲得IP地址。因此可以肯定是此原因使得不能訪問網(wǎng)絡(luò),重新啟動計算機故障依舊,證明問題不是出在學(xué)生機上。查看交換機指示燈顯示狀態(tài)正常,沒有因堵塞產(chǎn)生死機的現(xiàn)象,那么問題只能是出在DHCP服務(wù)器上了。接下來查看DHCP服務(wù)器上的DHCP服務(wù)狀態(tài),也顯示也正常,但是發(fā)現(xiàn)服務(wù)器操作反應(yīng)較慢。那是什么原因?qū)е翫HCP服務(wù)器相應(yīng)變慢呢?
三、故障原因分析
要理解導(dǎo)致DHCP服務(wù)器相應(yīng)變慢的原因,我們有必要了解一下DHCP服務(wù)的工作過程。如果在局域網(wǎng)中部署了DHCP服務(wù)器,并且客戶端設(shè)置為自動獲得IP地址。這樣當(dāng)DHCP客戶端***次登錄網(wǎng)絡(luò)的時候,也就是客戶端發(fā)現(xiàn)本機上沒有任何IP數(shù)據(jù)設(shè)定,它會向網(wǎng)絡(luò)發(fā)出一個DHCP discover封包。因為客戶端還不知道自己屬于哪一個網(wǎng)絡(luò),所以封包的來源地址會為
0.0.0.0,而目的地址則為255.255.255.255,然后再附上DHCP discover的信息,向網(wǎng)絡(luò)進行廣播。在windows的預(yù)設(shè)默認(rèn)情況下,DHCP discover的等待時間預(yù)設(shè)為1秒,也就是當(dāng)客戶端將***個DHCP discover封包送出去之后,在1秒之內(nèi)沒有得到響應(yīng)的話,就會進行第二次DHCP discover廣播。若一直得不到響應(yīng)的情況下,客戶端一共會有四次DHCP discover廣播(包括***次在內(nèi))。除了***次會等待1秒之外,其余三次的等待時間分別是9、13、16秒。如果都沒有得到DHCP服務(wù)器的響應(yīng),客戶端則會顯示錯誤信息,宣告DHCP discover的失敗。之后,基于使用者的選擇,系統(tǒng)會繼續(xù)在5分鐘之后再重復(fù)一次DHCP discover的過程;當(dāng)DHCP服務(wù)器收到DHCP客戶機廣播的DHCP discover信息后,它會向DHCP客戶機發(fā)送DHCP offer信息,其中包括一個可租用的IP地址。一旦客戶機收到DHCP offer信息,就將使用服務(wù)器所提供的IP地址。
從DHCP的工作過程來分析,學(xué)生機無法獲得IP地址應(yīng)該是DHCP服務(wù)器沒有做出響應(yīng),或者是DHCP服務(wù)器做出了響但學(xué)生機沒有收到DHCP服務(wù)器的DHCP offer信息造成的。測試網(wǎng)線后首先排除了由于網(wǎng)絡(luò)硬件原因造成學(xué)生機收不到DHCP服務(wù)器響應(yīng)的可能,由此判斷就是DHCP服務(wù)器沒有做出正常響應(yīng),但是DHCP服務(wù)器為什么沒有做出響應(yīng)呢?
大家都知道,此時另外一個機房正在進行在線考試的模擬測試,在測試中客戶端會與服務(wù)器之間有大量的數(shù)據(jù)交互,這些數(shù)據(jù)占用了大量的系統(tǒng)資源和網(wǎng)絡(luò)帶寬,因此造成DHCP服務(wù)器的相應(yīng)緩慢。這樣就進入了一個惡性循環(huán),不但在線考試系統(tǒng)無法正常工作,學(xué)生機無法獲得IP地址無法上網(wǎng),而且在網(wǎng)絡(luò)中充斥著大量的重復(fù)請求(包括DHCP客戶端和在線考試系統(tǒng)客戶端)。這些垃圾信息占用了大量帶寬,形成了網(wǎng)絡(luò)風(fēng)暴。更為巧合的是,此時第三個機房內(nèi)正有幾臺系統(tǒng)被學(xué)生破壞的計算機在進行網(wǎng)絡(luò)克隆恢復(fù)。服務(wù)器需要進行大量的數(shù)據(jù)傳輸,這樣就使得服務(wù)器網(wǎng)絡(luò)端和總線負(fù)擔(dān)過重,不僅操作系統(tǒng)進程無法及時響應(yīng)學(xué)生機發(fā)出的DHCP請求,而且三個機房誰都無法正常工作。
四、故障排除
很明顯,這臺不堪重負(fù)的DHCP服務(wù)器造成了三個機房的系列故障。要從根本上解決問題,只有通過升級服務(wù)器或者增加服務(wù)器的數(shù)量,做到各司其職,從而避免服務(wù)器負(fù)擔(dān)過重。即部署專門的DHCP服務(wù)器以供機房的IP服務(wù),部署專門的數(shù)據(jù)庫服務(wù)器以服務(wù)于在線考試系統(tǒng),部署專門的文件服務(wù)器以提供文件服務(wù)器和提供網(wǎng)絡(luò)克隆服務(wù)。這樣,雖然需要額外的投入,但是這是必須的。不過,購置專門的服務(wù)器對于諸如學(xué)校這樣的事業(yè)單位不太現(xiàn)實。在筆者的建議下,該校采取了這樣的方案:由于在線考試系統(tǒng)的數(shù)據(jù)交互頻繁,對服務(wù)器要求比較高,因此取消這臺服務(wù)器的DHCP服務(wù)和文件共享服務(wù)器,專職考試數(shù)據(jù)庫服務(wù)。DHCP服務(wù)和文件共享服務(wù),對于系統(tǒng)性能要求不是很高可以用一般的PC機代替。在進行上面的重新部署后,類似的故障再也沒有出現(xiàn)
不過,讓我們好奇的是,該校的網(wǎng)絡(luò)管理員為什么在當(dāng)初的部署和測試中發(fā)現(xiàn)這個問題呢?據(jù)筆者了解,原來當(dāng)初他們是在三個機房中分別進行的測試,而沒有在三個機房中同時進行針對服務(wù)器的壓力測試。
五、小結(jié)
通過這個案例,我要說的是,局域網(wǎng)是個完整的邏輯體系它有其自身的特點。服務(wù)器作為網(wǎng)絡(luò)功能實現(xiàn)的核心必須我們要保證它的正常工作,超過正常的使用極限和范圍就會對部分或者整個網(wǎng)絡(luò)帶來意想不到的后果。特別是對于像DHCP這樣提供***層服務(wù)的公共服務(wù)器,不要使其負(fù)載過重。因為,不堪重負(fù)它們就會罷工。
【編輯推薦】