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是一个内网地址,就不行






posted @ 2016-09-12 09:03  SmileLion_LY  阅读(2030)  评论(0编辑  收藏  举报