網管故障處理基本能力 - 網絡排錯大講解

    首先,真心希望本文可以給需要進行網絡排錯的朋友帶來實際性的幫助, 也希望可以耐心看下去。
    網絡排錯對於網絡工程師或運維人員甚至對很多人(搞IT的朋友們)都十分重要,因此知道網絡排錯的一個詳細流程以及流程中每一步的原理就顯得非常重要了,當網絡出現問題時,我們就可以迅速排查出網絡問題所在,從而快速解決網絡問題。
    這裏要說的網絡排錯,應該是適合大部分對網絡有一定了解的人員的,其實關於網絡排錯的方法,網絡上已經有大部分的資料,但我個人覺得太多都只是停留在文字層面上的,對其中涉及的一些基本原理並沒有提及,因此實用性並不大,這裏希望寫出一篇圖文並茂並有一定技術性的網絡排錯文章給大家,讓大家真正掌握一套系統的網絡排錯方法。
本文的一個思路:
一、網絡排錯的必備條件
二、網絡排錯的基本思路
三、網絡排錯詳細步驟
四、最後重要說明

一、網絡排錯的必備條件

爲什麼還要必備條件?因爲這裏所講的網絡排錯並不僅僅是停留在某一個小小命令的使用上,而是一套系統的方法,如果沒有這些條件,我真的不能保證下面講的這些你可以聽得懂,並且能運用到實際當中,所以還是先看看這些基礎的條件吧。

1.熟悉OSI七層模型與TCP/IP協議棧

這應該是網絡排錯要知道的最基本的知識了。

無論是OSI七層模型還是DoD模型,都是用來描述網絡通信的一個過程,以讓我們對網絡數據的發送和接收有一個大致的過程。OSI七層模型對應OSI七層模型的協議,DoD模型對應DoD模型的協議,也就是TCP/IP協議棧。

TCP/IP協議棧裏面的協議就顯得十分重要了,比如DNS、TCP、UDP、IP、ICMP、ARP,這些最基本的應該得知道吧,我們不需要有像《TCP/IP協議棧》中說得的那麼細,但至少,對於這些協議的基本功能我們是必須得要知道的,我想這些就不是我一兩名可以說清楚的了,還是那句話,自己百度一下吧。

2.瞭解網絡通信的基礎設備和其對應的OSI層次

交換機 、三層交換機、路由器 、防火牆這些最基本的網絡設備應該要有些瞭解,尤其是它們對應的OSI層次以及作用,比如普通的二層交換機對應OSI七層模型中的數據鏈路層,它可以隔絕衝突域,同時可能通過虛擬局域網技術(VLAN)來隔絕廣播域,二層交換機通過二層地址即MAC地址來實現數據幀的轉發;再比如路由器,它對應網絡層,可以提供路由尋址的功能等等。

也許並不需要了解得那麼細,但大概的一個過程我想還是應該要知道的。

3.瞭解中小型企業網絡的基本架構

其實就是要知道上面所說的那些網絡設備一般是怎麼連接起來的,如果在實際環境中排錯,應該就要知道當前網絡的一個基本架構情況。

這裏簡單提一下,一般中小型企業網絡的基本架構都是這樣的:接入層--匯聚層--核心層--網絡出口。

下面給個圖:

 

如果網絡環境比較龐大,匯聚層和核心層都會有,像這裏的話,就直接沒有匯聚層,不過思想是一樣的。下面講的排錯其實都是針對用戶PC來說明的,事實上,數據中心中的網絡排錯也是類似的。不管網絡環境多麼複雜,其實簡化下來跟這個都是差不多的。

4.知道常用的網絡排錯命令

如果用戶使用的是Windows操作系統,那麼下面的這些命令就很重要了:

ipconfig 查看計算機的IP 地址、子網掩碼和網關
ipconfig/all 查看計算機的IP 地址、子網掩碼、網關和DNS 地址
ping 測試主機之間的網絡連通性
nslookup 請求域名對應的IP 地址,並以此測試DNS 地址是否可用
tracert -d 路由追蹤,並且不做反向解析

如果使用的是 Linux 操作系統,那麼也有對應的相關命令。其實說到底就是要熟悉你所使用的設備,當然,在實際網絡排錯的過程中,如果只是爲了測試網絡通信是否正常,你可以把你自己熟悉的設備換上操作。

5.清楚知道網絡排錯的一個重要原則

網絡排錯,不就是要判斷網絡哪裏出了問題,因此,你就必須要知道數據的走向。

所以這個重要的原則是:關注數據的走向。

下面講的網絡排錯思路其實就是通過追蹤數據的走向來一步步縮小網絡故障點的,因此,時刻記住這一點非常非常重要!這也是爲什麼上面需要讓你瞭解中小型企業網絡的基本架構了。

二、網絡排錯的基本思路

基本思路如下,這跟網上的大多數人寫的應該是差不多的。

(1)檢查物理鏈路是否有問題

(2)查看本機IP地址、路由、DNS的設置是否有問題

(3)測試網關或路由器的通暢情況。先測網關然後再測路由器,一級一級地測試

(4)測試ping公網ip的通暢情況(平時要記幾個外部IP)

(5)測試DNS的通暢情況,可以直接ping網站地址

下面的第三部分,就針對上面的基本思路來進行詳細的說明。

三、網絡排錯詳細步驟

爲了更好的講述網絡排錯的過程和思路,假設我們有下面的一個網絡環境:

(說明:雖然是假設,但實際上該網絡環境是博主通過GNS3聯動 虛擬機 和真實網絡架設起來的,所以是可以真實參考的)

 

下面,我們就以上面這個網絡環境爲例子,詳細介紹我們的網絡排錯思路,每一步要怎麼做,每一步爲什麼要這樣做以及這樣做之後我們可以得到什麼信息,都會做一個說明。

 

(1)檢查物理鏈路是否有問題

這一步是我個人認爲在做網絡排錯時必須要做的第一步!經常會聽朋友說,領導的電腦上不了網,需要過去排錯,搞了老半天,還發現不了問題,最後在幾經絕望之時,竟然發現網線都沒接上電腦。這就真的是悲劇了,浪費了很多時間不說,這樣的網絡排錯思路本來就是有錯誤的。

因爲也許不是每個人都可以去機房查看交換機的接線情況,所以這一步,我們排查的重點範圍就應該放在如下面圖所示的地方:

 

在這一步,下面幾點是需要注意排查的:

1.確認電腦本身的網卡有沒有問題

2.確認接的網線有沒有問題

3.本機所連接的交換機(如果可以去機房查看的話)

如果上面這幾點排查都沒有問題了,那麼就是該網絡環境中的其他設備問題了。這一範圍的排查相對比較簡單,因爲只涉及到物理鏈路的連接問題。

對於這種測試,可以考慮使用測線器,但個人的建議是,拿一臺配置正確的筆記本來做測試也未嘗不可。

(2)查看本機IP地址、路由、DNS的設置是否有問題

上面第一步,物理鏈路的排查沒有問題了,也就是說,電腦接上網線之後,電腦有有反應了,可以識別,但是網絡還是不通,來到這一步,就應該先把注意的範圍放在電腦的設置上面了。

這上步,我們關注的重點是:

1.IP地址設置

如果採用的是DHCP自動獲取的方法,那麼這時候只需要看自己本機的設置上有沒有開啓自動獲取IP的設置以及有沒有開啓相關的服務;

如果用的是靜態IP,那麼就必須要注意IP地址的填寫有沒有錯(一般網絡管理人員給的)、IP地址的子網掩碼有沒有問題(這很重要,對於靜態IP,很多人在這裏設置錯誤,建議是,最好把IP地址、VLSM這方面的知識學一下)。

一般可以用下面的命令查看:

C:\Users\XpLeaf>ipconfig
WindowsIP配置

以太網適配器本地連接:

連接特定的DNS後綴.......:
本地鏈接IPv6地址........:fe80::4cf8:896f
IPv4地址............:192.168.2.1
子網掩碼............:255.255.255.0
默認網關.............:192.168.2.254

相關的設置可以在自己的計算機環境上面查看了。

2.路由設置

對於服務器、PC,一般是指默認網關的設置了;對於路由器本身或三層交換機,那就是靜態路由或動態路由的設置問題了。

3.DNS設置

主要是要確保所設置的DNS服務器地址到底有沒有提供域名解析服務或者是否出現了故障,至於如何判斷,後面會給出方法,這裏關注的是,你得設置一個正確的DNS服務器地址或可以自動獲取。在windows 上面你可以通過下面的命令查看:

C:\Users\XpLeaf>ipconfig /all
WindowsIP配置

主機名.............:XpLeaf-PC
主DNS後綴...........:
節點類型............:混合
IP路由已啓用..........:否
WINS代理已啓用.........:否

以太網適配器本地連接:

連接特定的DNS後綴.......:
描述...............:Intel(R) PRO/1000MT NetworkConnection
物理地址.............:00-0C-29-7D-41-E5
DHCP已啓用...........:否
自動配置已啓用..........:是
本地鏈接IPv6地址........:fe80::4cf8:896f:7d55:1432%11(首選)
IPv4地址............:192.168.2.1(首選)
子網掩碼............:255.255.255.0
默認網關.............:192.168.2.254
DHCPv6IAID...........:234884137
DHCPv6客戶端DUID.......:00-01-00-01-1C-13-6E-0D-00-0C-29-7D-41-E5

DNS服務器...........:202.116.145.145
202.96.128.86

(3)測試網關或路由器的通暢情況。先測網關然後再測路由器,一級一級地測試

在上面的網絡環境中,在網絡通的情況下,我們在電腦上使用命令tracert -d命令,會得到下面的結果:

C:\Users\XpLeaf>tracert -d www.baidu.com

通過最多30個躍點跟蹤
到www.a.shifen.com[180.97.33.108]的路由:

112ms 27ms 16ms 192.168.2.254
276ms 107ms 126ms 172.16.13.3
359ms 95ms 93ms 192.168.137.1
……這裏就省略輸出了

通過這個測試結果,我們可以清楚地知道電腦在訪問互聯網時,數據的走向情況:


根據這個數據走向,我們就可以得到一個重要的思路,就是根據數據走向來檢測網絡的通暢情況!因此,我們可以分兩步:

1.先測試電腦到網關192.168.2.254的通暢情況


我們可以在自己的電腦上自己ping網關的地址,看是否有響應:

C:\Users\XpLeaf>ping 192.168.2.254

正在Ping192.168.2.254具有32字節的數據:
來自192.168.2.254的回覆:字節=32時間=7msTTL=255
來自192.168.2.254的回覆:字節=32時間=18msTTL=255
來自192.168.2.254的回覆:字節=32時間=15msTTL=255
來自192.168.2.254的回覆:字節=32時間=16msTTL=255

192.168.2.254的Ping統計信息:
數據包:已發送=4,已接收=4,丟失=0(0%丟失),
往返行程的估計時間(以毫秒爲單位):
最短=7ms,最長=18ms,平均=14ms

一般這樣的判斷方法是比較快的,但有時候,無論怎樣ping都不能,那麼則可能有以下的幾種情況:

a.網關設備做了禁止ping的設置

b.網關接口或網關設備出現故障

對於a,一般很少會在這些設備在做ping的限制操作,因爲目前很網絡設備如路由器或交換機的監控,都是通過ping操作來完成的。ping通192.168.2.254網關後,再ping一下172.16.13.1以確認電腦到整個網關設備都沒有問題。

對於ping不通的時候,我個人還建議在電腦上執行如下操作:

C:\Users\XpLeaf>arp -a

接口:192.168.2.1---0xb
Internet 地址物理地址類型
192.168.2.254 cc-03-0a-1c-00-00 動態
192.168.2.255 ff-ff-ff-ff-ff-ff 靜態
224.0.0.22 01-00-5e-00-00-16 靜態
224.0.0.252 01-00-5e-00-00-fc 靜態
239.255.255.250 01-00-5e-7f-ff-fa 靜態

即查看電腦本身有沒有獲取到網關的MAC的地址,顯然,如果沒有網關的MAC地址,那也是不可能ping通網關的,在排除了前面電腦設置的問題後,你可以猜測是網關設備出了問題,這時就可以聯繫網絡工程師對網關設備進行測試了。

2.測試到其它路由器的通暢情況

前面一步沒有問題了,也就是電腦到網關通信正常了,再測試網關到出口路由器的通暢情況:


這裏,我們使用tracert -d命令就可以了:

C:\Users\XpLeaf>tracert -d 172.16.23.3

通過最多30個躍點跟蹤到172.16.23.3的路由

17ms 9ms 20ms 192.168.2.254
292ms 79ms 89ms 172.16.12.2
362ms 47ms 46ms 172.16.23.3

跟蹤完成。

當然,如果發現不通,那麼則可能是下面的情況:

a.網關設備與路由器之間的物理鏈路問題

b.網關設備與路由器之間的設置問題,比如路由協議、接口配置之類的

出現上面的情況,那就是網絡工程師的問題了,當然,如果你是網絡工程師,應該要馬上查看一下設備的狀態,看是不是設備哪裏出現問題了。

上面的步驟完成了,假設你的出口路由器設置是沒有問題的,比如NAT與默認路由等的設置,那麼我們大致可以知道,內網的一個基本通信是正常的(至少你的電腦和出口路由器的通信沒問題),我們就要看看電腦到底能不能訪問互聯網了。

(4)測試ping公網ip的通暢情況(平時要記幾個外部IP)

來到這一步的時候,就說明前面三步是沒有問題的,也就是說,本地局域網絡的通信是正常的,這時要做的就是判斷本地局域網絡與外網(公網)之間的通信有沒有問題了:


這裏採取的是直接ping公網地址的方法,是爲了排除DNS的影響(萬一你的DNS設置又有問題),至於要ping什麼樣的公網地址,個人建議是,可以ping一些沒有禁止ping的公共DNS服務器地址,比如114.114.114.114和8.8.8.8的:

C:\Users\XpLeaf>ping 114.114.114.114

正在Ping114.114.114.114具有32字節的數據:
來自114.114.114.114的回覆:字節=32時間=52ms TTL=61
來自114.114.114.114的回覆:字節=32時間=127ms TTL=87
來自114.114.114.114的回覆:字節=32時間=96ms TTL=82
來自114.114.114.114的回覆:字節=32時間=100ms TTL=74

114.114.114.114的Ping統計信息:
數據包:已發送=4,已接收=4,丟失=0(0%丟失),
往返行程的估計時間(以毫秒爲單位):
最短=52ms,最長=127ms,平均=93ms

這樣之後,基本上就可以確定網絡是沒有問題的了。當然,這裏並沒有提到出口放置防火牆的情況,實際上,思路是一致的,但是,你需要考慮的是,你的訪問數據有沒有被防火牆給過濾掉,是數據出去的時候過濾了,還是數據回來的時候過濾了?由於還要涉及到防火牆的設置,這裏就不再提及了,只是仍要注意這一點就是了。

當然,也不排除是ISP那邊的問題了,打電話去問問吧。

(5)測試DNS的通暢情況,可以直接ping網站地址

如題,可以直接ping網站地址,看有沒有回顯IP地址,至於通不通是另外一回事,只要可以回顯IP地址,那麼DNS就沒有問題了,不過這裏仍然要說一下nslookup這個命令,這是一個非常好用的命令,我平常自己在網絡排錯時,基本上都會用到:

C:\Users\XpLeaf>nslookup
默認服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

>www.baidu.com
服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

非權威應答:
名稱:www.a.shifen.com
Addresses:180.97.33.107
180.97.33.108
Aliases:www.baidu.com

>www.taobao.com
服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

非權威應答:
名稱:www.taobao.com.danuoyi.tbcache.com
Address:119.147.70.1
Aliases:www.taobao.com

>www.jd.com
服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

非權威應答:
名稱:www.jdcdn.com
Address:183.56.147.1
Aliases:www.jd.com

當然也可以像下面這樣使用:

C:\Users\XpLeaf>nslookup www.baidu.com
服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

非權威應答:
名稱:www.a.shifen.com
Addresses:180.97.33.108
180.97.33.107
Aliases:
C:\Users\XpLeaf>nslookup www.taobao.com
服務器:server1.gdut-dns.edu.cn
Address:202.116.145.145

非權威應答:
名稱:www.taobao.com.danuoyi.tbcache.com
Address:119.147.70.1
Aliases:www.taobao.com

MentoGDUT作者補充: 也可指定DNS服務器, 比如 nslookup - 202.116.128.1, 中間用 - 隔開

使用nslookup命令,作用有二:

1.幫你測試你設置的DNS服務器有沒有問題

2.在不考慮DNS服務器是否智能的前提下,你可以根據回顯IP地址速度的快慢來大致判斷DNS服務器的優劣情況

所以可以充分利用nslookup命令了。

四、最後重要說明

其實基本上,一個相對完整的網絡排錯過程就應該如上面所說的了,不過,是基本上的,因爲上面的講解,都幾乎是假定你是沒有權限進入機房查看網絡設備的情況的。

事實上,你是根本不需要照搬來進行上面的全部步驟的,在實際排錯的過程中,可能你用到的只是其中的一小部分而已,畢竟,如果每次都這樣下來,沒有誰是不會瘋掉的,因爲一些很簡單的問題也要這樣折騰,那就是太浪費時間了!但是,上面的方法,只是提出一種網絡排錯的思路,希望按照這個思路可以判斷出網絡的問題出現在哪裏,至於如何去解決,這中間真的又涉及到太多太多的經驗問題(其實遇到問題可以百度),

其實整個下來,我個人覺得,最重要的仍然不是技術本身,而是在網絡排錯過程當中的一個思路,思路決定出路,這可以讓自己在網絡排錯的過程中時刻保持清醒的頭腦,這一點很重要!

本人並非是專攻網絡(曾折騰了一段時間而已)這一塊的,也就是並非是網絡工程師(也不可能是啦),只是在實際過程當中要處理比較多的網絡故障,這一年多的時間下來,也積累了勉強能夠稱得上是經驗的經驗吧,寫此一文,即是自己作爲一個總結,也希望可以幫助到有需要的朋友。

由於技術和語言功底都十分有限,真心希望可以多諒解和包涵,有不足不處還望指導一下,感激不盡!


原文鏈接http://www.2cto.com/net/201512/453643.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章