Tracert 命令
一.实验目的
通过抓包,了解Tracert 命令的工作方式
二.实验拓扑
一.实验步骤
1.为每个路由器配置IP
2.配置RIP,确保全网互通
3.使用Tracert命令,在RT1上Tracert 3.3.3.2,通过在RT1上的G0/0接口抓包,查看数据包的内容
四.实验内容
RT1
[H3C]sysname ZJRT1
[ZJRT1]interface GigabitEthernet 0/0
[ZJRT1-GigabitEthernet0/0]ip address 1.1.1.1 24
[ZJRT1-GigabitEthernet0/0]undo shutdown
[ZJRT1-GigabitEthernet0/0]quit
[ZJRT1]rip 1
[ZJRT1-rip-1]network 1.1.1.0
RT2
[H3C]sysname ZJRT2
[ZJRT2]interface GigabitEthernet 0/0
[ZJRT2-GigabitEthernet0/0]ip address 1.1.1.2 24
[ZJRT2-GigabitEthernet0/0]undo shutdown
[ZJRT2-GigabitEthernet0/0]quit
[ZJRT2]interface GigabitEthernet 0/1
[ZJRT2-GigabitEthernet0/1]ip address 2.2.2.1 24
[ZJRT2-GigabitEthernet0/1]undo shutdown
[ZJRT2-GigabitEthernet0/1]quit
[ZJRT2]rip 1
[ZJRT2-rip-1]network 1.1.1.0
[ZJRT2-rip-1]network 2.2.2.0
RT3
[H3C]sysname ZJRT3
[ZJRT2]interface GigabitEthernet 0/1
[ZJRT2-GigabitEthernet0/1]ip address 2.2.2.2 24
[ZJRT2-GigabitEthernet0/1]undo shutdown
[ZJRT2-GigabitEthernet0/1]quit
[ZJRT2]interface GigabitEthernet 0/0
[ZJRT2-GigabitEthernet0/0]ip address 3.3.3.1 24
[ZJRT2-GigabitEthernet0/0]undo shutdown
[ZJRT2-GigabitEthernet0/0]quit
[ZJRT2]rip 1
[ZJRT2-rip-1]network 3.3.3.0
[ZJRT2-rip-1]network 2.2.2.0
RT4
[H3C]sysname ZJRT4
[ZJRT4]interface GigabitEthernet 0/0
[ZJRT4-GigabitEthernet0/0]ip address 3.3.3.2 24
[ZJRT4-GigabitEthernet0/0]undo shutdown
[ZJRT4-GigabitEthernet0/0]quit
[ZJRT4]rip 1
[ZJRT4-rip-1]network 3.3.3.0
现在测试网络连通性
用RT1 PING RT4
现在全网已经互通,现在在RT1上使用Tracert 命令,并在RT1上的G0/0接口抓包
RT1 Tracert RT4成功,我们现在查看抓包都抓到什么
我们可以看到,RT1发送的是一个基于UDP的报文,我们展开看看里面都包含什么
其中三层封装的是源目MAC,然后有一个Time to live (ttl)值为1,代表这个报文的存活时间为1,在四层,还封装了端口号,是33434,这个端口号是一个高端口,不提供任何的服务,当这个数据包到达第一台路由器时,回复给RT1的是一个TTL超时的报文,我们展开看下
三层
里面包含了源目IP,源地址是RT2的,目的地址是RT1,说明这个数据包是RT2回复的
四层
里面的信息意识是你发的数据包源是1.1.1.1,目的是3.3.3.2,TTL为1,到我这,数据包的存活时间就为0了,所有TTL超时,我送不到3.3.3.2
RT1收到后,会再次发送一个UDP报文,我们再查看其中的信息
三层
这次发送的还是源地址为1.1.1.1,目的地址为3.3.3.2,但是,这次的TTL值为2,说明,存活时间为2,,所有能够到达RT3
四层
四层还是一样,还是一个不提供服务的高端口号
这时,RT3收到,会给RT1回复,我们查看RT3的回包
三层
还是一样,源IP为2.2.2.2,目的为1.1.1.1,这时RT3给RT1的回包
四层
意思为这个数据包的目的地址为3.3.3.2,而TTL值只为1,所有我不能帮你传递了,因为已经超时了
RT1收到后会再次发送一个数据包,TTL值再加一,这时,数据包能够到达目的地址,我们查看下到达目的后,RT4回包
三层
源地址为3.3.3.2,目的地址为1.1.1.1
四层
告诉RT1,我收到了一个数据包,源地址是1.1.1.1,目的地址为3.3.3.2,里面像我请求了一项服务,端口号为33442,但是我没有提供这项付费,所有告诉RT1,端口不可达
这就是Tracert 命令的工作方式,首先发送一个数据包,设置其中的TTL值为1,里面请求了一项服务,该服务的端口号是一个高端口,当到达第一个路由器时TTL变为0,无法继续传递,如果第一个路由器为数据包的目的地址,则回复一个端口不可达的,如果不是第一个路由器不是目的地址,则回复一个TTL超时,源收到TTL超时时,会再发送一个数据包,这时,会将TTL加1发送,同时,会记录下别人回包的地址。