VLAN总结

这两天业务需要,涉及到VLAN(Virtual Local Area Network)的一些内容,于是就顺便学习了一下。

顾名思义,VLAN就是虚拟LAN,什么是LAN?我们使用集线器或者交换机把计算机通过网线连接起来,这几台计算机就形成了一个LAN也称之为一个广播域或者冲突域。由于集线器处理包是复制分发的,一台计算机向其他计算机发网络包的时候,连接的所有计算机都会收到这个包。交换机效率会高一些,但广播包一样会发到LAN上的所有计算机。当LAN上的计算机数目越来越多,广播包也会越来越多,这些包占用的带宽资源也越来越大。这些包会有那么多吗?当然,很多网络协议包都需要使用广播包的。这些包对没有交互需求的计算机之间就造成了影响,这种现象称之为Flooding。当一个LAN内的计算机数目过多以后,除了用户感知的网速会变慢以外,也不利于网络的管理,怎么办?我们可以使用路由器的多个网络口把一个大的LAN分成多个小的LAN,广播包无法穿越路由器,这样就提高了整个网络的带宽利用率。

但是要知道,使用路由器建设网络的成本是高昂的。总不能百十号人也买个路由器吧,于是VLAN技术就出现。通过在交换机路由器之间的消息报文内增加一个网络标记的方式,来控制广播包发送的范围。如果这个网口或者这台计算机的网络标记跟消息包上的网络标记不匹配,那么这个广播消息包就不会发给这台计算机,这样一来这个没有路由器的网络,对网络包的投递效果跟有路由器的网络是一样的,可以有效控制Floogding,而且带来了更多好处成本较低、灵活性高等。

目前VLAN的协议有两种,一个是IEEE802.1Q,另一个是思科自己的ISL(Inter-Switch Link)。协议定义细节有差异,本质都是在路由器交换机之间的消息包上增加了一个网络号标记。当消息包从网络发送到计算机的时候,这个标记会被去除,也就是说,这个协议是交换机、路由器等网络设备之间使用的,也就是只在汇聚层使用,在接入侧不会用。

说了这么多,你可能要问,那VLAN间的计算机怎么通信呢?处在不同VLAN的计算机之间要通信,还得使用路由器。“晕,搞了半天还是一样啊!”你是不是想这样说?接着往下看,汇聚层有一种链路叫Trunk Link,它可以传送不同VALN的消息包,也就是说,多个VLAN,我们只需要占用路由器一个端口就够了。要知道,路由器的端口数都是有限的,能少占用也是进步。有人说这还不够,我们能不能把路由器省略掉呢?没错,三层交换机可以做到,他们VLAN路由直接做到了芯片里,三层交换机都包含一个路由模块,可以直接处理跨VLAN计算机之间的交互。这样我们就不需要为了这一点点需求而引入昂贵的路由器了。我们可以通过交换机上的端口、计算机的MAC地址、计算机的IP地址段等来灵活的划分VLAN。采用哪种方法需要对组网的情况综合考量,不同的方法对消息包的路由速度也是不同的,从上文列出的来看路由速度:端口>MAC>IP。因为处理消息包的要获取的信息从ISO的底层逐渐上移,需要花费更多的时间分析消息包,处理速度自然就慢了。

总之一句话,VLAN很重要,呵呵。VLAN在极大的灵活组网的同时也给网络故障的定位带来麻烦,VLAN会增加数据流的错综复杂,我们既要关注网络的物理拓扑,也要关注它的逻辑拓扑。

猜你喜欢

转载自freshunter.iteye.com/blog/1752630