技术观点:也谈VLAN的设计与应用

近来参加了不少医院网络方案的讨论和评标活动,在几乎所有医院的方案中都或多或少地采用了虚拟局域网(VLAN)技术,但笔者发现大多数方案中的VLAN设计都存在一个共同且致命的缺陷,那就是VLAN跨越网络的核心 。本文就这个问题谈一谈自己的看法,供同行们参考 。VLAN相互受影响
【技术观点:也谈VLAN的设计与应用】根据VLAN的定义和技术规范,VLAN不是由独享的物理设备和物理链路搭建的物理子网或网段,VLAN与实实在在的物理子网的本质区别在于,VLAN之间要共享物理设备和物理链路,因此,VLAN间就会通过所共享的设备和链路相互影响 。这种影响是如何产生的呢?VLAN是通过将一个物理拓扑中的两个或多个节点通过逻辑组合而形成的,要想实现这种逻辑的组合就必须使用支持VLAN的交换设备,但真正提供VLAN功能的是这些设备内部的软件 。也就是说,VLAN所构造的子网(广播域)是软件实现的,而不是由网络拓扑所决定的 。网络拓扑仅对由软件所建立的VLAN有所限制 。
知道了VLAN的工作原理,就不难解释VLAN间的影响了,同一交换机上的不同VLAN要共享交换机、要争夺交换机的CPU和背板资源 。VLAN对交换机和链路的共享可分为两种类型:一种是“广播共享”,即VLAN划定的广播域贯穿共享设备和链路(如图1所示),换句话说广播共享是二层的共享 。另一种我们称之为“路由共享”,也可以说是三层共享,在这种类型的共享中,不同VLAN的数据包是以路由(三层交换)方式穿过交换机的(如图2中虚线所示),通过的包基本上不含有一般的广播包(DHCP和非凡协议的广播除外) 。VLAN在“广播共享”网络资源时的相互影响要比“路由共享”时更大 。
从图1可清楚地看出所共享的网络资源(交换机和链路) 。在正常情况下,VLAN间的这种影响不被我们所注重,原因是共享的交换机有足够的交换能力,链路不是很拥挤,但在某一VLAN出现异常时(如感染病毒或出现环路)情况就不同了 。这时被感染VLAN(如VLAN1)中的大量数据帧将挤占该VLAN所及的所有交换机的CPU资源、背板带宽,并长时间占用物理链路,其他VLAN(如VLAN2)中的设备尽管“看”不到出现异常VLAN中的数据帧,但其所依靠的网络资源已被用尽,因此,VLAN1所覆盖的网络区域就会出现异常 。假如故障点发生在核心交换机四周,那么整个网络就有可能瘫痪 。这在各网络拓扑层交换机的性能相差不多的情况下尤为严重 。
三层共享有作用
由VLAN的性质所决定,完全消除VLAN间的链路和设备的共享在理论上是不可能的 。我们所做的努力只能尽量减少相互影响的范围、降低相互影响的程度 。如何做到这一点呢?在实践中我们总结出如下原则:1)应尽量避免在同一交换机中配置多个VLAN;2)不同物理位置上的交换机上的端口尽量不要划归到同一个VLAN 。前者较好理解,也轻易实现,我们重点讨论后者,即如何做到VLAN不跨越核心交换机和拓扑结构的“层” 。从图1可以看出,由于VLAN1(VLAN2也是这样)的范围跨越了整个网络,假如把所有VLAN的覆盖面都限定在核心交换机的同一侧,这些资源被共享的程度不就减轻了吗?按此想法我们可以将图1所示的网络改变为图2所示的结构 。
由于在这种结构中不存在跨越核心交换机的虚网,因此各VLAN的广播包就不会穿过核心交换机,但这些广播包却均能到达核心交换机,同时核心交换机上还会有ACL答应的VLAN间的正常数据流(如图2中的虚线所示)通过 。很显然,这时的核心交换机既阻挡了各VLAN的广播包,又转发了VLAN间的正常数据流,其被共享的形式由“广播式”变成了“路由式”,受VLAN影响的程度变小 。

推荐阅读