網(wǎng)絡(luò)是數(shù)據(jù)中心最重要的組成部分,也是日常維護工作的重中之重,作為一名網(wǎng)絡(luò)運維的技術(shù)新手,有必要掌握一些基本的故障判斷技能,這樣往往可以在數(shù)據(jù)中心運行出現(xiàn)故障時,迅速找到故障點,及時排除故障。本文就是將一些常用的經(jīng)典命令呈現(xiàn)出來,供廣大的網(wǎng)絡(luò)運維初學者學習使用。雖然這幾年出現(xiàn)了許多新的網(wǎng)絡(luò)技術(shù),讓人看得眼花繚亂,面對這些新技術(shù)時,往往一頭霧水,無從下手,是否以往經(jīng)驗積累下來的東西是否就不好用了,其實經(jīng)典的東西永遠都不過時,網(wǎng)絡(luò)技術(shù)再發(fā)展也離不開傳遞信息的本質(zhì),所有的新技術(shù)都是在最普通的二、三層轉(zhuǎn)發(fā)基本之上演化來的,萬變不離其中。那么下面就來說一說這些經(jīng)典好命令。
PING
PING恐怕是最古老的網(wǎng)絡(luò)診斷命令了,只要接觸到網(wǎng)絡(luò)的人一定知道它和使用過它。不過PING實際上有很多的妙用,學會真正地使用PING,往往能夠?qū)⒐收戏秶杆倏s小。如下是PING測試時可以帶的參數(shù),我們可以通過攜帶這些參數(shù),知道哪些長度的報文是不通的,回應(yīng)報文延遲有多大,丟包率有多少等等。如今還有很多的PING測試工具,提供了更多圖形化的功能,可以進行快PING測試(比如1秒鐘之內(nèi)PING數(shù)百個報文),多地址同時PING,支持統(tǒng)計PING記錄,將PING的結(jié)果通過圖形來呈現(xiàn),還可以構(gòu)造不同的PING測試IP和MAC地址。通過大量的PING測試,可以迅速掌握當前的數(shù)據(jù)中心故障位置在哪里,是哪臺設(shè)備可能出現(xiàn)了問題。再利用PING的各種參數(shù),又可以知道具體的是哪類故障,比如是丟包還是不通,是全部地址都不通還是部分地址不通,將故障進行細化。PING是在數(shù)據(jù)中心網(wǎng)絡(luò)故障診斷時最不可缺少的診斷命令。
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count] [[-j host-list] | [-k host-list]][-w timeout] target_name
Options:
-t Ping the specified host until stopped.
To see statistics and continue - type Control-Break;
To stop - type Control-C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don't Fragment flag in packet.
-i TTL Time To Live.
-v TOS Type Of Service.
-r count Record route for count hops.
-s count Timestamp for count hops.
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.
-w timeout Timeout in milliseconds to wait for each reply.
TRACERT
TRACERT也是和PING類似的診斷命令,TRACERT命令的特點是通過依次發(fā)送ICMP TTL等于網(wǎng)絡(luò)跳數(shù)報文,看網(wǎng)絡(luò)是否可達。TRACERT相比PING,可以迅速掌握達到目的地址所經(jīng)歷的網(wǎng)絡(luò)跳數(shù),是否可能存在路由環(huán)路,是否走了等價路由,中間哪一跳地址是不通的,都可以通過TRACERT獲知。不過很多網(wǎng)絡(luò)設(shè)備默認并沒有開啟TRACERT的回應(yīng)功能,在使用TRACERT命令時,要確認網(wǎng)絡(luò)設(shè)備也開啟了此功能,否則可能會造成誤判。
Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
Options:
-d Do not resolve addresses to hostnames.
-h maximum_hops Maximum number of hops to search for target.
-j host-list Loose source route along host-list.
-w timeout Wait timeout milliseconds for each reply.
流量統(tǒng)計
幾乎所有的網(wǎng)絡(luò)設(shè)備都支持流量統(tǒng)計,所謂的流量統(tǒng)計就是通過定義特定的流量,通過ACL進行流量計數(shù)統(tǒng)計,結(jié)合PING測試或者具體業(yè)務(wù),然后通過流量統(tǒng)計確認報文丟棄的位置,明確故障設(shè)備。由于流量統(tǒng)計一般都是在設(shè)備的轉(zhuǎn)發(fā)芯片或者CPU上進行統(tǒng)計,流量統(tǒng)計的結(jié)果并不一定完全準確的,一個流量進入設(shè)備,在達到轉(zhuǎn)發(fā)芯片之前,還要經(jīng)過端口光模塊、端口物理連接器、PHY器件、PCB布線等部分,如果是這些地方出現(xiàn)了問題,那么就會影響判斷的準確性,而這些器件處理的都是物理信號,也無法對報文流量進行統(tǒng)計,這時最好的方式就是在兩邊的設(shè)備端口上同時做流量統(tǒng)計,根據(jù)統(tǒng)計的結(jié)果來判斷。如果兩邊統(tǒng)計的結(jié)果不一致,那么再通過更換多端口來測試,這樣來明確故障的位置。流量統(tǒng)計的命令,不同的網(wǎng)絡(luò)設(shè)備配置方法各有不同,不再一一提及。
鏡像
鏡像也是在進行數(shù)據(jù)中心網(wǎng)絡(luò)故障排除時最常用的診斷方法,這時的故障往往是集中于應(yīng)用層的,通過PING/TRACERT無法明確故障的。通過鏡像可以將特定的應(yīng)用流量抓出來,然后對報文逐個分析,找出故障的原因。比如是報文有大量重傳還是有大量的錯包,是報文內(nèi)容有錯還是報文出現(xiàn)亂序等,這些都通過鏡像一目了然。不過鏡像也有不少的限制,比如并不是所有的設(shè)備都能支持流鏡像,那么就需要對整個端口的流量進行鏡像,在流量比較大時,鏡像本身的流量太大也會占用設(shè)備帶寬,反到可能引發(fā)設(shè)備轉(zhuǎn)發(fā)擁塞。還有鏡像如果每秒鐘達到數(shù)百兆的流量,則沒有哪個筆記本可能長時間的做這種抓包。通過鏡像雖然可以將所有應(yīng)用流量都抓出來,但是最終還是要通過筆記本來翻譯,所以筆記本性能是很大的瓶頸。當然網(wǎng)絡(luò)設(shè)備如果都支持流鏡像就不會遇到這類煩惱了。
重定向上CPU
很多時候,發(fā)生故障的都是無人職守的數(shù)據(jù)中心,現(xiàn)場根本沒有人,這樣就無法進行鏡像抓包,所以通過重定向的命令,將自己關(guān)注的業(yè)務(wù)流量重定向上CPU一部分,這樣來分析業(yè)務(wù)故障的可能性,通過打開上CPU報文的開關(guān),就可以詳細看到流量抱文,這樣就可以進行深入分析。重定向上CPU對CPU是個考驗,很多數(shù)據(jù)中心交換機轉(zhuǎn)發(fā)芯片能力很強,但是CPU很弱,如果將大量的業(yè)務(wù)流量重定向上CPU,可能會將CPU沖跨,所以這種診斷使用時要慎重,而且重定向的方式改變原有的業(yè)務(wù)流量而上CPU。如果原來的業(yè)務(wù)僅僅是丟報而已,通過重定向上CPU后,將使得業(yè)務(wù)全部中斷,所以使用時要慎重。還有一些網(wǎng)絡(luò)設(shè)備提供鏡像上CPU的功能,有這樣的功能可以在不影響業(yè)務(wù)的情況下,將流量鏡像上CPU,將故障問題再一一查明,重定向的命令也是不同設(shè)備也有差異,但是實現(xiàn)原理都差不多,可以很快上手使用。
NET
服務(wù)器有一些NET相關(guān)的常用命令。比如:通過net view顯示當前工作組服務(wù)器列表,通過net user顯示服務(wù)器上用戶帳號的列表,通過net use查看網(wǎng)絡(luò)連接,通過net session還可以查看連接記錄,net share查看服務(wù)器的共享資源,通過這些命令可以對服務(wù)器的網(wǎng)絡(luò)運行情況有個基本了解,再結(jié)合PING/TRACET可以很快找到問題設(shè)備,及時將故障排除。
除了以上這些命令和方法,還有很多技巧,針對不同的網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)應(yīng)用都會有不同的分析方法。但是不管是哪些應(yīng)用,在分析故障時,依然都離不開PING、TRACERT、流量統(tǒng)計、鏡像、重定向、NET等等。作為一名網(wǎng)絡(luò)維護新手,應(yīng)該將這些診斷方法吃透,將有助于縮減查找到數(shù)據(jù)中心故障根源的時間。