zoukankan      html  css  js  c++  java
  • 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是一个内网地址,就不行






  • 相关阅读:
    web api post/put空值问题以及和angular的冲突的解决
    大话数据结构-图
    大话数据结构-树
    大话数据结构-栈与队列
    大话数据结构-线性表
    redis发布订阅、HyperLogLog与GEO功能的介绍
    redis使用管道pipeline提升批量操作性能(php演示)
    redis设置慢查询日志
    Laravel5.5配置使用redis
    Redis数据类型的常用API以及使用场景
  • 原文地址:https://www.cnblogs.com/SmileLion/p/5863534.html
Copyright © 2011-2022 走看看