去年在公司内部部署了VLAN后,出现了客户端不能上网了和访问服务器的情况,经过分析后确定是子网掩码长度问题引起的。当时为了解决这个问题,我也分析了很久才找到原因,最近在进行一个项目实施过程中也遇到了同样的问题,趁现在有空,想总结一下。
一般的用户觉得在一个网络中只要IP地址是唯一的就不会出现问题。其实不然,在多网段的情况下,或者是在划分了子网的情况下,IP地址唯一是保证不出现IP冲突的必要条件,可是网络间设备互通是需要网关设备转发的,这就会和子网掩码有联系了。这其中的原因是怎样的呢?
我们先来分析一下多网段的情况下的通讯过程。用一个简单的2个网络互联的情况做分析:主机A网卡(192.168.1.10/24)—>(路由器端口1(192.168.1.1/24),路由器端口2(192.168.2.1/24))——>主机B网卡(192.168.2.10/24)。主机A要访问不同网段的主机B时,首先需要判断主机B的地址是否与自己的IP地址是同一个网段,如果是的话,就通过ARP广播的方式找到B的MAC地址,然后与B进行通信,如果不是就会去找网关地址,通过网关去寻找B主机的网络地址,通过对应端口(2)转发到主机B。
这里有个关键的前提条件需要引起注意,源主机与目的主机是否是同一个网段,是通过网卡上设置的掩码来判断的,我们假设把上边的主机A掩码改为255.255.0.0(192.168.1.10/16),那么主机A访问主机B时,主机A就会把主机B判断成同一个网段,主机A就不会去找网关发送数据,所以此时主机A和主机B之间是不通的。