RADIUS协议支持

IAPP可以为ESS提供三种不同级别的支持:第一级不提供管理或安全支持;第二级支持BSSID到 IP地址的动态映射;第三级提供IAPP消息的加密和认证。第一级支持仅适用于小规模的ESS。对于大多数ESS而言,需要IAPP提供第二或第三级支 持,这要求在ESS中至少设置一个RADIUS服务器来提供地址映射和认证、加密等服务。 ESS中的每一个AP都可以作为RADIUS客户端,它与RADIUS服务器之间拥有一个不同于其它AP的共享密码。此外,RADIUS服务器还为每一个 BSSID保留了如下信息: a) 基本服务组标识BSSID; b) 至少为160位RADIUS BSSID密码; c) BSSID的DSM IP地址或DNS域名; d) 用于IAPP通信加密的AP所支持的加密套件。 IAPP操作中用到的RADIUS服务可以分为两大类:ESS管理和地址动态映射。而ESS又可以分为AP注册和认证、IAPP密钥管理和分发以及STA 的接入管理。

1. AP注册和认证

图4 AP的RADIUS注册接入过程

AP的RADIUS注册接入过程

AP为了加入一个ESS,首先由自身的IAPP向ESS中的RADIUS服务器发送携带AP IP地址、IAPP注册服务类型和加入ESS的SSID的RADIUS注册接入请求报文,该报文以AP的BSSID作为用户名,以AP的BSSID密码作 为用户口令,还包含了AP所支持的封装安全负荷协议ESP和认证头协议AH的模式列表。RADIUS服务器在接收到该报文后,将对AP的身份进行鉴别,同 时对报文中的ESP列表进行检查,如果AP支持ESP加密和ESP认证算法,并证实AP身份有效,RADIUS服务器将AP的BSSID注册成为ESS中 的一部分,同时向AP返回RADIUS注册接入许可报文。在该报文中不仅确认了AP成为ESS的有效成员,而且还向AP提供了多项安全域,用于构建一条安 全的IAPP组播信道。 如果RADIUS服务器对ESP列表检查后,判定AP不支持ESP加密和ESP认证算法,或者AP身份无效,则向AP发送RADIUS注册接入拒绝报文, 拒绝AP加入本ESS。当AP要脱离ESS时,需要向RADIUS服务器发送注销报文,注销AP的ESS成员身份。

2. STA的接入管理

当AP的802.11 MAC向APME指示有STA切换到本AP,并且接收到由STA发出的IAPP MOVE-Request请求后,该AP会向所在ESS中的RADIUS服务器发送包含STA先前连接AP的 BSSID(旧BSSID)的RADIUS接入请求报文。RADIUS服务器收到新AP接入请求报文后,将会检查旧BSSID是否是当前ESS中的有效成 员。如果RAIDUS服务器判定新AP和旧AP可以用IAPP互通,则向新AP返回一个RADIUS接入许可报文。该报文不仅确认了旧BSSID是当前 ESS中一个有效成员,而且还包含了新、旧BSSID的安全域用于新旧AP之间安全信道的构建。 如果RAIDUS服务器对旧BSSID检查后,认为新AP和旧AP不能通过IAPP互通,则向新AP返回RADIUS接入拒绝报文,新AP接收到 RADIUS服务器的接入拒绝响应后,向申请连接的STA发送MLME REASSOCIATE.confirm原语,并指示连接失败。 3. IAPP密钥的管理和分发在允许一个AP加入ESS后,RADIUS服务器会保存该AP的BSSID密码,并向该AP回复RADIUS注册接入许可报文。 在该报文中包含了一些可选属性,指定了AP的ESP加/解密密钥和认证密钥、ESP加/解密算法号和认证算法号等。利用这些密钥和算法,AP可以对发送和 接收的ADD-Notify报文进行加密和解密操作,从而构建一条安全的IAPP组播信道。 RADIUS服务器还为新旧AP之间的通信提供安全支持。在RADIUS接入许可报文的可选属性中,New-BSSID-Security-Block包 含了RADIUS服务器为新AP指定的用于ESP加密和认证的一系列安全信息,并用新AP的BSSID密码进行加密;Old-BSSID- Security-Block包含了RADIUS服务器为旧AP指定的用于ESP加密和认证的一系列安全信息,用旧AP的BSSID密码进行了加密;新旧 AP的IAPP利用这些属性,就可以建立一条安全连接进行通信。 4. 地址动态映射每一个AP在加入ESS时,都会向ESS中的RADIUS服务器发送RADIUS注册接入请求报文,在该报文中包含了AP的BSSID和AP 的IP地址等信息。RADIUS在接收到AP的RADIUS注册接入请求报文后,会对其进行检查。如果通过检查,RADIUS服务器将AP的BSSID注 册成为ESS中的一部分,同时还保留了AP的的BSSID和IP地址等信息。这样,ESS中的每一个AP都可以通过RADIUS服务器来查询其它AP的 IP地址了。 如果没有在RADIUS服务器进行注册,AP将不能使用RADIUS服务器的地址解析功能将AP的BSSID解析为DSM的IP地址。

IAPP协议在AP上的实现分析

为了在AP上实现IAPP协议的功能,需要在AP中设置专门的IAPP模块来执行IAPP操作和 RADIUS服务。IAPP模块在AP中完成的主要功能是:(1) 初始化功能主要是完成IAPP协议和RADIUS客户端的初始化,同时打开用于IAPP操作的TCP/UDP端口; (2) 声明功能 a) 当有STA向本AP发起连接请求时,IAPP模块将向DS广播IAPP ADD-notify报文,使得至少在本地子网内的其它AP都不会再有与该STA的连接关系。 b) 当有STA向本AP发起连接或重连接请求时向有线网络广播XID帧,更新本地子网中二层设备的转发表,使得它们可以正确转发目的地址为STA的数据包。 (3) 移交功能当有STA向AP发起重连接请求时,IAPP模块向旧AP发送IAPP MOVE-notify报文,通知旧AP以前与其连接的STA切换到了新AP。旧AP的IAPP模块将用IAPP MOVE-response报文将该STA的有关信息返回给新AP,同时清除与该STA的连接关系。新AP根据收到的报文获得用户信息重建STA的工作环 境。 (4) 支持ESS管理和AP的IP地址查询功能。当ESS中配有RADIUS服务器时,IAPP还需要实现RADIUS客户端功能才保证IAPP的正确操作,为 此,IAPP模块还需要实现: a) IAPP初始化时,用RADIUS Registration Access-Request报文向RADIUS服务器注册。 b) 当有STA切换到本AP时,向RADIUS服务器发送RADIUS Access-Request报文,查询STA原属AP的IP地址。 c) 当AP要脱离ESS时,向RADIUS服务器发送注销报文,同时关闭IAPP端口。 为了实现上述IAPP功能,IAPP模块要分成三个子模块:IAPP主模块、RADIUS通信模块和接口模块。IAPP主模块负责侦听和处理IAPP端口 通信,指定给IAPP的端口号是3517。RADIUS通信模块支持与RADIUS服务器的交互和AP的IP地址查询,侦听和处理RADIUS端口通信。 接口模块向MAC层协议模块的连接和重连接操作提供调用接口。除此之外,MAC层模块、桥接模块和802.1x控制模块还将向IAPP模块提供功能接口, 支持IAPP读取、配置和管理该模块内的用户信息。

图5 IAPP功能模块图 IAPP主模块的执行流程图

IAPP功能模块图 IAPP主模块的执行流程图

 

IAPP主模块的执行流程

IAPP主模块的执行流程

6 存在的问题

IAPP协议能较好地支持STA在子网内AP间的散步,但是发生AP切换时,STA的QoS并不能得到可靠地保证。另外,当STA跨子网漫游时,IAPP还必须结合移动IP和DHCP等技术来提供网络层通信的漫游支持。这些问题都有待于将来作深入的研究。

参考文献

[1] IEEE Standards Department.Draft Recommended Practice for Multi-Vendor Access Point Interoperability via an Inter-Access Point Protocol Across Distribution Systems Supporting IEEE 802.11 Operation.IEEE P802.11F/D4.1, November 2002

[2] Jin Xiaohui, Li Jiandong.IAPP enhancement protocol.Info-tech and Info-net, 2001. Proceedings. ICII 2001 - Beijing, 2001 International Conferences on , Volume: 2 , 2001 [3] Jim Geier.《无线局域网》,王群等译.北京:人民邮电出版社,2001


相关内容