1、计算机网络系统中的VLAN通信技术(一)一、为什么需要VLAN1.1、什么是VLAN?VLAN(VirtualLAN),翻译成中文是“虚拟局域网”。 LAN可以是由少数几台家用计算机构成的也可以是数以百计 的计算机构成的企业网络。VLAN所指的LAN特指使用路由 器分割的网络一一也就是广播域。在此让先复习一下广播域的概念。广播域,指的是广播 帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直 接通信的范围。严格地说,并不仅仅是广播帧,多播帧 (MulticastFrame)和目标不明的单播帧(UnknownUnicastFrame)也能在同一个广播域中畅行无阻。本来,二层交换机只能构建单
2、一的广播域,不过使用 VLAN功能后,它能够将网络分割成多个广播域。1.2、未分割广播域时将会发生什么?那么,为什么需要分割广播域呢?那是因为,如果仅有 一个广播域,有可能会影响到网络整体的传输性能。具体原 因,请参看附图加深理解。图中,是一个由5台二层交换机(交换机15)连接了 大量客户机构成的网络。假设这时,计算机A需要与计算机 B通信。在基于以太网的通信中,必须在数据帧中指定目标 MAC地址才能正常通信,因此计算机A必须先广播“ARP请汇聚链接(TrunkLink)指的是能够转发多个不同VLAN 的通信的端口。汇聚链路上流通的数据帧,都被附加了用于分属于哪个 VLAN的特殊信息。现在再让
3、回过头来考虑一下刚才那个网络如果采用汇聚 链路又会如何呢?用户只需要简单地将交换机间互联的端口 设定为汇聚链接就可以了。这时使用的网线还是普通的UTP 线,而不是什么其他的特殊布线。图例中是交换机间互联, 因此需要用交叉线来连接。接下来,让具体看看汇聚链接是如何实现跨越交换机间 的VLAN的o 、A发送的数据帧从交换机1经过汇聚链路到达交换 机2时,在数据帧上附加了表示属于红色VLAN的标记。 、交换机2收到数据帧后,经过检查VLAN标识发现 这个数据帧是属于红色VLAN的。 、因此去除标记后根据需要将复原的数据帧只转发给 其他属于红色VLAN的端口。这时的转送,是指经过确认目标MAC地址并与
4、MAC地址 列表比对后只转发给目标MAC地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧 时,它才会被转发到所有属于红色VLAN的端口。同理,蓝色VLAN发送数据帧时的情形也与此相同。通过汇聚链路时附加的VLAN信息,有可能支持标准的 “IEEE802. 1Q”协议,也可能是Cisco产品独有的aISL(InterSwitchLink) v 。如果交换机支持这些规格, 那么用户就能够高效率地构筑横跨多台交换机的VLANo另外,汇聚链路上流通着多个VLAN的数据,自然负载 较重。因此,在设定汇聚链接时,有一个前提就是必须支持 100Mbps以上的传输速度。另外,默认条件下,汇聚链
5、接会转发交换机上存在的所 有VLAN的数据。换一个角度看,可以认为汇聚链接(端口) 同时属于交换机上所有的VLANo由于实际应用中很可能并 不需要转发所有VLAN的数据,因此为了减轻交换机的负 载、也为了减少对带宽的浪费,可以通过用户设定限制能够 经由汇聚链路互联的VLAN。关于IEEE802. 1Q和ISL的具体内容,将在下一讲中提 到。五、VLAN的汇聚方式(IEEE802. 1Q与ISL)5.1、汇聚方式在交换机的汇聚链接上,可以通过对数据帧附加VLAN 信息,构建跨越多台交换机的VLANo附加VLAN信息的方法,最具有代表性的有: IEEE802. 1QISL现在就让看看这两种协议分别
6、如何对数据帧附加VLAN 信息。5.2、IEEE802. 1QIEEE802. 1Q,俗称 “DotOneQ”,是经过 IEEE 认证的 对数据帧附加VLAN信息的协议。在此,请大家先回忆一下以太网数据帧的标准格式。IEEE802. 1Q所附加的VLAN信息,位于数据帧中“发送 源MAC地址”与类别域(TypeField) ”之间。具体内容为 2字节的TPID和2字节的TCI,共计4字节。在数据帧中添加了 4字节的内容,那么CRC值自然也会 有所变化。这时数据帧上的CRC是插入TPID、TCI后,对 包括它们在内的整个数据帧重新计算后所得的值。而当数据帧离开汇聚链路时,TPID和TCI会被去除
7、, 这时还会进行一次CRC的重新计算。TPID的值,固定为0x8100o交换机通过TPID,来确定 数据帧内附加了基于IEEE802. 1Q的VLAN信息。而实质上 的VLANID,是TCI中的12位元。由于总共有12位,因此 最多可供4096个VLANo基于IEEE802. 1Q附加的VLAN信息,就像在传递物品 时附加的标签。因此,它也被称作“标签型 VLAN(TaggingVLAN)” 。5.3、ISL (InterSwitchLink)ISL,是Cisco产品支持的一种与IEEE802. 1Q类似 的、用于在汇聚链路上附加VLAN信息的协议。使用ISL后,每个数据帧头部都会被附加26字
8、节的 “ISL包头(ISLHeader) ,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC 值。换而言之,就是总共增加了 30字节的信息。在使用ISL的环境下,当数据帧离开汇聚链路时,只要 简单地去除ISL包头和新CRC就可以了。由于原先的数据帧 及其CRC都被完整保留,因此无需重新计算CRC。ISL有如用ISL包头和新CRC将原数据帧整个包裹起 来,因此也被称为“封装型VLAN(EncapsulatedVLAN)w。需要注意的是,不论是IEEE802. 1Q的“TaggingVLAN,还是 ISL 的“EncapsulatedVLAN,都 不是很严密的称谓。不
9、同的书籍与参考资料中,上述词语有 可能被混合使用,因此需要大家在学习时格外注意。并且由于ISL是Cisco独有的协议,因此只能用于 Cisco网络设备之间的互联。求(ARPRequest)信息”,来尝试获取计算机B的MAC地 址。交换机1收到广播帧(ARP请求)后,会将它转发给除接 收端口外的其他所有端口,也就是Flooding T 0接着,交 换机2收到广播帧后也会Floodingo交换机3、4、5也还 会Floodingo最终ARP请求会被转发到同一网络中的所有 客户机上。请大家注意一下,这个ARP请求原本是为了获得计算机 B的MAC地址而发出的。也就是说:只要计算机B能收到就 万事大吉了
10、。可是事实上,数据帧却传遍整个导致所有的计 算机都收到了它。如此一来,一方面广播信息消耗了网络整 体的带宽,另一方面,收到广播信息的计算机还要消耗一部 分CPU时间来对它进行处理。造成了网络带宽和CPU运算能 力的大量无谓消耗。1.3、广播信息是那么经常发出的吗?读到这里,你也许会问:广播信息真是那么频繁出现的 吗?答案是:是的!实际上广播帧会非常频繁地出现。利用 TCP/IP协议栈通信时,除了前面出现的ARP外,还有可能 需要发出DHCP、RIP等很多其他类型的广播信息。ARP广播,是在需要与其他主机通信时发出的。当客户 机请求DHCP服务器分配IP地址时,就必须发出DHCP的广 播。而使用
11、RIP作为路由协议时,每隔30秒路由器都会对 邻近的其他路由器广播一次路由信息。RIP以外的其他路由协议使用多播传输路由信息,这也会被交换机转发(Flooding) o 除了 TCP/IP 以外,NetBEUI. IPX 和 AppleTalk等协议也经常需要用到广播。例如在Windows下 双击打开“网络计算机时就会发出广播(多播)信息。(WindowsXP 除外)总之,广播就在身边。下面是一些常见的广播通信: ARP请求:建立IP地址和MAC地址的映射关系。 RIP: 一种路由协议。 DHCP:用于自动设定IP地址的协议。 NetBEUI: Windows T使用的网络协议。 IPX: N
12、ovellNetware使用的网络协议。 AppleTalk:苹果公司的Macintosh计算机使用的网 络协议。如果整个网络只有一个广播域,那么一旦发出广播信 息,就会传遍整个并且对网络中的主机带来额外的负担。因 此,在设计LAN时,需要注意如何才能有效地分割广播域。1.4、广播域的分割与VLAN的必要性分割广播域时,一般都必须使用到路由器。使用路由器 后,可以以路由器上的网络接口 (LANInterface)为单位分 割广播域。但是,通常情况下路由器上不会有太多的网络接口,其 数目多在14个左右。随着宽带连接的普及,宽带路由器 (或者叫IP共享器)变得较为常见,但是需要注意的是,它 们上面
13、虽然带着多个(一般为4个左右)连接LAN 一侧的网络 接口,但那实际上是路由器内置的交换机,并不能分割广播 域。况且使用路由器分割广播域的话,所能分割的个数完全 取决于路由器的网络接口个数,使得用户无法自由地根据实 际需要分割广播域。与路由器相比,二层交换机一般带有多个网络接口。因 此如果能使用它分割广播域,那么无疑运用上的灵活性会大 大提高。用于在二层交换机上分割广播域的技术,就是VLAN。 通过利用VLAN,可以自由设计广播域的构成,提高网络设 计的自由度。二、实现VLAN的机制2. 1、实现VLAN的机制在理解了 “为什么需要VLAN之后,接下来让来了解 一下交换机是如何使用VLAN分割
14、广播域的。首先,在一台未设置任何VLAN的二层交换机上,任何 广播帧都会被转发给除接收端口外的所有其他端口 (Flooding)。例如,计算机A发送广播信息后,会被转发 给端口 2、3、4o这时,如果在交换机上生成红、蓝两个VLAN;同时设置 端口 1、2属于红色VLAN、端口 3、4属于蓝色VLAN。再从 A发出广播帧的话,交换机就只会把它转发给同属于一个 VLAN的其他端口也就是同属于红色VLAN的端口 2,不 会再转发给属于蓝色VLAN的端口 。同样,C发送广播信息时,只会被转发给其他属于蓝色 VLAN的端口,不会被转发给属于红色VLAN的端口。就这样,VLAN通过限制广播帧转发的范围分
15、割了广播 域。上图中为了便于说明,以红、蓝两色不同的VLAN,在 实际使用中则是用“VLANID来区分的。2.2、直观地描述VLAN如果要更为直观地描述VLAN的话,可以把它理解为将 一台交换机在逻辑上分割成了数台交换机。在一台交换机上 生成红、蓝两个VLAN,也可以看作是将一台交换机换做一 红一蓝两台虚拟的交换机。在红、蓝两个VLAN之外生成新的VLAN时,可以想象成 又添加了新的交换机。但是,VLAN生成的逻辑上的交换机是互不相通的。因 此,在交换机上设置VLAN后,如果未做其他处理,VLAN间 是无法通信的。明明接在同一台交换机上,但却偏偏无法通信一一这个 事实也许让人难以接受。但它既是
16、VLAN方便易用的特征, 又是使VLAN令人难以理解的原因。2.3、需要VLAN间通信时怎么办?那么,当需要在不同的VLAN间通信时又该如何是好呢? 请大家再次回忆一下:VLAN是广播域。而通常两个广 播域之间由路由器连接,广播域之间来的数据包都是由路由 器中继的。因此,VLAN间的通信也需要路由器提供中继服 务,这被称作“VLAN间路由。VLAN间路由,可以使用普通的路由器,也可以使用三 层交换机。其中的具体内容,等有机会再细说吧。在这里希 望大家先记住不同VLAN间互相通信时需要用到路由功能。三、VLAN的访问链接3. 1、交换机的端口交换机的端口,可以分为以下两种:访问链接(Access
17、Link)汇聚链接(TrunkLink)接下来就让来依次学习这两种不同端口的特征。这一 讲,首先学习“访问链接。3.2、访问链接访问链接,指的是“只属于一个VLAN,且仅向该VLAN 转发数据帧的端口。在大多数情况下,访问链接所连的是 客户机。通常设置VLAN的顺序是:生成VLAN设定访问链接(决定各端口属于哪一个VLAN)设定访问链接的手法,可以是事先固定的、也可以是根 据所连的计算机而动态改变设定。前者被称为“静态 VLAN”、后者自然就是“动态VLAN” 了。3. 2. 1、静态 VLAN静态VLAN又被称为基于端口的VLAN(PortBasedVLAN) o顾名思义,就是明确指定各端口
18、属 于哪个VLAN的设定方法。由于需要一个个端口地指定,因此当网络中的计算机数 目超过一定数字(比如数百台)后,设定操作就会变得烦杂无 比。并且,客户机每次变更所连端口,都必须同时更改该端 口所属VLAN的设定这显然静态VLAN不适合那些需要频 繁改变拓补结构的网络。3.2.2、动态 VLAN另一方面,动态VLAN则是根据每个端口所连的计算 机,随时改变端口所属的VLANo这就可以避免上述的更改 设定之类的操作。动态VLAN可以大致分为3类:基于 MAC 地址的 VLAN(MACBasedVLAN)基于子网的 VLAN(SubnetBasedVLAN)基于用户的 VLAN(UserBasedV
19、LAN)其间的差异,主要在于根据0SI参照模型哪一层的信息 决定端口所属的VLANo 、基于MAC地址的VLAN,就是通过查询并记录端口 所连计算机上网卡的MAC地址来决定端口的所属。假定有一 个MAC地址“A”被交换机设定为属于VLAN 10,那么不 论MAC地址为“A”的这台计算机连在交换机哪个端口,该 端口都会被划分到VLAN10中去。计算机连在端口 1时,端 口 1属于VLAN10;而计算机连在端口 2时,则是端口 2属于 VLANlOo 、基于子网的VLAN,则是通过所连计算机的IP地 址,来决定端口所属VLAN的。不像基于MAC地址的VLAN, 即使计算机因为交换了网卡或是其他原因
20、导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLANo因此,与基于MAC地址的VLAN相比,能够更为简便地 改变网络结构。IP地址是0SI参照模型中第三层的信息, 所以可以理解为基于子网的VLAN是一种在0SI的第三层设 定访问链接的方法。 、基于用户的VLAN,则是根据交换机各端口所连的 计算机上当前登录的用户,来决定该端口属于哪个VLANo 这里的用户信息,一般是计算机操作系统登录的用户,比如 可以是Windows域中使用的用户名。这些用户名信息,属于 0SI第四层以上的信息。总的来说,决定端口所属VLAN时利用的信息在0SI中 的层面越高,就越适于构建灵活多变的网络。
21、3.2.3、访问链接的总结综上所述,设定访问链接的手法有静态VLAN和动态 VLAN两种,其中动态VLAN又可以继续细分成几个小类。其中基于子网的VLAN和基于用户的VLAN有可能是网络 设备厂商使用独有的协议实现的,不同厂商的设备之间互联 有可能出现兼容性问题;因此在选择交换机时,一定要注意 事先确认。下表总结了静态VLAN和动态VLAN的相关信息。四、VLAN的汇聚链接4.1、设置跨越多台交换机的VLAN到此为止,学习的都是使用单台交换机设置VLAN时的 情况。那么,如果需要设置跨越多台交换机的VLAN时又如 何呢?在规划企业级网络时,很有可能会遇到隶属于同一部门 的用户分散在同一座建筑物
22、中的不同楼层的情况,这时可能 就需要考虑到如何跨越多台交换机设置VLAN的问题了。假 设有如下图所示的且需要将不同楼层的A、C和B、D设置为 同一个VLANo这时最关键的就是“交换机1和交换机2该如何连接才 好呢?”最简单的方法,自然是在交换机1和交换机2上各设一 个红、蓝VLAN专用的接口并互联了。但是,这个办法从扩展性和管理效率来看都不好。例 如,在现有网络基础上再新建VLAN时,为了让这个VLAN能 够互通,就需要在交换机间连接新的网线。建筑物楼层间的 纵向布线是比较麻烦的,一般不能由基层管理人员随意进 行。并且,VLAN越多,楼层间(严格地说是交换机间)互联 所需的端口也越来越多,交换机端口的利用效率低是对资源 的一种浪费、也限制了网络的扩展。为了避免这种低效率的连接方式,人们想办法让交换机 间互联的网线集中到一根上,这时使用的就是汇聚链接 (TrunkLink)。4.2、何谓汇聚链接?