網絡ping不通是網絡中出現頻率最高的故障之一,同時也是最讓人抓狂的故障,基本上大部分人都遇到過了,如果在項目中出現網絡ping不通,沒有一個有序的方法去排除解決,那么很難入手,在我們弱電VIP技術群也是討論最多的問題之一,有不少項目經理到項目中經常遇到。
本期我們來總結下網絡ping不通是什么原因?
一、ping命令的原理
了解ping命令原因,我們來通過一個實例來了解。
假定主機A的IP地址是192.168.1.1,主機B的IP地址是192.168.1.2,都在同一子網內,則當你在主機A上運行“Ping 192.168.1.2”后,都發生了些什么呢?
首先,Ping命令會構建一個固定格式的ICMP請求數據包,然后由ICMP協議將這個數據包連同地址“192.168.1.2”一起交給IP層協議(和ICMP一樣,實際上是一組后台運行的進程),IP層協議將以地址“192.168.1.2”作為目的地址,本機IP地址作為源地址,加上一些其他的控制信息,構建一個IP數據包,並在一個映射表中查找出IP地址192.168.1.2所對應的物理地址(也叫MAC地址,這是數據鏈路層協議構建數據鏈路層的傳輸單元幀所必需的),一並交給數據鏈路層。
后者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據以太網的介質訪問規則,將它們傳送出去。
echo request”(回顯請求)、“echo reply”(回顯應答)
主機B收到這個數據幀后,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查后,將有用的信息提取后交給ICMP協議,后者處理后,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。
直接說,就是利用網絡上機器IP地址的唯一性,給目標IP地址發送一個數據包,再要求對方返回一個同樣大小的數據包來確定兩台網絡機器是否連接相通,時延是多少。
從上面過程,就是ping命令的原理,主機A收到了主機B的一個應答包,說明兩台主機之間的去、回通路均正常,但也並不是所有網絡都是正常的,下面我們來看ping不通的原因。
二、同網段ping不通的原因
ping命令不通,主要有兩種情況,一種是同網段內的ip地址ping不通,另一種是不同網段的ip地址ping不通,各個情況不一樣,我們首先來看同網段ping不通的兩種情況。
一、同網段ping不通,結果是“無法訪問目標主機”
目的ip和源ip是同一網段的,ping的結果是“無法訪問目標主機” ,屬於ping的請求沒有發出。
我們來看下,ping同網段不存的ip地址。

ping的請求發出后,返回顯示“無法訪問目標主機"。
什么原因呢?
說明此時,ping的需求並沒有成功發出,這時,要檢查:
1、對方是否開機?ip是否存在?
2、有跨交換機vlan的話,檢查對應的中間trunk鏈路是否導通?
3、走直連路由是否正確?是否應該走默認路由,而走了直連路由。
4、子網掩碼是否錯誤。
5、默認網關是否填寫正確
二、同網段ping不通,結果是“超時(time out)”
目的ip和源ip是同一網段的,ping的結果是“超時或者time out” ,屬於ping的請求已經成功發出了,但目標主機沒有回復。
ping的請求發出后,返

回顯示“超時"。
什么原因呢?
這種情況是ping已經成功發出了,到達了主機,但時沒有得到響應,要檢查:
1、檢查下防火牆,防火牆禁止了對ping的回應。
2、子網掩碼的設置錯誤,導致不在同一個網段。
3、設備硬件故障,導致設備沒有對應的mac地址,無法生成路由表,而走默認路由。
4、ip沖突,或ip地址與直聯路由不在同一個網段。
5、網關沒有設置好
三、跨網段ping不通的原因
不同網段ping不通,可能的原因比較多,我們來看下跨網段常見的原因。
一、跨網段ping不通,結果是“無法訪問目標主機”
跨網段出現無法訪問目標主機,說明請求沒有成功發出,獲取不了目的ip地址與mac地址。

可能出現的原因是:
1、目的ip地址不存在。
2、檢查路由表是否有缺省的路由
3、檢查arp表是否有網關的mac地址
4、有網關設置錯誤
5、走了默認路由
二、跨網段ping不通,結果是“time out”
若顯示time out,表示ping的request消息已經發出,目的ip的網關已經獲取到目的ip的mac地址,但是目的主機沒有回復,或源主機無法收到。這些應該檢查回程路由和節點回程路由。

可能的原因有:
1、檢查下防火牆,是否攔截了ping的請求消息。
2、檢查經過節點的路由是否正確,或者是否有回程路由。
3、回程路由的硬件網卡出口和ping的request的入口網卡不是同一個
4、交換機vlan對應的接口全部down了,導致vlan狀態down,vlan的對應路由沒有生成
四、總結
當我們網絡ping不通時,首先要看ping顯示的結果是”無法訪問目標主機“還是”超時“,再看是同網段,還是不同網段,采取相應的分析方法,另外在分析與解決網絡故障時,我們要熟練的了解ping、arp、tracert、route這幾個命令的用法,可以快速的定位ping不通的原因。尤其是這arp、tracert、route這三個命令的用法,解決故障非常方便。