web认证流程及常见问题分析2010.12.16junkyGO一.What’sWEB认证1.认证技术是AAA(认证,授权,计费)的初始步骤,AAA一般包括用户终端、AAAClient、AAAServer和计费软件四个环节。用户终端与AAAClient之间的通信方式通常称为认证方式。目前的主要技术有以下三种:PPPoE、Web+Portal、IEEE802.1x。2.三种方式的技术优缺点–PPPoE优点:是传统PSTN窄带拨号接入技术在以太网接入技术的延伸和原有窄带网络用户接入认证体系一致最终用户相对比较容易接收缺点:PPP协议和Ethernet技术本质上存在差异,PPP协议需要被再次封装到以太帧中,所以封装效率很低PPPoE在发现阶段会产生大量的广播流量,对网络性能产生很大的影响组播业务开展困难,而视频业务大部分是基于组播的需要运营商提供客户终端软件,维护工作量过大PPPoE认证一般需要外置BAS,认证完成后,业务数据流也必须经过BAS设备,容易造成单点瓶颈和故障,而且该设备通常非常昂贵–WEB+Portal优点:不需要特殊的客户端软件,降低网络维护工作量可以提供Portal等业务认证缺点:WEB承载在7层协议上,对于设备的要求较高,建网成本高用户连接性差,不容易检测用户离线,基于时间的计费较难实现易用性不够好,用户在访问网络前,不管是TELNET、FTP还是其它业务,必须使用浏览器进行WEB认证IP地址的分配在用户认证前,如果用户不是上网用户,则会造成地址的浪费,而且不便于多ISP的支持–8021X优点:802.1x协议为二层协议,不需要到达三层,而且接入层交换机无需支持802.1q的VLAN,对设备的整体性能要求不高,可以有效降低建网成本通过组播实现,解决其他认证协议广播问题,对组播业务的支持性好。业务报文直接承载在正常的二层报文上;用户通过认证后,业务流和认证流实现分离,对后续的数据包处理没有特殊要求缺点:需要特定客户端软件网络现有楼道交换机的问题:由于802.1x是比较新的二层协议,要求楼道交换机支持认证报文透传或完成认证过程,因此在全面采用该协议的过程中,存在对已经在网上的用户交换机的升级处理问题IP地址分配和网络安全问题:802.1x协议是一个2层协议,只负责完成对用户端口的认证控制,对于完成端口认证后,用户进入三层IP网络后,需要继续解决用户IP地址分配、三层网络安全等问题,因此,单靠以太网交换机+802.1x,无法全面解决城域网以太接入的可运营、可管理以及接入安全性等方面的问题计费问题:802.1x协议可以根据用户完成认证和离线间的时间进行时长计费,不能对流量进行统计,因此无法开展基于流量的计费或满足用户永远在线的要求–综合比较GO二.WEB+Portal认证流程1.WEB认证流程–用户开始部分–流程描述用户无线成功链接瘦AP用户DHCP获取IP地址,地址一般由AC分配用户HTTP请求上网,AC推送PortalURL,携带ssid、userip、ACname等信息PortalServer返回请求页面–与PortalServer交互流程–流程描述与Portal交互流程,有CHAP和PAP两种a)用户上线CHAP认证流程•用户访问网站,经过AC重定向到PortalServer,PortalServer推送认证页面•用户填入用户名、密码,提交页面,向PortalServer发起连接请求•PortalServer向AC请求Challenge•AC分配Challenge给PortalServer•PortalServer向AC发起认证请求•而后AC进行RADIUS认证,获得RADIUS认证结果•AC向PortalServer送认证结果•PortalServer将认证结果填入页面,和门户网站一起推送给客户•PortalServer回应确认收到认证结果的报文b)用户上线PAP认证流程•用户访问网站,经过AC重定向到PortalServer,PortalServer推送认证页面•用户填入用户名、密码,提交页面,向PortalServer发起连接请求•PortalServer向AC发起认证请求•而后AC进行RADIUS认证,获得RADIUS认证结果•AC向PortalServer送认证结果•PortalServer将认证结果填入页面,和门户网站一起推送给客户•PortalServer回应确认收到认证结果的报文–与RadiusServer交互流程–流程描述与Portal服务器认证流程成功结束后由Portal服务器发起认证请求AC接收到认证请求报文后向Radius服务器发送认证请求报文Radius服务器返回认证响应AC返回认证结果给Portal服务器。(以及相关业务属性)Portal服务器根据认证结果,推送认证结果页面Portal服务器回应AC收到认证结果报文。如果认证失败,则流程到此结束。认证如果成功,AC发起计费开始请求给RADIUS用户认证服务器RADIUS回应计费开始响应报文,并将响应信息返回给AC。用户上线完毕,开始上网在用户上网过程中,为了保护用户计费信息,每隔一段时间AC就向RADIUS用户认证服务器报一个实时计费信息,包括当前用户上网总时长,以及用户总流量信息RADIUS计费服务器回应实时计费确认报文给AC当AC收到下线请求时,向RADIUS用户认证服务器发计费结束报文RADIUS计费服务器回应AC的计费结束报文–正常下线流程–流程描述当用户需要下线时,可以点击认证结果页面上的下线机制,向Portal服务器发起一个下线请求Portal服务器向AC发起下线请求AC返回下线结果给Portal服务器Portal服务器根据下线结果,推送含有对应的信息的页面给用户当AC收到下线请求时,向RADIUS用户认证服务器发计费结束报文RADIUS用户认证服务器回应AC的计费结束报文–异常下线流程–流程描述AC侦测到用户下线,向Portal服务器发出下线请求Portal服务器回应下线成功当AC收到下线请求时,向中央RADIUS计费服务器发计费结束报文中央RADIUS计费服务器回应AC的计费结束报文–用户强制下线流程–流程描述AC侦测到用户的本次连接最大允许接入时间结束,向Portal服务器发出下线请求Portal服务器回应下线成功,并向用户推送下线结果页面当AC收到下线请求时,向中央RADIUS计费服务器发计费结束报文中央RADIUS计费服务器回应AC的计费结束报文–DM消息强制下线流程–流程描述Radius向AC下发Disconnect-Request消息AC向Portal服务器发出下线请求Portal服务器回应下线成功,并向用户推送下线结果页面AC向Radius回应Disconnect-ACK下线成功AC向中央RADIUS计费服务器发计费结束报文中央RADIUS计费服务器回应AC的计费结束报文如AC踢用户下线失败,则向Radius回应Disconnect-NAK2.WEB认证流程报文分析–上线流程报文–报文描述4号报文是PortalServertoAC(RequestChallenge:0x01)5号报文是ACtoPortalServer(ACKChallenge:0x02)6号报文是PortalServertoAC(RequestAuth:0x03)7号报文是ACtoRadiusServer(AccessRequest)8号报文是RadiusServertoAC(AccessAccept)9号报文是ACtoRadiusServer(AccountingRequestStart)10号报文是ACtoPortalServer(ACKAuth:0x04)11号报文是PortalServertoAC(AFFACKAuth:0x07)12号报文是RadiusServertoAC(AccountingResponse)–下线流程报文–报文描述80号报文是PortalServertoAC(RequestLogout:0x05)81号报文是ACtoPortalServer(ACKLogout:0x06)82号报文是ACtoRadiusServer(AccountingRequestStop)83号报文是RadiusServertoAC(AccountingResponse)–中间计费报文–报文描述38号报文是ACtoRadiusServer(AccountingRequestStatus)39号报文是RadiusServertoAC(AccountingResponse)GO三.常见问题分析1.Portal页面无法推出通常Portal页面推不出一般是由AC、Portal服务器地址配置不正确引起•AC的Portal服务器地址确认加入到认证前白名单中?•URL中的UserIP是否在PortalServer的地址池中?•WlanACname是否正确?2.认证失败引起RadiusServer返回认证被拒绝的情况有很多:•认证请求报文中参数不正确a)用户名是否正确b)NAS_IP_ADDRESS,AC的外网IPc)CALLED_STATION_ID,用户所连AP的MAC还有SSID,注意格式d)CALLING_STATION_ID,用户MAC地址e)NASID,通常是计费时使用,确认是否设置正确f)ACCT_SESSION_ID,认证中唯一的ID,用户MAC加上累加值•用户下线失败吊死Radius服务器用户上线后继续登录,或由于某种原因下线失败导致吊死在Radius上的情况3.中间计费报文主要查看报文中计费信息是否准确是否有异常超大值出现