取证分析:在通信过程中不关心目标的子网掩码

简介:

有几组让网络学习者感到很疑惑的IP地址组,现在就针对两组典型的地址做分析:

第一组:    IP:192.168.1.1     与      192.168.2.1

               255.0.0.0               255.255.0.0

如果把这两组地址直接填写到利用二层交换机或集线器相连的两台主机上,这两个地址不经过路由能ping通吗?正确的回答是:能ping通!

如果将192.168.1.1/8位作为信源主机(发起通信的源主机),192.168.2.1/16作为信宿主机(接收通信的目标主机),在IP地址求“与”时,这两个IP在去和回的路径上都是处于一个子网中,所以能通信。在这里提出知识点的误区:在确定两个IP地址是否在同一个子网的方式有误。如第一组所示的地址。如果我们在判断两个IP是否在一个子网时利用下图2.26方式是正确的,那么大家在分析192.168.1.1/8与192.168.2.1/16就应该需要路由才能通信,具体如图2.27所示。但实验结果会告诉读者,192.168.1.1/8 与192.168.2.1/16根本就是在一个子网,因为它们不需要路由也能通信!读者可把这两个地址放在两台计算机上试一试就可证明。

wKioL1LLyCTClsHSAABb9HBxFbI597.jpg

wKiom1LLyDHCX3WgAABWEo_kMXc719.jpg


正确的理解IP求“与”来确定是否在一个子网中的技巧:

IPV4的通信,源主机根本不需要关心目标主机的子网掩码,而求“与”的正确过程应该是:将目标主机的IP与源主机的子网掩码求“与”,再将源主机的IP与源主机的子网掩码求“与”,得出两个主机是否在同一个子网,如图2.28所示。

wKioL1LLyNPSkKPfAAClrTWHhdE872.jpg


所以ICMP的请求报文能够准确地从192.168.1.1/8发到192.168.2.1/16。

接下来看一下:192.168.2.1/16返回给192.168.1.1/8的ICMP应答报文,在这个过程中我们可以将192.168.2.1理解成应答回送报文的源主机,而192.168.1.1是应答回送报文的目标主机,所以仍然以IPV4通信不要求关心目标子网的原则,如上图2.28所示,从192.168.2.1返回给192.168.2.1 的ICMP通信仍在同一子网。

将这组IP地址分析到这个程度上就可以很明确的得出一个结论:192.168.1.1/8在没有三层路由设备的情况下,直接与192.168.2.1/24相连,是能ping通的,因为ICMP的请求与应答消息都是在一个子网中,它们没理由需要三层路由设备。


第二组地址:192.168.1.1       192.168.2.1

            255.255.255.0      255.255.0.0

如果把这两组地址直接填写到利用二层交换机或集线器相连的两台主机上,这两个地址不经过路由能ping通吗?

答:不能ping通。当192.168.1.1/24主机ping192.168.2.1/16时,在192.168.1.1/24的主机上会报告“Destination hostunreachable.”,当从192.168.2.1/16主机ping192.168.1.1/24的主机时会报告“Request timed out”,ping不通。为什么还会出现报告不同的错误的提示?原因很简单,当192.168.1.1/24主动发起对192.168.2.1/16的ping时,根据第一组地址分析得出一个结论:当192.168.2.1作为目标时,不关心它的子网掩码,所以通过“与”方式,192.168.1.1/24与192.168.2.1/16不在同一子网,这时ICMP的请求消息都到不了目标主机,所以就直接报告:“Destination hostunreachable”目标主机不可达。但相反,从192.168.2.1/16主动ping 192.168.1.1/24主机时,目标就是192.168.1.1/24所以可以不关心目标IP地址的子网掩码,此时,192.168.2.1主机的ICMP的请求消息能够到达192.168.1.1/24的主机,因为ICMP发送ICMP请求消息时它们在同一个子网中的。换言之,192.168.2.1的ICMP请求消息可以正确的发到192.168.1.1。但是大家千万不要忘记通信是一个双向的过程,特别是ICMP的请求消息能发到目标主机,这并不表示ping就会成功,必须要192.168.1.1对192.168.2.1的应答消息能被准确的送到192.168.2.1时,一个完整的ping过程才完成。问题也就在这里,因为当192.168.1.1作为源地址去响应192.168.2.1的ICMP请求时,192.168.2.1就是目标地址,使用第一组地址中“与”计算的方式,我们可以明确看到,192.168.1.1无法将ICMP的应答消息传递到192.168.2.1,因为它们不在同一个子网中。大家再联动起来分析:当192.168.2.1主动ping192.168.1.1时,它的请求消息能被传递到192.168.1.1,然后它就等待192.168.1.1为它做ICMP应答,但是应答消息永远不会被传递到192.168.2.1,所以192.168.2.1的等待就超时了,报告:“Request timed out”。





本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1349517,如需转载请自行联系原作者
相关文章
|
7月前
|
前端开发
如何利用dnslog探测目标主机杀软
如何利用dnslog探测目标主机杀软
106 0
|
1月前
|
运维 监控 网络虚拟化
|
监控 算法
Booth算法在局域网监控软件中的运用和具体例子
通过使用Booth算法,局域网监控软件可以更加高效地完成IP地址匹配、范围查询和信息更新等任务,提高软件的性能和效率,从而更好地满足用户的监控和管理需求
258 0
|
边缘计算 网络安全 网络虚拟化
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5(二)
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5
|
边缘计算 网络虚拟化
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
|
存储 边缘计算 缓存
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1(二)
《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1(二)
|
网络协议 网络架构
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.3
《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.3
|
存储 SDN
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.6
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.6
|
边缘计算 编解码 数据可视化
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5(一)
《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5(一)