【乾貨】Traceroute與Tracert區別?

2021-02-19 泰克教育

在UNIX中的程序traceroute(Ciscoand Juniper應用),可以用來跟蹤一個數據包從源點到終點的路徑,通俗講就是跟蹤路由的工具。如下圖來說明traceroute的思想:

R1要去往R3數據包要經過路由器R2,但是在大多數情況下,我們並不知道這個網絡拓撲。R1和R3之間可能有很多的設備。traceroute使用ICMP超時報文和IP分組中的TTL(生存時間)欄位和UDP協議就能找出這個路由。

  a、R1上運行traceroute使用UDP協議大於等於33434埠向終點R3發送一個分組,這個報文被封裝成IP分組,其TTL值為1,該程序會記下發送該分組的時間。抓包如下:

  b、當R2收到這個IP分組,就會丟棄這個分組(減去TTL值1,TTL為0),同時R2會發送一個超時的ICMP報文(type:11,code:0),表示因為TTL值為0而丟棄該分組。抓包如下:

  c、R1收到這個ICMP超時報文,利用封裝ICMP的IP分組的源地址找出R2地址,這個程序還記下該分組的到達時間。步驟a的時間(發送分組時間)與減去該時間(接收分組時間)就是往返時間。重複a步驟,其TTL值為2,R2會轉發該IP分組,當該分組抵達R3時,R3把TTL減去1,並不會丟棄該報文,因為現在該報文已經到達了最後的終點,R3會向R1發送一個ICMP埠不可達報文(type:3,code:3)。R1收到埠不可達報文後,表示整個路由已經找出,沒有必要再發送更多的分組。抓包如下:

註:華為雖然應用命令為tracert,工作原理和traceroute是一樣的!

最終的抓包結果如下:

Tracert一般應用於MS作業系統,tracert僅僅是利用的ICMP超時報文來追蹤路由,與一情況類似,這裡不做詳細解釋,抓包如下:

其實在業務環境中,我們經常用到這兩個工具,試想下如果中間有防火牆我們該如何做?接下來案例通過不同的廠商防火牆,我們進行進一步分析。

解決方法:

ip ttl-expires enable恢復減TTL功能,默認為了安全起見,防火牆減TTL功能是關閉的
policy interzone trust untrust outbound
policy 0
  action permit
  policy service service-set icmp

測試:

policyinterzone trust untrust outbound
policy 0
policy service service-set  udp

測試:

解決方法:
access-list OUT extended permit icmp any any
access-group OUT in interface outside
測試:
Inside#traceroute 202.100.1.1
Type escape sequence to abort.
Tracing the route to 202.100.1.1
  1 202.100.1.1 4 msec *  4 msec

access-list TR extended permit udp any any gt 33433
class-map TR.MAP
match access-list TR
policy-map global_policy
class TR.MAP
  set connection decrement-ttl(恢復減少TTL功能)

測試:
tracert 202.100.1.1

traceroute to  202.100.1.1(202.100.1.1), max hops: 30 ,packet length:40,press CTRL_C to break
1 192.168.1.10 20 ms  60 ms  50 ms
2 202.100.1.1 70 ms  50 ms  50 ms

解決方法:

SRX@Test-SRX#show

policy OUT {

    match {

        source-address any;

        destination-address any;

          application [junos-icmp-ping junos-udp-any ];

    }

    then {

        permit;

 }

測試:

解決方法:
默認不管是traceroute還是tracert,就是通的,是因為NS默認有一條trust fromto untrust any 策略。

測試:

當我們使用traceroute和tracert命令時,如果中間設備有防火牆或者有ACL規則,我們應當放行ICMP和UDP協議,防火牆要恢復減TTL功能。

泰克連續多年被評為「中國區優秀培訓合作夥伴」、2014年被華為公司授予「 華為HCIE培訓第一品牌」,成為華為技術培訓領頭羊。2014年通過265名HCIE;2015年通過348名HCIE;2016年通過430名HCIE;2017年通過660名HCIE;2018年截止3月份已經通過133名HCIE。泰克累計培育出2000餘名HCIE專家,居全球第一。

相關焦點

  • Traceroute與Tracert區別?
    如下圖來說明traceroute的思想:R1要去往R3數據包要經過路由器R2,但是在大多數情況下,我們並不知道這個網絡拓撲。R1和R3之間可能有很多的設備。traceroute使用ICMP超時報文和IP分組中的TTL(生存時間)欄位和UDP協議就能找出這個路由。
  • Tcptraceroute:基於TCP數據包的路由跟蹤器
    通過發送TCP SYN數據包來代替UDP或者ICMP應答數據包,tcptraceroute可以穿透大多數防火牆。[root@soft tcptraceroute-1.5beta7]# . /bin/  [root@soft bin]# tcptraceroute --help   tcptraceroute 1.5beta7  Copyright (c) 2001-2006 Michael C.
  • 乾貨|九個常用的網絡命令,網絡通信人必須懂得
    4 traceroute命令掌握使用traceroute命令測量路由情況的技能,即用來顯示數據包到達目的主機所經過的路徑。traceroute命令的基本用法是,在命令提示符後鍵入「tracert host_name」或「tracert ip_address」,其中,tracert是traceroute在Windows作業系統上的稱呼。
  • windows網絡命令:ping、ipconfig、tracert、netstat、arp
    幫助文檔windows查看配置:systeminfoipconfig和netstat命令後面不接IP位址、主機名,其餘3個命令ping,tracert,arp後面都要接主機地址。網絡基本功系列:細說網絡那些事兒1、ping用來檢測一幀數據從當前主機傳送到目的主機所需要的時間。來確定兩臺計算機之間的網絡是否連通。預測故障和確定故障源是非常有效。
  • CentOS下網絡路由追蹤軟體mtr及besttrace
    本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫1、MTRMTR是Linux平臺上一款非常好用的網絡診斷工具,或者說網絡連通性判斷工具,集成了traceroute
  • route是路線,one是一,那route one是什麼意思?
    我們知道route有「路線,路途」的意思,one是指數字一,那習語route one是什麼意思呢?route one的意思是「 to drive a football towards an opponent's goal by a long kick upfield from the rear」,即「(足球) 長傳(直接)進攻」。
  • OpenSIPS-關於請求中Record Set和Loose Route再討論
    關於這些相關概念的定義和細節,讀者可以參考筆者的歷史文檔來進一步了解關於record set 和loose route的區別以及應用場景中可能出現的問題:除了以上的參考連結以外,筆者這裡再次多IR初始請求和SR後續請求做一點補充說明。為了判斷其請求以及後續的處理流程,首先SIP 路由需要驗證其請求是初始請求還是後續請求。
  • 使用 mtrace 分析 「內存洩露」
    2 mtrace 使用介紹一旦發現系統有這個 「苗頭」,當務之急就是要找到代碼裡哪裡忘記歸還了動態分配的內存。而 「內存分配跟蹤(malloc tracing)」 機制則是幫助我們檢查 「內存洩漏」 的好幫手,本文就來給大家介紹一下這個工具的使用,習慣上這個工具我們簡稱為 mtrace,下文也直接用 mtrace 指稱這個工具。
  • Kubernetes 疑難雜症排查分享: 詭異的 No route to host
    大家好,我是 roc,來自騰訊雲容器服務(TKE)團隊,之前發過一篇乾貨滿滿的爆火文章
  • ACL與route-policy中permit/deny的關係
    因為route-policy在末尾預設一條deny,所以這三條都不能被重發步到OSPF域中。以上都是關於route-policy節點permit與ACL中permit/deny的關係探討,相對簡單。情況五:在R4上設置一個ACL permit的規則,並配置route-policy 且將節點設置成deny,最後重發步調用route-policy。
  • English Court Clarifies Owner Route and Ventilation Obligations
    The route taken by owners via Cape Horn was not the usual and customary route when the Panama Canal route was shorter and less risky to the cargo.
  • 手把手教你認識OPTIMIZER_TRACE
    可以通過optimizer_trace系統變量啟停跟蹤功能,MySQL從5.6開始提供了相關的功能,但是MySQL默認是關閉它的,我們在需要使用的時候才會手動去開啟。optimizer_trace可以是會話或者是全局開啟,但是每個會話都只能跟蹤它自己執行的語句,表中默認只記錄最後一個查詢的跟蹤結果(表中記錄的跟蹤結果數可以通過optimizer_trace的參數設置)。mys