traceroute 命令


1:traceroute命令原理

發送一份UDP數據報,將目的端口號設置為不可達端口號,第一次發送UDP數據報將TTL設置為一,當到達一個路由器的時候TTL減1,接受到此數據報的路由器丟棄該數據報,並且將回傳一份ICMP報文,並且再次ICMP報文中就包含了IP地址,第一跳的路由器地址

2:利用tracerout進行路由查看

在使用tcpdump抓取ICMP差錯報文的時候(由於TTL減少至0),不能用tcpdump -e host查看,因為這是指定的服務器,因為ICMP差錯報文不一定是由什么服務器返回的,或者路由器,因此不能指定

上面可以看到ICMP超時報文,長度是36

3:利用traceout進行寬松的源站選路

源站選路是利用了IP數據報頭部的選項部分

3.1code(0x83寬松的源站選路/0x89嚴格的源站選路)|len(代表長度)|ptr(代表指針,指向第一個路徑)|IP地址(當數據報在源站的時候,首先將第一個IP地址去掉,他是最終的目的地址,將其移到最后面,其他的IP地址往左移一個IP地址長度,PTR指向第一個,值是4)

過程:當發送主機收到應用層發送的報文的時候,如果code是0x83,則為寬松的源站選路,第一個IP地址是最終的IP地址,將其移到最后,其他的IP地址往左面移動一個IP地址,此時PTR指向第一個位置,即原來的第二個IP地址,此時PTR的值為四,首先將此IP地址作為目的地址,進行路由,當找到此IP地址的路由器時,PTR進行加4,一直這樣到最后的IP地址(最后的IP地址是原來發送主機的最終IP地址)

列如traceroute -g master slave

這樣即可進行寬松的路由選擇,路由路徑應該經過master,和,最終目的是slave


3.2:利用traceroute進行嚴格的源站選路


traceroute -G netb -G gatewany westgate

最終目的是westgate,如果此種路由到不了,則必為失敗的


3.2:利用traceroute進行往返路徑的查看

SmileLion %traceroute -g netb Smilelion

藍色字體為要到達的目的ip

貌似這樣如果Smilelion是一個內網地址,就不行







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM