VLAN的好处在于有效地限制了L2的广播域。对于有线网络,常见的VLAN划分方法包括基于交换机端口的划分、基于MAC地址的划分、基于L3的IP划分以及基于802.1x的安全凭证划分等,这方面的资料比较多,支持的产品也很多,应用很成熟。
但对于WLAN,该如何划分VLAN呢?
WLAN的网络结构基本单位是BSS。BSS有两种形态:独立基础结构(IBSS,也叫自组网Adhoc)和基础结构 Infrastructure。自组网就是多个站点自发组成一个可以互通的WLAN,而基础结构模式则以AP为中心,其它站点都先与AP关联,然后才能与 BSS中的其它站点进行通信。以下所提到的BSS仅指基础结构。
Infrastructure是一种整合有线与无线局域网络架构的应用模式,透过此种架构模式,即可达成网络资源的共享,此应用需透过Access Point。
而Ad-hoc是一种特殊的无线网络应用模式,一群计算机接上无线网络卡,即可相互连接,资源共享,无需透过Access Point。
WLAN中的BSS:一种特殊的Ad-hoc LAN的应用,称为Basic Service Set (BSS),一群计算机设定相同的BSS名称,即可自成一个group,而此BSS名称,即所谓BSSID。
ESS (Extended Service Set 扩展服务集合) DS和多个BSS允许IEEE802.11构成一个任意大小和复杂的无线网络。 IEEE802.11b把这种网络称为扩展服务集网络。 同样,ESS也有一个标识的名称,即ESSID
ESS中两个ap之间使用不同频率信道,怕之间重叠区域要在10%到15%之间。
BSS / ESS
BSS 使用相同身份识别码( ssid )的一个单一访问点(single ap) 以及一个无线设备群组,组成一个基本服务组( basic service set , bss )。 必须使用相同的 ssid 。使用不同 ssid 的设备彼此之间不能进行通信。
ESS 使用相同身份识别码( ssid )的多个访问点(multi ap) 以及一个无线设备群组,组成一个扩展服务组( extended service set , ess )。 同一 ess 内的不同访问点可以使用不同的信道。实际上,为了减少干扰,我们强烈推荐相近的访问点之间使用不同的信道。 当无线设备在 ess 所覆盖的区域内进行实体移动时,它们将自动切换到干扰最小、连接效果最好的访问点。我们把这一功能称为漫游功能。(访问点本身不具备,也不要求具备漫游功能。)
WLAN中的VLAN划分必须要有AP的支持。每一个VLAN由一个VLAN ID来标示,因此以什么作为VLAN ID的依据,决定了VLAN在哪个层次划分。根据VLAN与BSS的关系,WLAN中的VLAN划分有几种情况。
1. 以MAC层依据作为VLAN ID
一个AP至少可以组建一个BSS,而且不少实际的产品还支持同时虚拟出多个BSS,每个BSS拥有不同的BSSID。对于每个BSS,一些AP产品 还可以同时支持多个SSID,不同的SSID共享大部分的BSS配置和Radio接口配置,可以有少部分配置不一样(比如密钥)。
1.1 以SSID或BSSID为划分依据
一种容易实现的VLAN划分方法就是以SSID为划分依据,每个SSID对应一个VLAN ID。这种划分依据完全来自于802.11 MAC层的SSID,因此可以完全在AP内部实现。根据AP对多SSID支持情况的不同,具体情况又有所不同。
1.1.1 AP支持多个BSS,每个BSS又支持多个SSID
这种情况下按照SSID来划分VLAN,所有连接到该SSID的站点都属于同一个VLAN。每个SSID提供给STATION的接入端口均为VLAN的Access端口,是不带tag的端口。
由于一个BSS内有多个SSID,因此一个BSS内就会有多个VLAN。由于这些SSID均属于同一BSS,因此如果位于两个VLAN内的STATION要通信,只需要经过AP内部的转发桥接即可。
1.1.2 AP仅支持一个BSS,每个BSS支持多SSID
这种情况下按照SSID来划分VLAN,跟上面的情况类似。
1.1.3 AP支持多个BSS,每个BSS仅支持一个SSID
这种情况下SSID与BSSID一一对应,因此根据SSID来划分VLAN与根据BSSID来划分是一样的。这种情况下属于同一个BSS的站点属于同一个VLAN,位于两个VLAN内的STATION要通信,只需要经过AP内部的转发桥接即可也仅仅需要AP内部的转发。
1.1.4 AP仅支持BSS,每个BSS仅支持一个SSID
这种情况下如果按照SSID或BSSID来划分VLAN,则整个BSS均属于同一VLAN。由于不存在多个VLAN,因此不存在VLAN互通的问题。
可见,如果在同一AP内部划分不同的VLAN,那么这些VLAN间的互通仅需要AP内部的MAC桥接即可实现,而不需要将数据交到更高层进行转发或桥接。
1.2 以MAC地址为划分依据
这种情况根据STATION的MAC地址在BSS内划分VLAN。AP根据从STATION发来的帧中的源地址决定该STATION所属的VLAN,从而可以保证同一VLAN的互通和不同VLAN的桥接。
上面的两种划分均是以802.11 MAC层的信息作为VLAN ID的划分依据,因此同一VLAN内部的转发和不同VLAN之间的桥接均可在AP内部实现,而不需要分发。
在上面的两种情况下,在AP内部只需要维护两张表即可:一张表是VLAN ID与VLAN依据(SSID/BSSID或MAC地址)之间的对应表,另一张表示VLAN ID与VLAN接口之间的对应表。Access端口上的数据收发情况如下:
进入Access端口的数据:可以不带tag。如果需要分发到AP外(目的地址不是BSSID且不是任何BSS中的其它站点),则加上tag通过分发接口分发;如果不需要分发到AP外,则有几种情况:
- DA为BSSID,则由AP接收并处理;
- DA为同一VLAN中的其它STATION,则MAC层转发;
- DA为不同VLAN,但同一AP中的其它STATION,则执行VLAN之间的桥接协议。
从Access端口发出的数据:不带tag,直接发到STATION。
这种划分的缺点仅适合于较小的网络,灵活性较差。比如,无法实现跨AP的VLAN,也就是连接到不同AP的两个STATION无法划分到同一个VLAN。
2. 动态VLAN划分方式
动态划分方式并不由AP来决定VLAN ID,而是由其它更高级的设备来决定。一种方法是由RADIUS服务器来划分。当一个STATION与AP关联时,AP中的RADIUS客户端与 RADIUS服务器进行通信,从而得到该STATION所属的VLAN ID。RADIUS决定STATION服务器所属VLAN的依据可以是用户名、IP地址等,因此具有很大的灵活性。当用户的位置改变后,他所属的VLAN 仍然不变。
采用动态VLAN方式后,同一个AP的同一个SSID中的两个STATION可能属于不同的VLAN,而连接到两个不同AP中的STATION却可 能属于同一VLAN。因此这种情况下,要实现同一VLAN中不同STATION之间的互通,需要更高层的转发和桥接,可能需要经过位于WDS接口或以太网 DS接口等接口之上的VLAN trunk、hybrid端口。