初学计算机网络的同学们,可能会跟我有一样的疑问,咱们在学习数据链路层的时候已经学习了VLAN的划分,VLAN已经能够分隔广播域,在第二层上实现虚拟局域网的划分。到了网络层的学习,我们又学习到了子网的划分,子网划分是解决ABC类地址的浪费问题,我第一个反应就是,这两者好像啊,都能分隔广播域,好像VLAN和子网划分起到的作用是一样的,那这两者之间有什么区别和联系呢?我自己思考了一段时间,也询问了大佬,最后终于搞明白他们之间的区别和联系。
首先,VLAN是在数据链路层上去划分,可以在一个交换机广播域划分,也可以跨交换机划分VLAN,那么MAC帧就会携带VLAN号码的标记,在传输的时候,准确走到对应的VLAN局域网去;子网划分的目的是为了解决IP地址不够用的问题,不同子网之间是要依靠路由器或者带有路由功能的三层交换机才能互相通信。所以VLAN是工作在第二层,IP子网是工作在第三层。
其次,我通过实验给大家说明为什么两者是要配合去使用的。
1.比如说我一个单位有两个部门,一个财务部,一个教务部门,两者对于安全等级的要求是不一样的,财务数据更加重要,只希望财务部门的主机共享自己的数据,教务处不能任意的访问财务部门的数据,所以我们的目标是希望两个部门的网络隔离开来,那么这时候由于IP地址不够用,所以我们就按照精打细算的原则去划分子网,财务部门一个子网,教务部门一个子网,两者之间划分好子网后只有通过路由器或者三层交换机才能通信,这么一看,好像已经把两者隔离开来了。但是如果我教务部门有一台主机,人为的把自己子网的IP地址修改成为财务部门子网的IP地址,那么教务部门就可以轻轻松松访问财务的数据了,这个在安全性是不允许的,所以这个时候就需要我们划分子网后,划分VLAN了,只有在数据链路层上划分好VLAN,才能防止上述情况,也就是教务部门改一改IP地址就能访问别人子网的目的,这个也就解释了为什么一般实际应用中,IP子网划分和VLAN是一起使用的。
2.这边我还做了这样一个实验,两个子网划分好了,中间用路由器联通,但是我想跨路由划分VLAN行不行得通?答案是行不通。原因是:如果不同网络,通过路由是无法跨网络配置VLAN,VLAN工作在第二层,无法跨路由三层设备设置VLAN.
3.还是刚才那种情况,如果中间用三层交换机连接,是否可以跨子网设置VLAN,答案是肯定的。VLAN可以跨二层设备,也就是不同子网通过三层交换机可以互联,这个时候的VLAN可以跨越三层交换机工作。就解决了我之前说的,不同子网划分到同一个VLAN里面,可能有些人会问,为什么VLAN要跨不同的子网,我感觉有一些场景会用到,如果两栋楼,用的就是不同子网,但是两栋楼里面有同一个部门,比如两栋楼里面都有教学部门,一个是计算机学院教学部,一个是电子信息学院教学部,这两个教学部在不同楼,所以IP子网不一样,但是又要实现VLAN划分到一起,那么这种情况就可以用上面这样的拓扑结构。
结论:这里解释一下,在一个交换机广播域内,如果划分了子网,不同子网无法通信,达到了隔离广播域的作用,但是如果不划分VLAN,那么其中一个子网的主机把自己主机内部的IP地址换成其他网络的,就可以轻松访问别人的子网了,这样安全性就达不到要求,所以要求划分子网的同时,必须搭配划分Vlan使用。
又有了一些新发现,补充一下,在思考子网划分的时候,我又冒出来这样一个问题。
比如说,一个单位有两个部门,每个部门就只有100台主机,这时候如果用两个C类IP地址就会造成浪费,我就用1个C类地址划分成两个子网给这两个部门使用,不会造成地址浪费,然后在配置好VLAN就可以了。但是,这里我突然脑洞大开,如果我不划分子网,我就只在一个网段里面配置好VLAN不是也可以隔离广播域,不会造成广播域过大,就解决了安全隐患和广播风暴的问题了吗?那为什么我这里还要去划分子网多此一举呢?再想想,我这样思考好像没毛病,但是如下图,VLAN10和VLAN20他们虽然不在一个虚拟局域网,实现了广播域的隔离,但是VLAN10和VLAN20将来要通信怎么办???就必须用路由器连接,用路由器连接就必须在不同网段,这里就体现出了子网划分的必要性,就必须要进行子网划分这个操作。
至此,就解释了,为什么子网划分一般是跟VLAN划分配合着去使用的。以上是我对这个问题思考的一个过程,如果大家有同样的疑问,希望对您有用,如有不对的地方,欢迎大家指出!