CDMA-1X网络数据业务VPDN用户跨交换局切换掉话的解决方法常江李辉友(中国联通北京分公司移动技术维护部)摘要:首先对普通上网卡用户和VPDN用户在跨交换局切换时进行对比测试,并针对网络中FACN单元的特有性,对问题进行准确定位,提出确实可行的解决方案,解决了困扰PDSN网管人员两年多的不明原因的上网卡专网用户掉话问题。关键词:交换局边界、切换掉话、VPDN(VirtualPrivateDialingNetwork)、FACN(ForeignAgentControlNode)、PDSN(PacketDataServingNode)、L2TP(Layer2TunnelProtocol)、LNS(L2TPNetworkServer)1.引言2006年2月为解决CDMA-1X数据业务VPDN用户在移动中无线上网时掉话的问题,作为网络优化工程师与PDSN工程师对北京联通的CDMA1X数据网进行问题测试。测试分为定点测试和移动测试,测试范围包括北京城区和郊区县城;测试方法分为登录到用户的专网数据库查询资料和在数据库中下载资料。2.问题描述测试时首先启动CDMA-1X专网用户上网卡,然后再启动专网客户端软件VRC,连接专用隧道,登录到专网服务器。这批上网卡不能登录互联网,只能通过隧道登录到用户的专网。在定点测试时非常顺利,上传和下载的速率都很快,但在移动状态下测试时出了问题。首先发现在南三环洋桥以西车辆移动中IE软件会不定时的不能打开网页和下载数据,这时上网卡的连接状态正常,瞬时流量显示为零,VCR显示停止隧道连接,重新连接VCR时显示与专网服务器的连接错误;断开上网卡重新连接后,VCR仍然显示与专网服务器的连接错误;大约20分钟以后才能重新连接成功。(下图为连接失败时的VCR画面截屏,部分名称隐去)。在不能连接专网服务器的地点停车后查询这张上网卡在PDSN系统和交换系统的数据都正常,并且使用普通CDMA-1X上网卡连接互联网后均可正常使用,初步判断与无线部分无关。由于这批做测试的上网卡是临时数据,用户方可以对卡的用户名和密码进行重置,所以初步怀疑是由于上网卡重名登录或IP地址相同的原因造成;在用户单位的系统中没有查到相同的用户名,为稳妥起见将用户名、密码和上网卡的IMSI绑定。在以后几天的测试中还是发现在不同地区、不定时的出现上述问题。3.问题的定位在和PDSN工程师讨论问题时他们说以前也出现过类似的专网用户掉话后不能重新连接的现象,当时的处理方法是在PDSN侧将卡的登记信息定时释放,重新连接就行了,这种问题存在大约有两年的时间了,一直未能彻底解决。在后几天的测试中发现出现问题的地区基本上在交换机的局边界附近,为了证实这个判断,用一张专网上网卡和一张普通上网卡在第一、四交换局边界做对比测试。测试中发现通过交换局边界时专网上网卡依旧出现老问题,但普通上网卡能正常使用,由此判断问题可能出现在交换局边界和PDSN部分。CDMA-1X分组网的组网方式分为SIP(SimpleIP)和MIP(MobileIP)两种,SIP和MIP的有以下几点主要区别:SIP(SimpleIP)1.如传统拨号网络,用户每次使用数据业务时都需进行拨号连接2.每次接入得到不同的IP地址3.用户跨PDSN的漫游将导致连接的中断4.只能支持用户端主动发起的业务(“GetService”)。普通Internet浏览,Email,FTP,VOD,网络游戏,网上聊天等等MIP(MobileIP)1.“AlwaysOnline”2.用户终端保持固定的IP地址3.可以跨PDSN漫游,不会导致连接的中断4.即支持用户端发起的业务,又支持网络端发起的业务(“PushService”)。专网接入,信息订制等MobileIP真正的意义不在于PDSN间切换时不断线,而在于IP地址携带。北京联通的CDMA-1X分组网采用SIMPLEIP结构,主要网元由9个MSC、2个FACN、11个PDSN组成。下图为带有FACN部分的SimpleIP的网络结构图:FACN是PDSN的信令控制节点,是整个PDSN系统中的一个可选组件,如果不选用,PDSN系统可以照常工作,如果选用,PDSN系统可以提供很多其它功能。FACN的主要功能是收集PDSN工作的情况信息、监控PDSN的工作状态、选择和分配PDSN,实现PDSN负载控制。FACN可以将最多250个PDSN卡组成一个虚拟的PDSN组,整个PDSN组从PCF角度看是一个标准的“大”PDSN,这个“大”PDSN容量可以达到1,000,000个连接。下面两图是SIP的有FACN的2个PCF和2个PDSN切换的PPP建立和IMSI鉴权的流程图:普通的上网卡用户在进行PPP连接跨交换局切换时按以下流程操作:1、MN与PAN/PCF之间完成了TCH的建立,PCF已经成功配置了一个FACN的IP地址,并且向FACN发送一个R-PRegistrationrequest。2、FACN查数据库找到一个最佳的PDSN来处理该呼叫,PDSN的选择原则如下:FACN根据IMSI查数据库看该IMSI的信息是否处于某一个PDSN中,若是,则选择该PDSN;否则选择一个负荷最轻的PDSN。3、FACN向PCF发送一个R-Pregistrationreply(rejectcode域为136),其中PDSN的IP地址就是所选择的PDSN的IP地址。4、PCF重新发送R-Pregistrationrequest到所选择的PDSN,PDSN发回一个表示成功的消息完成了PCF与PDSN间R-PSession的建立。5、然后在MN与PDSN间进行LCP层消息的交互,目的是进行链路层参数的协商,鉴权方式的选择,目前选用CHAP的方式。6、PDSN发送一个含有随机数的CHAPchallenge到MN,MN根据用户密码与收到的随机数计算出一个应答参数,并将该参数连同用户名一起在CHAPresponse发送给PDSN。7、PDSN向FACN发送一条FACNRegistrationrequestmessage,其中含有IMSI与NAI,FACN根据IMSI与NAI查找IMSI数据库判断是否有相关记录存在。8、FACN发送一条含有存在相关记录或者不存在相关记录信息与关联ID的FACNRegistrationreply消息到源PDSN。9、PDSN和FAAA、HomeRADIUS进行RADISU鉴权。10、PDAN发送CHAPAccept给MN,MN与PDSN进行IPCP协商获得IP地址,简单的IPSession建立完成。11、源PDSN发送FACNregistrationupdate给FACN,其中含有NAI与IMSI;FACN利用FACNregistrationupdate消息中的信息建立一个对应的IMSI数据库的接口,并且向源PDSN发送一条应答消息FACNRegUpdateAck。至此一条在MN、源PCF和源PDSN间的SIPsession建立成功。12、MN在进行切换时,Session进入休眠状态(PCF发送一条含有ActiveStop的R-PRRQ消息给源PDSN);PDSN发送一条R-PRRQ给PCF。PDSN端SIPsession进入休眠状态,这时进行跨局间的PCF切换。13、MN切换到目标PCF;MN建立业务信道。14、目标PCF配置有一个FACN的IP地址;并且向FACN发送一条R-PRegistrationrequest消息。15、FACN查数据库找到一个最佳的PDSN来处理该呼叫,FACN根据IMSI查数据库看该IMSI的信息是否处于某一个PDSN中,若是,则选择该PDSN;否则选择一个负荷最轻的PDSN。在图2中,由于PDSN与PCF的分组原因,FACN不能为该呼叫继续分配源PDSN;此时,FACN会回一条R-PRegistrationreply消息到目标PCF,其中含有最佳的目标PDSN地址。16、目标PCF重新发送R-Pregistrationrequest消息到所选择的PDSN;进行R-P隧道的建立;然后在MN与PDSN间进行LCP层消息的交互,目标PDSN发送一条含有随机数的CHAPchallenge到MN;MN再根据用户密码与收到的随机数计算出一个应答参数,并将该参数连同用户名一起在CHAPresponse发送给目标PDSN。17、目标PDSN向FACN发送一条FACNRegistrationrequestmessage,其中含有IMSI与NAI;FACN根据IMSI与NAI查找IMSI数据库判断是否有相关记录存在。在这个流程中,FACN找到在源PDSN中存在一个dormant的SIPSession,需要源PDSN撤除该Session;18、FACN发送一条含有IMSI与NAI信息的registrationUpdate到源PDSN;源PDSN进行与源PCF之间PPPSession与R-PSession的撤除;源PDSN发送一条含有存在相关记录或者不存在相关记录信息的FACNRegistrationAcknowledge消息到FACN;FACN发送一条含有存在相关记录或者不存在相关记录信息与关联ID的FACNRegistrationreply到目标PDSN;19、目标PDSN与FAAA、RADIUS进行RADIUS的鉴权;并且发送一条CHAPAccept消息到MN;MN与目标PDSN进行IPCP协商获取IP地址。20、目标PDSN发送FACNregistrationupdate到FACN,其中含有NAI与IMSI;FACN根据这条消息中的信息进行IMSI数据库接口的更新。21、在MN、目标PCF与目标PDSN间完成了SIPSession的建立,并且完成了这次在2个PCF和2个PDSN间的跨局切换。从图1的流程来看,所有操作似乎都是正常的;但到图2进行切换后重新连接出现问题,初步怀疑是在15~17步骤有问题,就是图2中画红圈的部分。找到了问题的大致方向后,在接下来的跨局边界的测试时在FACN中查找专网上网卡切换前后的PDSN的相关记录,但是没有找到,下图是在FACN中的记录信息,可以清楚的看到包含用户的IMSI,LASTPDSN的IP地址,连接状态和用户名(也可以用域名做用户名)。由于在核心网中没有查到关于LASTPDSN的消息,所以只能使用lincheck命令在企业网的LNS端查询上网卡连接PDSN的状态,下图是连接PDSN的信息:上图中画红线的用户跨局后同时占用两个PDSN,上网卡已不能正常使用,让机房将这个用户在PDSN侧释放以后可正常使用;画兰线的用户跨局后只占用一个PDSN,可以正常使用。对以上结果的分析是跨局后在重新分配PDSN时恰好是源PDSN最空闲,所以还分配到源PDSN,可以建立PPP连接;这时如果是另一PDSN空闲,则分配到新的PDSN,产生新的IP地址,就出现了测试中遇到的问题。下面以MN发起隧道的VPDN为例,介绍基本消息流程:MSBSC/PCFPDSNAAALNSAAA企业网IP企业网TCHEstablishedA11RegistrationRequest(1)A11RegistrationResponse(2)PPPLCPPhase(3)AuthenticationRequest(4)AccessRequest(5)AccessAccept(LNSAddress)(6)TunnelSetup(7)TunnelAuthentication(8)SessionSetup(9)LCPParameters,Username/Passwordforwarded(10)UserAuthentication(11)AuthenticationSuccess(12)IPCPPhase(13)PPPSetup(14)首先的过程是CDMA1X空中接口的建立,本文不做详细讨论。1.PCF向PDSN发起注册请求,这个消息是A11接口的标准消息;2.PDSN给PCF注册响应;3.PPP的LCP(链路控制协议)协商阶段,这个阶段也是PPP的初始阶段,主要是在PD