科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道接入点内部协议及其在接入点上的实现

接入点内部协议及其在接入点上的实现

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

IEEE 802.11协议制定了无线局域网MAC层和物理层的规范及其基本结构,但并没有对无线局域网的构建做出规定。

作者:中国IT实验室 2007年9月16日

关键字: 路由协议 EIGRP igrp SNMP CISCO 网络协议

  • 评论
  • 分享微博
  • 分享邮件

  1 引言

  IEEE 802.11协议制定了无线局域网MAC层和物理层的规范及其基本结构,但并没有对无线局域网的构建做出规定。这给接入点AP和由其组成的分布式系统在功能设计留出了很大的自由空间,但同时也给无线站点STA的移动带来了问题,使STA不能自由地在不同厂商生产的AP间移动。为了解决这个问题,IEEE工作组制定了802.11f协议,详细阐述了接入点内部协议IAPP(Inter-Access Point Protocol),IAPP协议旨在向用户提供AP间的移动功能,以满足用户对移动性日益增长的需求。

  

  IAPP协议只是解决了用户移动而带来的链路层通信的问题,要想保证移动用户IP层通信的畅通,需要使用移动IP或DHCP技术。将 IAPP协议功能和这些技术结合起来,可以向用户提供一个完整的移动性解决方案。

  

  2 IEEE 802.11f协议简介

  在无线局域网中,站点STA的移动行为可能会产生如下几个问题:

  

  1) 旧AP(STA上次接入的AP)会认为自己与STA还有连接,当接收到STA的报文时,它仍会在本地BSS内发送该报文。这会导致无线资源的浪费和AP资源的占用。因此新的AP(接收 STA重连接请求报文的AP)需要将STA的切换情况通知旧AP,让它释放掉与STA的单边连接。

  2) STA在旧AP上进行MAC层认证或其他认证(比如 802.1x认证)时,将会在旧AP上留下相应的用户信息,当 STA切换到新AP时,如果还要进行耗时的认证过程,将导致切换效率不高。因此,当STA发生AP切换时,新AP需要从旧AP上获得STA的用户信息,然后重建STA的工作环境,以对STA进行正确的管理。

  3) 由于STA在切换时只是向新AP提供旧AP的MAC地址(即旧BSSID),要与旧AP通信,新AP还需要知道旧AP 的IP地址等信息,所以要求新AP能够根据旧AP的BSSID查询到它的IP地址。

  4) 在与AP连接的有线网络中可能存在诸如网桥、交换机等二层转发设备。当STA从网桥的一个端口连接的子网段移动到另一个端口的子网段时,如果网桥的转发表不能得到更新,将导致其他网络节点发送给STA的报文不能被正确送达STA现在所处的位置,造成STA的报文丢失。因此需要新AP在处理STA的重连接请求时通知这些二层设备更新转发表。

  

  为了解决上述问题,需要使用IEEE 802.11f协议中推荐的接入点内部协议IAPP。IAPP协议是IEEE 802.11工作组制订的用于AP间互通的协议.它的主要功能是便于扩展服务集ESS的创建和维护,支持802.11移动站点在AP间的移动,保证每个移动站点在确定时刻与AP间只有一个连接关系。包含有IAPP的AP协议结构如下图所示:

  

 

  

图1 包含IAPP的AP协议结构

  在上图中,阴影部分表示模块间没有连接关系。APME(AP management entity)是AP中的管理实体,它负责管理和协调AP中的各个协议功能模块和与AP连接的802.11站点管理实体SME(Station management entity),并通过服务访问点IAPP SAP调用IAPP服务。IAPP是AP上支持STA移动的主要协议模块,同时它又支持了一个RADIUS客户端。当AP初始化加入一个ESS,或AP的802.11 MAC层向APME指示有 STA切换到本AP时,APME使用IAPP服务原语,调用IAPP协议模块发送RADIUS报文与RADIUS服务器交互,或广播基于TCP/IP或UDP/IP的IAPP报文来与DS域中的其它AP通信完成IAPP操作。

  

  RADIUS协议是IAPP模块进行安全正确操作所必需的。特别是当给定了其它AP的BSSID后,IAPP应能够通过查询RADIUS服务器,找出ESS中的其它AP的IP地址,并获得相关安全信息以保护特定IAPP数据包的内容。网络中的设备除了802.11 AP可能用到IAPP协议操作外,二层网络设备如网桥和交换机等,也会受到IAPP协议操作的影响。

  

  3 IAPP协议的操作流程

  在AP上使用IAPP协议就可以支持STA在子网内的移动,下面分STA向AP发起连接和重连接请求两种情况对IAPP协议的操作流程进行分析。

  

  1) STA发起连接请求时的IAPP操作流程

  

 

  

图2 STA发起连接请求时的IAPP操作流程

  当本地AP的APME接收到BSS中的STA向AP发起802.11 MAC层连接请求后,如果同意连接,并在STA返回ASSOCIATE.indication后,向本地IAPP发起ADD.request请求。本地IAPP在接收到APME的ADD.request请求后,启动确认定时器,并向本地子网广播源MAC地址为STA MAC地址的XID帧和包含STA MAC地址和连接序号的IAPP ADD-notify报文。当对端AP的IAPP收到ADD-notify报文后,提取STA的MAC地址和连接序号,封装在IAPP ADD.indication原语中发给自身的APME,APME收到后会对自己的连接列表进行检查,如果还保留有与该STA的连接关系,而且连接序号比ADD.indication原语所包含序号还旧的话则将之释放,但是如果连接序号比ADD.indication原语所包含序号新的话则对端AP将重复前述过程,重新向本地子网广播源MAC地址为STA MAC地址的XID帧和包含STA MAC地址的IAPP ADD-notify报文,同时通知原来的AP中断与STA的连接。

  

  XID帧是链路层标识交换更新响应帧,当子网上的二层设备,如网桥、交换机等接收到该帧后,根据该帧的源MAC地址来更新自己的转发表。如果在定时器超时前,IAPP收到子网上的二层设备和其它AP的应答后,则调用ADD.confirm原语通知本地APME与STA的连接成功。否则表示连接失败,APME将中断与STA的连接。

  

  2) STA发起重连接请求时的IAPP操作流程

  

 

  

图3 STA发起重连接请求时的IAPP操作流程

  当AP的802.11 MAC层接收到来自STA的重连接请求后,它将调用MLME原语REASSOCIATE.indication通知本地APME。本地APME提取请求报文中旧AP的BSSID、STA的MAC地址和连接序号等,封装在IAPP原语MOVE.request向IAPP发起连接通知请求。IAPP收到MOVE.request请求后,发送RADIUS ACCESS-REQUEST报文与RADIUS服务器交互,或在本地,通过查询预先配置于AP中的ESS中AP MAC地址和IP地址的对应关系,将旧AP的BSSID解析为IP地址。新AP接收到旧AP的IP地址后,向STA原先连接的旧AP以TCP会话方式发送IAPP MOVE-Notify报文,在报文中包含了STA的MAC地址。旧AP响应后,将自己保存的有关STA的上下文信息用MOVE-response报文发送给新AP,并且释放掉自己与STA的连接。新AP接收到旧AP的响应报文后,重建STA的用户环境,然后在本地子网广播源MAC地址为STA的XID帧,子网上的二层设备接收到XID帧后,将根据该帧的源MAC地址更新转发表中的相应记录。IAPP向网络广播通知报文后,调用MOVE.confirm原语通知APME。

  

  如果要对IAPP MOVE-Response报文进行加密,RADIUS服务器在对新AP回复中,除了包括旧AP的IP地址外,还包括有安全域。这些安全域不仅包含了新旧AP通信的共享密钥,而且还用RADIUS注册表中的AP的口令进行了加密。新AP接收到RADIUS服务器的回复后,把安全域作为Send-Security-Block报文发送给旧AP,这也是AP间IAPP TCP交换的第一个信息。旧AP返回ACK-Security-Block报文,这样新旧AP都有了共享密钥,可以对AP间会话所有报文进行加密。

  

  4 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为了加入一个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接入许可报文。该报文不仅

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章