- 关于向路由器发送大字节报文且不分片的情况
(1)发送方式:首先通过netsh interface ipv4 set subinterface “接口名称” mtu=1800 store=active的方式扩大自身MTU的发送上限,然后通过ping命令的-f,不让其分片,并向路由器发送。
(2)实验结果:虽然看起来这样的情景十分的理想,但是最终的结果是路由器根本不会理会其数据大小超过它MTU大小的报文,而会直接丢弃,最终的结果是请求超时,实验失败。
- 使用ping命令 -j方式去控制报文传送路径,视图获取重定向报文
- 实验方式:通过ping命令-j选项去控制报文的传输从一个短路径转移到一个长路径上。由此引诱路由器发送一个重定向报文
- ping -j工具的使用方式:ping -j 路由器1指定的发包口 路由器2指定的发包口...目的地址
- 实验结果:虽然这个情景看似非常理想,但是却忽略了-j选项的工作原理。其工作原理如下:
它通过修改ICMP包中IP层的头部,结合一系列的工作,起到一个十分巧妙的报文传输控制。上图是我在主机与网关之间的路径上捕捉到的报文。
如图所示,原本的destination IP字段被修改为Current ip,Current IP字段代表我如果要发送这个报文,那么我必须根据这个指定IP,从配有这个指定IP接口上发送出去。同时我们还需关注下面的选项字段,里面需要注意的地方是Pointer指针下面的几个字段,下面标注了在报文发送过程中,每个路由器发送报文要使用的IP接口。比如结合上图我们就知道,当该报文到达网关后,该网关该使用配有11.0.0.1IP地址的接口进行转发。然后网关的下一条要使用配有11.0.1.1IP地址的接口对该报文进行转发。当路由器使用了报文中指定的IP地址IP接口进行转发后,它就会将对应的条目从IP选项中剔除,然后每个路由器都会这样工作,直达被目的主机接受。里面的内容还有很多,先说这么多。
我们从上面的工作原理就知道,路由器只是一昧的配合报文的内容去进行转发,可以用傀儡去形容,所以即便在上面的拓扑中它知道有更短的路径,它也不会发送重定向报文,因为这个要求是你提出来的,是你要求往这条路径进行报文传输,那么我肯定没有必要去对你进行纠正。实验失败。