虚拟局域网(VLAN-Virtual Local Area Network)

基本概念

VLAN技术工作在OSI模型的数据链路层和网络层,VLAN的区分由交换机实现,不同VLAN之间的通信由路由器实现。

或者两者可以使用三层交换机替代。

广播域--广播帧(目标MAC全为1)所能传递到的范围,亦即能够直接通信的范围。严格来说多播帧和目标不明的单播帧也可以。

原本二层交换机只能构建单一的广播域,不过在使用了VLAN后,可将局域网分割成多个广播域。但各个广播域之间不可通信。

在上述条件之下加入路由器,即可在多个VLAN之间成功通信。

VLAN的目的,或者优势:

网络设备的移动,添加和修改的管理开销减少

控制广播活动

提高网络安全性

关于计算机网络中的广播

广播帧在计算机网络中会非常频繁的出现。比如ARP/DHCP/RIP等等。

ARP广播,在主机需要查询IP对应的MAC地址发现其映射不在ARP缓存表中时,向当前广播域发出的。

DHCP广播,在客户请求DHCP服务器分配一个IP地址时,必须发出DHCP广播。

RIP广播,每隔30s,路由器都会对临近的其他路由器广播一次路由信息。

RIP以外的一些其它路由协议使用多播传输路由信息。

NetBEUI/IPX/Apple Talk etc

这些频繁的广播会疯狂地消耗网络资源(带宽,CPU etc)

实现广播域分割的设备

路由器分割广播域的可能。但是路由器的网络接口(LAN Interface)较少,且其内置的交换机不能用于分割广播域。

用于二层交换机上分割广播域的技术,就是VLAN。其网络接口数量一般较多。

VLAN的机制

指导思想:将交换机上的端口分类隔离。每一类的端口只能与在同一类中的端口自由通信。若要访问其它类的端口,后谈。

在一台物理交换机中设置多个VLAN可以理解为将该交换机分割成了多个逻辑交换机。

交换机端口分为访问链接(Access Link)和汇聚链接(Trunk Link)

访问链接(Access Link)

面对单台交换机设置VLAN,使用访问链接足矣。

静态VLAN(基于端口的VLAN)将交换机的各个端口固定指派给VLAN(1)

动态VLAN(基于MAC的VLAN)根据端口所连接的计算机的MAC设定(2)

(基于子网的VLAN)根据端口所连接的计算机的IP设定(3)

(基于用户的VLAN)根据端口所连接的计算机的登录用户设定(4)

(1)VLAN与端口一旦设定好即VLAN在运行中端口都是固定不变的。与端口所连接的计算机无任何关系。

(2)VLAN与端口并无绑定,而是运行之后(有缺省),检测与端口连接的计算机的MAC地址,进而确定该端口此时属于哪个VLAN。

(3)VLAN与端口并无绑定,而是运行之后(有缺省),检测与端口连接的计算机的IP地址,进而确定该端口此时属于哪个VLAN。

(4)VLAN与端口并无绑定,而是运行之后(有缺省),检测与端口连接的计算机的用户信息,进而确定该端口此时属于哪个VLAN。

我们发现(2)(3)(4)依赖的信息分别来自的OSI模型层数越来越高,也发现层数越高,灵活性越好。

汇聚链接(Trunk Link)

面对多台交换机设置VLAN时,不仅需要访问链接,还需要汇聚链接的加入。

应用情景:例如企业中同一部门(同一VLAN)中的计算机分布在不同的地理位置上,会需要通过多个交换机进行连接。

当仅使用访问链接的时候,每一个不同的VLAN进行跨交换机连接的时候就需要新增一根网线和占用一对访问链(端口)。

这使得扩展,管理效率以及美观程度上都令人不满意。

于是,将所有交换机之间的链接汇聚在一根线和一对端口上的想法应运而生,这对特殊的端口即汇聚链接(端口)。

那么汇聚链路如何识别帧属于哪个VLAN?交换机会在链路层帧上附加上VLAN标识信息,也会检测会去除该标识信息。

支持上述过程的协议有标准 IEEE 802.1Q和Cisco ISL。汇聚链路上流通多个VLAN的数据,所以汇聚链路须支持100Mpbs+的传输速度。

IEEE802.1Q 支持的汇聚链路运行过程

(1)进入:在链路层帧中的源MAC地址和类型之间插入TPID(2Btyes)和TCI(2Bytes),然后重新计算CRC并覆盖。

(1)离开:去除TPID和TCI,然后重新计算CRC并覆盖。

TPID 0x8100(固定值) 用于确认此为基于IEEE802.1Q的VLAN信息

TCI 其中12bit用来标识VLAN,因此可以最多标识4096个VLAN。

Cisco ISL(Inter Switch Link)支持的汇聚链路运行过程

(1)进入:在链路层帧头部附加ISL Header(26Bytes),并在帧尾加上重新计算后的CRC(4Btyes)。

(2)离开:去除ISL Header和帧尾的CRC即可。

只能用于Cisco设备之间。

VLAN之间的通信

原始VLAN无法通信的原因:两台客户机需要连接,其中一方必须知道其MAC地址,MAC地址的获得是通过ARP广播进行的。

然而ARP广播无法在不同的VLAN之间进行。这一点可以和不同的局域网之间的情况(中间由因特网隔离)类比。

所以不同广播域之间的通信则需要借助网络层的IP来实现,或者说路由功能。

路由功能,一般由路由器提供,但在现代局域网中,出现了三层交换机来同时替代二层交换机和路由器。

使用二层交换机和路由器实现VLAN之间的通信

路由器与二层交换机之间可以通过访问链接/汇聚链接连接。

使用三层交换机实现VLAN之间的通信

交换模块+路由模块(内部由汇聚链路连接)

这里的路由模块和交换模块使用了同样的ASIC硬件,相较于传统的路由器,可以实现高速路由。

ASIC(Application Specified Integrated Ciruit)可以实现缆线速度交换,路由器上则基本由软件处理信息,速度有相当大的差距。

并且由于使用了内部连接,可以确保相当大的带宽。

(1)计算机A判断IP不属于同一网段,则发给默认网关。

(2)交换机检索MAC地址表后,经内部汇聚链接,将数据帧附加红色VLAN识别信息,将数据帧发送给路由模块。

(3)路由模块根据VLAN识别信息判断由红色接口接收并处理,后发现目标网络IP对应蓝色接口的直连网络。

(4)路由模块将数据帧从蓝色接口发送至交换模块,交换模块将红色VLAN识别信息修改为蓝色VLAN识别信息。

(5)交换模块收到蓝色VLAN的数据帧检索MAC表然后去除蓝色VLAN识别信息,然后转发。