基本思路:緩存
肯定問題縮小範圍。先外部後內部,利用排除法、類比法、替換法(隔離法)將故障範圍逐漸縮小到某一點。安全
謹慎作出結論。下結論前先三思,想到全部可能存在問題的點,特別是與別人討論和描述問題時更應該注意。網絡
記錄問題。作好文檔備案工做,如記錄故障現象、故障分析、故障緣由、處理流程、處理結果、結論與經驗等。tcp
相對於虛擬機,物理機ping不通網關的故障更好排查一些,由於虛擬機在於物理交換機通訊的過程當中存在一箇中間層,中間層可能爲宿主主機上的標準交換機或者某個分佈式交換機。但不管是標準交換機仍是分佈式交換機通常都不會處理三層網絡,儘管有的分佈式交換機能處理三層網絡,如Cisco Nexus 1000v。所以只要在配置虛擬機硬件時,給網絡適配器選擇的網絡標籤(Vlan ID)正確,通常問題就不會發生在虛擬交換機層面。若是對虛擬交換機是否存在故障不能肯定,能夠經過查看與故障虛擬機同一個網段的另外一個虛擬機是否能正常訪問網關和Internet判斷虛擬機交換機是否存在問題。分佈式
若是網絡鏈接正確,交換機和物理機/虛擬機中的arp表中都會出現各自的mac地址。如交換機的arp表或mac表中會出現物理機/虛擬機的mac地址,物理機/虛擬機的arp表中也會有交換機(網關)的mac地址。每次網絡鏈接的創建過程都會涉及arp查找,例如ping通本身的IP表示網卡正常工做(ping其餘主機可能會遇到防火牆或其餘安全設備/軟件攔截而沒法ping通,須要本身去手動判斷),這個過程依舊須要藉助arp協議將ip地址解析到mac地址,這個已發現的mac地址就會存放在arp池中(緩存起來)。ide
對於交換機:進入特權配置模式(hostname#)輸入show arp或show mac address-table,結合include進行mac地址查找。spa
對於物理機/虛擬機,無論是Microsoft Windows仍是Linux,查看是否得到網關mac地址的命令均可以用arp -a命令(結合find或grep命令),顯示當前arp池中有哪些已經發現的主機,包括網關。操作系統
上述操做結果都正常的話表示,協議和鏈路工做正常。
3d
自下而上的方法。若是說按照osi或tcp/ip模型的劃分的話,就是說物理層沒有問題(能ping通本身、交換機鏈接狀態、端口指示燈、內核/軟件輸出信息等),數據鏈路層沒有問題(arp池中發現對方的mac地址)。接下來就應該分析網絡層。blog
分析網絡層首先要考慮的就是路由問題。例如檢查交換機中是否存在特定主機路由,由於靜態路由/特定主機路由的優先級都要比默認網關的優先級要高,一旦存在這些路由沒法ping通網關就很是正常了。網關地址對於物理機/虛擬機安裝的操做系統而言比普通主機更特殊一些,所以,即便一個主機能ping通同一網段的其餘主機而不能ping通網關是正常的。
例如交換機上有一條靜態路由爲「S 172.16.205.7/32 [1/0] via 172.16.172.7」,若是從交換機ping172.16.205.7時,172.16.172.7這個地址不存在或者鏈路有問題,必然不通。而從172.16.205.7這個機器上ping網關(172.16.205.1),也是ping不通,緣由是包從物理機/虛擬機的網卡去向交換機時正常,在回包時不正常,回包時仍是要走靜態路由裏面規定的那個IP地址(誰讓人家的優先級高呢?)。
關於路由優先級。直連路由最高、其次是靜態路由最後最後是默認網關。全部的靜態路由、直連路由等都查找不到的時候交給默認網關去處理,所以默認網關的路由優先級是最低的。