天天看點

解決虛拟機或實體機ping不通網關故障的方法與思路

基本思路:

确定問題縮小範圍。先外部後内部,利用排除法、類比法、替換法(隔離法)将故障範圍逐漸縮小到某一點。

謹慎做出結論。下結論前先三思,想到所有可能存在問題的點,特别是與别人讨論和描述問題時更應該注意。

記錄問題。做好文檔備案工作,如記錄故障現象、故障分析、故障原因、處理流程、處理結果、結論與經驗等。

    相對于虛拟機,實體機ping不通網關的故障更好排查一些,因為虛拟機在于實體交換機通信的過程中存在一個中間層,中間層可能為宿主主機上的标準交換機或者某個分布式交換機。但無論是标準交換機還是分布式交換機一般都不會處理三層網絡,盡管有的分布式交換機能處理三層網絡,如cisco nexus 1000v。是以隻要在配置虛拟機硬體時,給網絡擴充卡選擇的網絡标簽(vlan id)正确,一般問題就不會發生在虛拟交換機層面。如果對虛拟交換機是否存在故障不能确定,可以通過檢視與故障虛拟機同一個網段的另一個虛拟機是否能正常通路網關和internet判斷虛拟機交換機是否存在問題。

解決虛拟機或實體機ping不通網關故障的方法與思路

    如果網絡連接配接正确,交換機和實體機/虛拟機中的arp表中都會出現各自的mac位址。如交換機的arp表或mac表中會出現實體機/虛拟機的mac位址,實體機/虛拟機的arp表中也會有交換機(網關)的mac位址。每次網絡連接配接的建立過程都會涉及arp查找,例如ping通自己的ip表示網卡正常工作(ping其他主機可能會遇到防火牆或其他安全裝置/軟體攔截而無法ping通,需要自己去手動判斷),這個過程依舊需要借助arp協定将ip位址解析到mac位址,這個已發現的mac位址就會存放在arp池中(緩存起來)。

    對于交換機:進入特權配置模式(hostname#)輸入show arp或show mac address-table,結合include進行mac位址查找。

解決虛拟機或實體機ping不通網關故障的方法與思路

    對于實體機/虛拟機,不管是microsoft windows還是linux,檢視是否獲得網關mac位址的指令都可以用arp -a指令(結合find或grep指令),顯示目前arp池中有哪些已經發現的主機,包括網關。

解決虛拟機或實體機ping不通網關故障的方法與思路

    上述操作結果都正常的話表示,協定和鍊路工作正常。

    自下而上的方法。如果說按照osi或tcp/ip模型的劃分的話,就是說實體層沒有問題(能ping通自己、交換機連接配接狀态、端口訓示燈、核心/軟體輸出資訊等),資料鍊路層沒有問題(arp池中發現對方的mac位址)。接下來就應該分析網絡層。

    分析網絡層首先要考慮的就是路由問題。例如檢查交換機中是否存在特定主機路由,因為靜态路由/特定主機路由的優先級都要比預設網關的優先級要高,一旦存在這些路由無法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位址(誰讓人家的優先級高呢?)。

    關于路由優先級。直連路由最高、其次是靜态路由最後最後是預設網關。所有的靜态路由、直連路由等都查找不到的時候交給預設網關去處理,是以預設網關的路由優先級是最低的。

繼續閱讀