文章目录
参考阅读
掩码配置错误
将一个PC的Netmask配置错误后,分析icmp的ping流向,以及ARP报文的发送的逻辑
实验拓扑
PC1:10.1.1.129/24
PC2:10.1.1.3/27
GW:10.1.1.1
可以看到PC2的掩码本应该是24,但是误配置为了27;上图中IP地址的下方为设备的MAC地址
PC1 ping PC2 ICMP、ARP报文分析
1、PC1认为PC2与自己在同一个子网,直接发送ARP广播
2、收到PC2的ARP回应后,在本地形成ARP的映射,然后直接发送ICMP的ping request
3、PC2的ping回应并不能直接到PC1,因为PC2认为PC1与自己不在同一个子网,需要先通过ARP找网关,所以抓包就会发现PC2通过ARP广播找网关
3、tracert可以看到PC1->PC2是直接一跳到的,PC2->PC1是需要两跳的
ping后查看ARP表,可见保存的就直接是PC2的MAC与IP的映射关系
PC1 tracert PC2时 一跳可达,但是PC2tracertPC1时虽然ARP中有PC1的映射,还是需要从网关绕行,此时就出现了经典的来回路径不一致的情况
PC2 ping PC1 ICMP、ARP报文分析
道理相同…
1、PC2认为PC1与自己不在同一个子网,直接发送ARP广播找网关
2、收到网关的ARP回应后,在本地形成ARP的映射,然后让网关去做ping的动作
3、PC1收到了网关的的ping请求后,发出ARP的广播,PC1认为PC2与自己在一个子网,则直接发送ARP的请求
4、PC1直接学习到PC2的mac,后续直接不走网关通信,而是二层直接通信
tracert可以看到PC1->PC2是直接一跳到的,PC2->PC1是需要两跳的
问题与总结
Q1:为什么PC1认为PC2与自己在同一个网段?PC2认为不在
PC1:10.1.1.129/24
PC2:10.1.1.3/27
PC1以自己的mask24 与 PC2的IP得出结果10.1.1.0这个数值与自己的网段匹配则认为在同一个子网内
PC2以自己的mask27 与 PC1的IP得出结果10.1.1.129 与自己的网段不同,则认为不在一个网段
Q2:如果将PC1、2的IP修改为如下,则通信需不需要绕行网关?
PC1:10.1.1.2/24
PC2:10.1.1.3/27
答案是不需要,此时两台PC都认为对方与自己在同一个子网中