首次编辑时间:2015.6.10
由于有轨电车 闸机 和 server 不通, 其间经过了 多个 L3路由设备,故用 traceroute 诊断。
windows上用tracert。P.S: S H I T 快写完了, 保存的草稿不见了。
注: 命令的详细用法 参照附录。
一、功能
1、诊断 两点之间 不能正常通信时 问题出在哪里(一般是确定哪一段路由有问题);
如图PC1 traceroute PC2,确定其间的哪一跳路由有问题,再逐级排查。
2、跟踪 两点之间 所经过的 路由信息。
确定PC1 与 PC2之间的所有网段 信息。
二、原理
注:按照PC1 traceroute PC2来描述。
1、逐点 探测, TTL逐渐加1;
2、开始PC1 以TTL 为1, 发送 UDP 报文(windows发送icmp的ping报文),
个数默认为3(健壮性考虑,可有-m n, windows 是 -h n 进行设定);
3、 R1 收到 该报文后, 查找路由, 找到路由后,
在ip_forward 中,先if (ttl <=1) goto too_many_hops; ifnot ip_descrease_ttl;
在too_many_hops中, icmp_send(ICMP_TIME_EXCEEDED);
so, R1 收到 该ttl==1 的 报文后,会反向回复一个 ICMP_TIME_EXCEEDED的icmp报文;
4、 PC1收到该