今天跟大家讲个冷知识,同一个VLAN下不同网段的两台PC实现通信。这种情况在实际网络中不会出现,只是通过这个案例让大家思考一下为什么可以实现通信,加深自己对ARP的理解。



同网段划分vlan 同网段不同vlan能通吗_抓包


如上图,三台PC都在同一个VLAN1中。但PC3跟PC1和PC2为不同的一个网段。

如果我们直接在PC1中ping PC3是无法ping通的。这时候我们只需要在PC1中把网关写成PC3的IP地址,PC3网关写成PC1的IP地址。


同网段划分vlan 同网段不同vlan能通吗_抓包_02


同网段划分vlan 同网段不同vlan能通吗_IP_03


现在我们就可以实现PC1和PC3通信了,我们尝试ping一下看结果。


同网段划分vlan 同网段不同vlan能通吗_IP_04


个人对这次通信的理解:

大家都知道一台终端向别一台终端通信时会判断是否为同一个网段,如果为同一个网段就会发送ARP广播请求别一台终端的MAC地址。如果不是同一个网段终端会向网关发送ARP请求(请求MAC地址),得到了网关的MAC地址后,就会把数据交给网关去和不同网段的终端通信。所以:

PC1在ping PC2时,先判断是否与自己是同一个网段,由于不是同一个网段,PC1就会向网关发送ARP包请求。这时候大家都会问PC1的IP地址和网关都不是同一个网段为什么会发ARP请求,查询了ARP协议的资料后得出,ARP协议没有规定源和目标地址必须为同一个网段(这个结论在抓包过程中得到了验证,我们可以看下面的抓包图),所以PC1会向网关(192.168.2.2)发送ARP请求。从抓包软件中可以看到PC1发送了ARP广播包请求192.168.2.2的MAC地址。紧接着PC3回应了PC1 自己的MAC地址。得到了网关MAC地址后,PC1就把ping包发送到网关中,这样子就实现了通信。


同网段划分vlan 同网段不同vlan能通吗_同网段划分vlan_05

对PC1进行抓包分析


同网段划分vlan 同网段不同vlan能通吗_同网段划分vlan_06

PC1发送的ARP广播包查询192.168.2.2的MAC地址


同网段划分vlan 同网段不同vlan能通吗_抓包_07

PC3回应PC1自己的MAC地址


我们接下来可以看到PC1和PC3的ARP缓存表都会保存着对方的IP地址和MAC地址。


同网段划分vlan 同网段不同vlan能通吗_抓包_08


同网段划分vlan 同网段不同vlan能通吗_同网段划分vlan_09