宁波网站优化建站公司,网站建设多少钱怎么卖,贝壳企业网站管理系统,wordpress破解版文章中有截图#xff0c;看不清的话#xff0c;可以把浏览器显示比例放大到200%后观看。
linux下traceroute的原理
本文通过抓包观察一下linux下traceroute的原理
环境#xff1a;一台嵌入式linux设备#xff0c;内网ip是192.168.186.195#xff0c;其上有192.168.202.…文章中有截图看不清的话可以把浏览器显示比例放大到200%后观看。
linux下traceroute的原理
本文通过抓包观察一下linux下traceroute的原理
环境一台嵌入式linux设备内网ip是192.168.186.195其上有192.168.202.1的ip地址。网关是192.168.186.1。外部公网ip一个乌班图设备ip是221.5.87.66。在嵌入式上抓包然后传出观察。
过程
crt上运行tftp服务器。 cmd下验证
C:\Windows\System32netstat -ano | findstr :69 查看udp69端口是否打开 UDP 0.0.0.0:69 *:* 27556得到进程号是27556 UDP [::]:69 *:* 27556 C:\Windows\System32tasklist | findstr 27556 根据进程号查程序名
SecureCRT.exe 27556 Console 1 62,852 K
确定已经打开文件保存目录事先已经设定好C:\Users\zy041\Desktop\seccrt\tftp\log。
已知设备的eth0口上联口192.168.186.195gw是192.168.186.1
抓包~ # tcpdump -i eth0 -w trace2.pcap host 221.5.87.66 or icmp
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
另起一个ssh执行traceroute
/mnt/userspace # traceroute -w 1 -d 221.5.87.66 -w 1是超时等待时间是1秒-d是不进行dns解析这样可以提高回显时间。
traceroute to 221.5.87.66 (221.5.87.66), 30 hops max, 38 byte packets 1 192.168.186.1 (192.168.186.1) 0.464 ms 0.293 ms 0.348 ms 2 bogon (10.110.1.1) 1.224 ms 0.913 ms 0.957 ms 3 10.0.64.1 (10.0.64.1) 5.988 ms 3.577 ms 3.588 ms 4 123.139.2.33 (123.139.2.33) 3.980 ms 3.946 ms 3.903 ms 5 * * 221.11.0.2 (221.11.0.2) 4.460 ms 6 221.11.0.153 (221.11.0.153) 6.493 ms * * 7 * * * 8 112.96.0.198 (112.96.0.198) 44.014 ms 43.995 ms 43.515 ms 9 120.80.209.146 (120.80.209.146) 40.623 ms 40.636 ms 40.358 ms
10 221.5.87.66 (221.5.87.66) 40.255 ms 39.971 ms 39.960 ms
如图经过10次到达目的ip221.5.87.66。
停止抓包
~ # tcpdump -i eth0 -w trace2.pcap host 221.5.87.66 or icmp
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C60 packets captured ctrlc结束抓包
60 packets received by filter
0 packets dropped by kernel
~ # tftp -pl trace2.pcap 192.168.186.118 传出文件
trace2.pcap 100% |***************************************************************| 5515 0:00:00 ETA 打开观察 同一ip发来的ttl exceeded三次判断可能这个ip收到ttl1的udp包三次所以wireshark里添加ttl项 找到ip层的ttl项增加为列 可以看到ttl为1-10的包每个ttl取值发了三次udp的目的端口每发一次1因为ttl exceeded消息回携带部分收到的ttl1的包因为发的是udp消息所以ip层的ttl1而这个ttl exceeed消息因为设备不同ttl原始值有的是255有的是128有的是64所以经过对应节点后减1后取值不同。 看最后ttl10时到达目的ip由目的ip 221.5.87.66发出目的端口不可达目的端口未打开这个端口所以源设备收到目的设备ip发出目的端口不可达认为已经到达对方设备停止发出udp包。
由此traceroute的原理是发出udp包ttl从1开始每个ttl值发三次udp的目的端口有一个基础值每发一包端口1记录ttl exceed消息的ip为经过节点ip在收到目的发出目的端口不可达消息后认为到达目的设备停止命令。