網路丟包分析

Federico發表於2018-10-15

丟包原因

網路原因

  • 交換機或路由器load過高。
  • 交換機或路由器鏈路故障。
  • 交換機或路由器埠error down/up down。
  • 交換機路由器CRC錯誤。
  • 交換機或路由器負載不均衡導致單邊壓力過高。
  • 運營商骨幹網阻塞。
  • 地址被運營商黑洞封停。

主機原因

  • 主機CPU負載過高(CPU負載過高,影響資料包到網路卡之間的傳輸計算,從而發生丟包現象)。
  • 主機網路卡故障。
  • 主機虛擬化層面丟包(針對目前大多伺服器為雲主機)。

分析丟包原因

分析工具

  • ping:最基本的測試工具,測試本地到目的地址網路是否正常(需要注意的是:1.可能存在目的地址禁止ICMP協議通訊的情況。2.如果目的地址為域名,可能會受到DNS解析影響,需要對DNS解析地址是否正確進行判斷。)
  • traceroute:traceroute(跟蹤路由)是路由跟蹤實用程式,用於確定 IP 資料包訪問目標所採取的路徑。traceroute 命令用 IP 生存時間 (TTL) 欄位和 ICMP 錯誤訊息來確定從一個主機到網路上其他主機的路由。
  • mtr:網路診斷工具結合ping與traceroute。

例項

到某個IP地址不通,查詢後發現該地址被運營商黑洞封停導致。
mtr -r 59.24.3.173

Start: Mon Oct 15 15:12:10 2018
HOST: web                         Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- gateway                    0.0%    10    1.4   1.3   0.8   2.5   0.3
  2.|-- 139.159.7.141              0.0%    10    1.0   1.0   0.9   1.1   0.0
  3.|-- 117.79.134.101             0.0%    10    1.7   1.6   1.5   1.7   0.0
  4.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  5.|-- 220.181.0.141             40.0%    10    2.0   2.0   1.8   2.3   0.0
  6.|-- 220.181.177.241            0.0%    10    2.5   2.5   2.4   2.6   0.0
  7.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0

遇到過一次新建雲主機無法ping通的問題,後來經查詢發現是由於該雲主機的IP地址被運營商黑洞封停導致,以上IP用於距離,無實際意義,並非當時環境。
以上述資料為例,進行分析:
本地到目的地址59.24.3.173第六跳後路由不知道下一跳地址是什麼,由此可知當前問題出現在第6跳,登入www.ipip.net檢視第6跳地址:所屬地為中國北京電信,此時如果想快速解決此問題更換雲主機IP即可,如果時間不著急,可以向北京電信報障,詢問原因。(IDC流程)

網路測試工具的基本使用

1.ping

基本上ping命令沒有什麼可介紹的大多數人都會使用,比較簡單,我們在測試網路情況時會優先使用ping命令來測試連通性。
需要注意的是:Windows中ping預設傳送4個包,而Linux無限發包直至停止。

2.traceroute

可以用於檢視路由走向。
需要注意的是當我們traceroute某些網站的時候可能無法到達終點,是因為某些伺服器可能遮蔽了UDP協議偵測,導致無法返回ICMP,我們可以使用TCP協議進行偵測。

traceroute www.baidu.com

traceroute: Warning: www.baidu.com has multiple addresses; using 180.97.33.107
traceroute to www.a.shifen.com (180.97.33.107), 64 hops max, 52 byte packets
 1  10.131.5.1 (10.131.5.1)  13.545 ms  1.713 ms  2.664 ms
 5  * * *
 6  220.181.0.133 (220.181.0.133)  7.025 ms
    220.181.16.161 (220.181.16.161)  10.303 ms
    220.181.0.133 (220.181.0.133)  5.124 ms
 7  220.181.0.197 (220.181.0.197)  5.972 ms
    36.110.244.33 (36.110.244.33)  14.937 ms
    220.181.177.197 (220.181.177.197)  9.611 ms
 8  202.97.84.46 (202.97.84.46)  30.453 ms
    202.97.84.38 (202.97.84.38)  32.658 ms  38.656 ms
 9  202.102.69.14 (202.102.69.14)  31.620 ms
    202.102.69.58 (202.102.69.58)  37.997 ms
    202.102.69.14 (202.102.69.14)  30.671 ms
10  * * *
11  180.97.32.102 (180.97.32.102)  31.078 ms
    180.97.32.90 (180.97.32.90)  31.279 ms
    180.97.32.94 (180.97.32.94)  28.057 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *

traceroute -T www.baidu.com

traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
 1  gateway (38.83.106.97)  0.683 ms  0.668 ms  0.689 ms
 3  66.102.252.217 (66.102.252.217)  1.073 ms  1.101 ms  1.152 ms
 4  66.102.252.217 (66.102.252.217)  1.194 ms 59.43.189.237 (59.43.189.237)  27.854 ms 66.102.252.217 (66.102.252.217)  1.523 ms
 5  59.43.189.237 (59.43.189.237)  28.343 ms  27.968 ms  28.334 ms
 6  59.43.182.78 (59.43.182.78)  180.556 ms * *
 7  59.43.130.121 (59.43.130.121)  178.820 ms * 59.43.130.145 (59.43.130.145)  175.175 ms
 8  59.43.80.118 (59.43.80.118)  180.330 ms  177.183 ms 59.43.130.125 (59.43.130.125)  178.851 ms
 9  113.96.0.93 (113.96.0.93)  183.289 ms 59.43.80.118 (59.43.80.118)  176.593 ms 59.43.80.22 (59.43.80.22)  182.926 ms
10  113.96.0.93 (113.96.0.93)  186.368 ms * *
11  * * *
12  * * *
13  * * *
14  * * 14.215.177.38 (14.215.177.38)  180.576 ms

3.mtr
mtr -r www.baidu.com

Start: Mon Oct 15 16:12:23 2018
HOST: localhost.localdomain       Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- gateway                    0.0%    10    0.2   0.3   0.2   0.4   0.0
  4.|-- 66.102.252.217             0.0%    10    0.9   1.0   0.8   1.2   0.0
  5.|-- 59.43.189.237              0.0%    10   28.0  28.0  27.8  28.8   0.0
  6.|-- 59.43.182.74               0.0%    10  177.0 186.4 176.9 249.7  22.7
  7.|-- 59.43.187.93              80.0%    10  174.8 174.9 174.8 175.0   0.0
  8.|-- 59.43.130.149              0.0%    10  175.2 175.2 175.2 175.3   0.0
  9.|-- 59.43.80.118               0.0%    10  176.8 177.7 176.8 180.4   0.9
 10.|-- 113.96.4.146               0.0%    10  183.2 179.8 176.4 183.2   2.4
 11.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 12.|-- 14.29.121.190             10.0%    10  177.6 178.9 177.3 189.7   4.0
 13.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 14.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 15.|-- 14.215.177.39              0.0%    10  181.2 180.5 180.4 181.2   0.0

網路測試工具主要是為了找到故障的原因或者路由故障點,具體是什麼原因導致的丟包還需要根據裝置或者系統進行單獨分析。

相關文章