关于Ping和Tracert的一些总结
Ping与Tracert命令都是基于ICMP协议的,在实验过程中发现本机ping不通校园网网关,应该是禁ping的原因,但使用tracert工具却能到达,很是不解。既然都是基于icmp的,校园网服务器禁icmp协议的话,理论上tracert命令也用不了。
于是便去了解了一下两者处理过程上的区别:
ping时发出的报文类型为echo,类型码为8,回应报文的类型为echo-reply,类型码为0
tracert时,发出的报文类型和ping相同(但ttl值不同);返回的icmp报文类型为ttl-exceeded, 类型码为 Type=11
可参考如下acl
acl number 3000
rule 5 permit icmp icmp-type echo
rule 10 permit icmp icmp-type echo-reply
rule 15 deny icmp icmp-type ttl-exceeded
根因
Tracert和ping都是通过icmp协议来实现的,但他们的icmp类型不一样,可以使用参数icmp-type 进行区别
这样就说明我的校园网仅仅禁ping但并未禁tracert。
根据网上搜集到的资料,个人理解为Tracert根据路由表
中的路由信息来走一遍网络(如果之前使用过Tracert跟踪过同一个目标,不管目标在不在线都能tra)。
而当设备关机或者开启防火墙或者禁ping是不能ping通的。
总结就是tracert 是告诉你到达目的的路是这么走的.Ping 告诉你目的地是不是正常.那是另一回事.
eg:就像你去北京. 地图告诉你怎么走. 至于目的地是不是让你通过.查不查你的进京证. 外地车辆是不是允许你进去这另一回事.