VLAN的访问链接
交换机的端口
交换机的端口,可以分为以下两种:
l 访问链接(Access Link)
l 汇聚链接(Trunk Link)
接下来就让我们来依次学习这两种不同端口的特征。这一讲,首先学习“访问链接”。
访问链接
访问链接,指的是“只属于一个
VLAN
,且仅向该
VLAN
转发数据帧”的端口。在大多数情况下,访问链接所连的是客户机。
通常设置VLAN的顺序是:
l 生成VLAN
l 设定访问链接(决定各端口属于哪一个VLAN)
设定访问链接的手法,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态VLAN”、后者自然就是“动态VLAN”了。
静态
VLAN
静态VLAN又被称为
基于端口的
VLAN(Port Based VLAN)。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。

由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然
不适合那些需要频繁改变拓补结构的网络。
动态
VLAN
另一方面,
动态
VLAN
则是根据每个端口所连的计算机,随时改变端口所属的
VLAN。这就可以避免上述的更改设定之类的操作。动态VLAN可以大致分为3类:
l 基于MAC地址的VLAN(MAC Based VLAN)
l 基于子网的VLAN(Subnet Based VLAN)
l 基于用户的VLAN(User Based VLAN)
其间的差异,主要在于
根据
OSI
参照模型哪一层的信息决定端口所属的
VLAN。
基于
MAC
地址的
VLAN
,就是通过查询并记录端口所连计算机上网卡的
MAC
地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN“10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去。计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时,则是端口2属于VLAN10。

由于是基于MAC地址决定所属VLAN的,因此可以理解为这是一种在OSI的第二层设定访问链接的办法。
但是,
基于
MAC
地址的
VLAN
,在设定时必须调查所连接的所有计算机的
MAC
地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。
基于子网的
VLAN
,则是通过所连计算机的
IP
地址,来决定端口所属
VLAN
的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。

因此,与基于MAC地址的VLAN相比,能够更为简便地改变网络结构。IP地址是OSI参照模型中第三层的信息,所以我们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法。
基于用户的
VLAN
,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个
VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。
总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。
访问链接的总结
综上所述,设定访问链接的手法有静态VLAN和动态VLAN两种,其中动态VLAN又可以继续细分成几个小类。
其中基于子网的VLAN和基于用户的VLAN有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。
下表总结了静态VLAN和动态VLAN的相关信息。

VLAN
的汇聚链接
需要设置跨越多台交换机的
VLAN
时……
到此为止,我们学习的都是使用单台交换机设置VLAN时的情况。那么,如果需要设置跨越多台交换机的VLAN时又如何呢?
在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题了。假设有如下图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN。

这时最关键的就是“
交换机
1
和交换机
2
该如何连接才好呢?”
最简单的方法,自然是在
交换机
1
和交换机
2
上各设一个红、蓝
VLAN
专用的接口并互联了。

但是,这个办法从
扩展性和管理效率来看都不好。例如,在现有网络基础上再新建VLAN时,为了让这个VLAN能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且,VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。
为了避免这种低效率的连接方式,人们想办法让
交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(
Trunk Link
)。
何谓汇聚链接?
汇聚链接(Trunk Link)指的是
能够转发多个不同
VLAN
的通信的端口。
汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个
VLAN
的特殊信息。
现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。
这时使用的网线还是普通的
UTP
线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。
接下来,让我们具体看看汇聚链接是如何实现跨越交换机间的VLAN的。
A发送的数据帧
从交换机
1
经过汇聚链路到达交换机
2
时,在数据帧上附加了表示属于红色
VLAN
的标记。
交换机
2
收到数据帧后,经过检查
VLAN
标识发现这个数据帧是属于红色
VLAN
的,因此去除标记后根据需要将复原的数据帧只转发给其他属于红色
VLAN
的端口。这时的转送,是指经过确认目标MAC地址并与MAC地址列表比对后只转发给目标MAC地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色VLAN的端口。
蓝色VLAN发送数据帧时的情形也与此相同。

通过汇聚链路时附加的
VLAN
识别信息,有可能支持标准的“
IEEE 802.1Q
”协议,也可能是
Cisco
产品独有的“
ISL
(
Inter Switch Link
)”。如果交换机支持这些规格,那么用户就能够高效率地构筑横跨多台交换机的VLAN。
另外,汇聚链路上流通着多个VLAN的数据,自然
负载较重。因此,在设定汇聚链接时,有一个前提就是必须支持
100Mbps
以上的传输速度。
另外,默认条件下,汇聚链接会转发交换机上存在的所有VLAN的数据。换一个角度看,可以认为
汇聚链接(端口)同时属于交换机上所有的
VLAN。由于
实际应用中很可能并不需要转发所有
VLAN
的数据,因此为了减轻交换机的负载、也为了减少对带宽的浪费,我们可以
通过用户设定限制能够经由汇聚链路互联的
VLAN。
关于IEEE802.1Q和ISL的具体内容,将在下一讲中提到。
IEEE802.1Q
与
ISL
汇聚方式
在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。
附加VLAN信息的方法,最具有代表性的有:
l IEEE802.1Q
l ISL
现在就让我们看看这两种协议分别如何对数据帧附加VLAN信息。
IEEE802.1Q
IEEE802.1Q,俗称“Dot One Q”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。
在此,请大家先回忆一下以太网数据帧的标准格式。
IEEE802.1Q所附加的VLAN识别信息,
位于数据帧中“发送源
MAC
地址”与“类别域(
Type Field
)”之间。具体内容为2字节的TPID和2字节的TCI,共计4字节。
在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。
这时数据帧上的
CRC
是插入
TPID
、
TCI
后,对包括它们在内的整个数据帧重新计算后所得的值。

而当数据帧离开汇聚链路时,TPID和TCI会被去除,
这时还会进行一次
CRC
的重新计算。
TPID
的值,
固定为
0x8100。交换机通过TPID,来确定数据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多
可供识别
4096
个
VLAN。
基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签。因此,它也被称作“
标签型
VLAN
(
Tagging VLAN
)”。
ISL
(
Inter Switch Link
)
ISL,是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。
使用ISL后,每个数据帧头部都会被附加26字节的“ISL包头(ISL Header)”,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC值。换而言之,就是总共增加了30字节的信息。
在使用ISL的环境下,当数据帧离开汇聚链路时,只要简单地去除ISL包头和新CRC就可以了。由于原先的数据帧及其CRC都被完整保留,因此无需重新计算CRC。

ISL有如用ISL包头和新CRC将原数据帧整个包裹起来,因此也被称为“
封装型
VLAN
(
Encapsulated VLAN
)”。
需要注意的是,
不论是
IEEE802.1Q
的“
Tagging VLAN
”,还是
ISL
的“
Encapsulated VLAN
”,都不是很严密的称谓。不同的书籍与参考资料中,上述词语有可能被混合使用,因此需要大家在学习时格外注意。
并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联。