×

traceroute原理及分析_traceroute ip 端口

前端技术网 前端技术网 发表于2024-01-12 22:11:33 浏览764 评论0

抢沙发发表评论

一、在发出traceroute命令时,路由器默认使用哪种IP地址

你好

互联网中,信息的传送是通过网中许多段的传输介质和设备(路由器,交换机,服务器,**等等)从一端到达另一端。每一个连接在Internet上的设备,如主机、路由器、接入服务器等一般情况下都会有一个独立的IP地址。通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。UNIX系统中,我们称之为Traceroute,MS Windows中为Tracert。 Traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备Traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

traceroute原理及分析_traceroute ip 端口

在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行:

Traceroute hostname

而在Windows系统下是执行Tracert的命令:

Tracert hostname

比如在北京地区使用windows NT主机(已经与北京163建立了点对点的连接后)

使用NT系统中的Tracert命令:(用户可用:开始->运行,输入"command"调出command窗口使用此命令)traceroute [-46dFITUnrAV] [-f first_ttl] [-g gate,...]

traceroute原理及分析_traceroute ip 端口

[-i device] [-m max_ttl] [-p port] [-s src_addr]

[-q nqueries] [-N squeries] [-t tos]

[-l flow_label] [-w waittime] [-z sendwait]

host [packetlen]

traceroute6 [options]

tracert [options]

tcptraceroute [options]

说明:

traceroute tracks the route packets take across an IP network on their way to a given host. It utilizes

the IP protocol’s time to live(TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from

each gateway along the path to the host.

traceroute6= traceroute-6

tracert= traceroute-I

tcptraceroute= traceroute-T-p 80

选项说明:

唯一所必须的参数host是目的主机的名字或 IP地址。在这个参数之后可以选择跟上探测包的大小[packetlen](默认是40)。改变包的大小并使用-F参数可以用于获得个别网络跳的 MTU信息。(探测包大小的参数对于TCP探测来说无用)。

其余的选项:

--help打印帮助信息,并退出。

-4,-6显示地指定使用IPv4或IPv6 traceroute。默认情况下,traceroute会解析给定的主机名,并自动选择合适的协议。如果解析主机名既得到了IPv4的地址,又得到了IPv6的地址,traceroute会使用IPv4。

-I使用ICMP ECHO进行探测。

-T使用TCP SYN进行探测。

-U使用UDP报文进行探测(默认情况)。

二、traceroute原理

一、traceroute原理一

1、从源地址发出一个UDP探测包到目的地址,并将TTL设置为1;

2、到达路由器时,将TTL减1;

3、当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;

4、当源地址收到该ICMP包时,显示这一跳路由信息;

5、重复1~5,并每次设置TTL加1;

6、直至目标地址收到探测数据包,并返回端口不可达通知(ICMP Port Unreachable);

7、当源地址收到ICMP Port Unreachable包时停止traceroute。

一、traceroute原理二

1、从源地址发出一个ICMP请求回显(ICMP Echo Request)数据包到目的地址,并将TTL设置为1;

2、到达路由器时,将TTL减1;

3、当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;

4、当源地址收到该ICMP包时,显示这一跳路由信息;

5、重复1~5,并每次设置TTL加1;

6、直至目标地址收到探测数据包,并返回ICMP回应答复(ICMPEcho Reply);

7、当源地址收到ICMP Echo Reply包时停止tracert。

三、【traceroute】关于traceroute(路由追踪)的原理分析

traceroute主要利用 IP数据包的 TTL字段值+ ICMP来实现,它发送的用于探测网络路径的数据包的 IP之上的协议可以是 UDP、TCP或ICMP。

协议表示该数据报文所携带的数据所使用的协议类型,占 8位。

该字段可以方便目的主机的 IP层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。

例如,TCP的协议号为 6,UDP的协议号为 17,ICMP的协议号为 1。

不同模式下,探测过程中设计的数据包如下:

UDP探测数据包(目标端口大于 30000)+中间**发回 ICMP TTL超时数据包+目标主机发回 ICMP Destination Unreachable数据包

TCP [SYN]探测数据包(默认目标端口为 80)+中间**发回 ICMP TTL超时数据包+目标主机发回 TCP [SYN ACK]数据包

ICMP Echo(ping) Request探测数据包+中间**发回 ICMP TTL超时数据包+目标主机发回 ICMP Echo(ping) reply数据包

UDP端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。

我们向目标主机的固定端口发送UDP数据包,可以得到两种结果:

在运营商的路由器上,UDP与 ICMP的待遇大不相同。

为了利于 troubleshooting,ICMP ECHO Request/Reply是不会封的,而 UDP则不同。

UDP常被用来做网络攻击,因为 UDP无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP包,长度自定义。

所以运营商为安全考虑,对于 UDP端口常常采用白名单 ACL,就是只有 ACL允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP等。

当网络工程师用Ping时,Ping在偷摸做啥事儿?

ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。

ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。

另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。

有时我们traceroute一台主机时,会看到有一些行是以星号表示的。

出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。

Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有**都会如实返回 ICMP超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP报文。因此 Traceroute程序不一定能拿到所有的沿途**地址。所以,当某个 TTL值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops默认最大为30)才结束追踪

如果在局域网中的不同网段之间,我们可以通过traceroute来排查问题所在,是主机的问题还是**的问题。

如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute追踪数据包所经过的**,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

动态图解traceroute(路由追踪)的原理与实现

https://zhuanlan.zhihu.com/p/404043710

IP数据报格式详解

http://c.biancheng.net/view/6411.html

解析为何traceroute探测的时候中间有些节点探测不到?

https://zhuanlan.zhihu.com/p/122465496

traceroute使用与实现原理分析

https://zhuanlan.zhihu.com/p/36811672

traceroute(路由追踪)的原理及实现

https://www.jianshu.com/p/75a5822d0eec

为什么目标地址ping能通,但是tracetoute不通?

https://cloud.tencent.com/developer/article/1642331

只会用ping测试网络通不通?高级网工还会这么用

https://zhuanlan.zhihu.com/p/458358961

当网络工程师用Ping时,Ping在偷摸做啥事儿?

https://zhuanlan.zhihu.com/p/513184441

traceroute原理

https://www.cnblogs.com/zyd112/p/7196341.html

TCP/UDP/ICMP Traceroute的原理及区别

https://zhuanlan.zhihu.com/p/101810847

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!