51学通信技术论坛

标题: PDP激活过程中,SGSN上的APN选择原则 [打印本页]

作者: 爱卫生    时间: 2011-4-19 23:20:34     标题: PDP激活过程中,SGSN上的APN选择原则

   在SGSN向GGSN发送PDP上下文激活请求之前,SGSN首先要决定使用哪一个APN为用户做激活。这个APN可以是用户提供,HLR的签约数据提供,也可以是网络侧即SGSN自己提供。那到底用哪个呢?原则是什么?
   请参看下表,此部分已录制相关视频。请参考http://www.gprshome.com/forum.php?mod=viewthread&tid=184&extra=page%3D1



手机发给SGSN的APN用户签约的APN(HLR中的数据)A项和B项的比较SGSN的行为(即选择哪个APN来激活)
cmwap*不比较cmwap
为空*不比较使用SGSN为用户配置的默认APN
拼写错误,例如cmwbp(或者是从香港买的水货机,APN为香港的APN)*不比较使用SGSN为用户配置的默认APN
cmwapcmwap且只有一个签约APN值如果相等则使用手机提供的APN
cmnet(拼写正确但没签约)cmwap且只有一个签约APN值不相等拒绝激活
为空cmwap且只有一个签约APN不比较cmwap
拼写错误,例如cmwbp(或者是从香港买的水货机,APN为香港的APN)cmwap且只有一个签约APN值不相等拒绝激活
cmwap(拼写正确)一堆签约APN列表,如cmwap、cmnet等在签约APN列表中cmwap
blackberry.net(拼写正确)一堆签约APN列表,如cmwap、cmnet等不在签约APN列表中拒绝激活
为空一堆签约APN列表,如cmwap、cmnet等不比较拒绝激活
拼写错误,例如cmwbp一堆签约APN列表,如cmwap、cmnet等不比较拒绝激活


作者: updane    时间: 2011-5-24 00:06:27

终于弄明白为什么以往分析PDP激活时,APN为cmwap仍然被拒绝。
作者: z36306610    时间: 2011-6-4 17:28:33

终端cmwap大小写有关系吗?
作者: 爱卫生    时间: 2011-6-4 17:37:11

回复 z36306610 的帖子

  不区分。可参考中国移动官方关于GPRS的设置使用。摘录如下。
如果客户的手机支持GPRS功能,则客户只需做好以下设置,即可使用相应的功能:
(一)手机登陆WAP网页
1、主页:http://wap.monternet.com(中国移动WAP主页)
2、数据承载方式:GPRS
3、网关地址:10.0.0.172
4、网关端口号:9201,部分手机需要设置为80
5、超时上限:建议为600
6、APN设置:CMWAP(大小写均可)
7、客户名设置:空
8、客户密码设置:空
9、鉴定:普通
10、主页:空
(二)手机登陆WWW网页
1、数据承载方式:GPRS
2、设置接入点名称(APN):CMNET(大小写均可)
3、设置客户名:空
4、设置密码:空
5、鉴定:普通
6、主页:空


作者: kfclove    时间: 2011-6-10 11:56:15

是否和网关设置还有关系呢?
作者: 爱卫生    时间: 2011-6-10 20:44:10

kfclove 发表于 2011-6-10 11:56
是否和网关设置还有关系呢?

  你是指WAP网关吗?APN的选择和WAP网关的设置无关。即使你WAP网关设置错误,也不会影响你的PDP激活以及APN的选择原则。但是会对你使用WAP业务有影响。因为所有的包都需要通过WAP网关作为代理转发。
作者: cmcc_demon    时间: 2011-6-13 19:56:04

我可以这样理解不?所谓SGSN开启APN纠错功能,其实就是将HLR对应的用户签约APN设置为*,这样无论MS手机将APN设置成什么,SGSN都会选择默认设置的cmwap作为其APN的接入点。
作者: 爱卫生    时间: 2011-6-13 20:03:38

cmcc_demon 发表于 2011-6-13 19:56
我可以这样理解不?所谓SGSN开启APN纠错功能,其实就是将HLR对应的用户签约APN设置为*,这样无论MS手机将APN ...

   我没有太理解“其实就是将HLR对应的用户签约APN设置为*”这句话。因为SGSN上的缺省APN是不能设置为*的,而必须是一个明确的APN,所以你最后一句话的理解基本是对的。SGSN可以将用户发过来的错误APN改成缺省APN再拿去做PDP上下文激活,但还是需要参照上表进行比较。如果比较没有通过的话,SGSN就直接拒绝激活,而不会发起Gn接口流程即Create PDP Context Request消息给GGSN了。
作者: cmcc_demon    时间: 2011-6-13 20:10:22

另外,GPRS专网的APN是不是就是HLR用户数据签约的APN设置成改专用的APN,比如GPS定位专用的APN在用户签约数据设置为gps.fj,用户也只能设置成该APN才能正常激活PDP.
作者: 爱卫生    时间: 2011-6-13 20:17:29

回复 cmcc_demon 的帖子

  是的。但也取决于厂家的实现。有些厂家只能在全局定义一个Default APN,而不一定能根据用户的IMSI或手机号段来设置Default APN。不过,像这种专网的APN,一般是在发到最终的用户之前有有人帮你设置好了。倒也不用担心。像一些行业用户的都是,用之前就已经设置好了。
作者: cmcc_demon    时间: 2011-6-13 21:15:58

回复 爱卫生 的帖子

我的意思是将HLR中用户签约的APN均设置成通用符*,这样无论MS设置成什么都不需要进行比较,SGSN都将给MS分配一个default APN,再去选择相应的GGSN网关。
(因为我们现网SGSN 开启了APN纠错功能,无论MS的APN设置cmwap、空和错误值均可以正常连接网络。我想知道是不是这个原理)                                                                                                                                          
附:                                                                  HLR中的GPRS数据签约表


数据域

描述

IMSI

IMSI是最基本的检索指数

MSISDN

MSISDN号码

SGSN号码

当前给MS提供服务的SGSNSS7号码

SGSN地址

当前给MS提供服务的SGSNIP地址

SMS参数

SMS有关的参数,例如,由运营商规定的权限限制

MS GPRS删除标识

标识该MSMMPDP上下文从SGSN内删除

MNRG

表示MS在整个SGSN内找不到,在SGSNGGSN内,将该MS标记为“GPRS不可达到”

GGSN清单

GGSN对应的GSN号码和可选的IP地址对,当MS的活动被删除,且MNRG标识被置位时,就要与GGSN联络。GSN号码可以是GGSN的号码,也可以是进行协议转换的GSN的号码。

每个IMSI包含零个或多个下述分组数据协议(PDP)上下文签约记录:

PDP上下文标识

PDP上下文检索指数

PDP类型

PDP类型、例如X.25PPPIP

PDP地址

PDP地址,例如X.121地址。如果允许动态寻址,该数据域为空

APN

根据DNS命名协定的标签,描述至外部分组数据网络的接入点

预定的QoS记录

预定的QoS记录,如果没有请求特定的QoS记录,将该项置成缺省值

允许的VPLMN地址

该数据域规定MS只允许使用在HPLMN域内的APN,或者还可以使用VPLMN域内的APN




作者: 爱卫生    时间: 2011-6-13 21:40:41

回复 cmcc_demon 的帖子

  这样做的话表面上是有好处。可以简化网络侧的实现和维护。但实际上这样子是不行的。
  首先,现在运营商的规范要求不允许在HLR上为签约用户的APN配置*,而必须要是明确的签约APN的列表,签了几个就要配几个。不能在SGSN上为所有签约用户选择一个Deafult APN的原因,还是因为无法确认用户的一些行为。
  例如,如果电力企业用户同时签约了cmwap、cmnet以及自己的企业APN(假设叫dianli)。又有个银行用户签约了cmwap、cmnet和yinhangAPN。另外还有黑莓用户签约了cmwap、cmnet,blackberry等。还有普通大众用户签约了cmwap、cmnet。或者有些企业用户就只签约了一个APN就是他们自己企业的APN。这时候作为运营商无法设置统一的Deafult APN主要基于如下考虑:
1 如果这个企业用户只签约了一个APN即他们企业的APN,你将它重定向到cmwap去,显然不合适。
2 不同的企业用户的企业APN都不一样,如上面的电力和银行客户还有黑莓,是三个不同的专用APN。如果要设Deafult APN,则要分开设置3个。
3 如果还有特别情况,一个手机签约了两个专用APN,你怎么知道这个用户想默认访问哪个APN呢?
  基于以上考虑,在HLR上不允许设置*,一定要做强制选择检查。否则为用户选错了APN,可能会招致出错!

作者: neoshi    时间: 2011-6-14 18:27:45

[attach]447[/attach]

其实版主简化了APN选择的原则,对于用户来说简单配置了一个名字,在网络侧做了很多的比对规则,因为里面牵涉到东西不仅仅是这个名字的问题。
如果对这个有兴趣还是看一下规范23.060里面最后的附录部分,画了很多图,写的很好。
我附上一个供参考。

作者: wenjipan    时间: 2011-6-27 09:31:38

问个DNS的问题。现在ms侧使用cmnet作为apn的话,就需要网络侧在pdp激活接受里面显式的配置dns(config_option),不能使用缺省值。
  请问网络是否配置这个dns,需要ms侧在激活时做哪些设置呢?还是都是由网络侧控制?谢谢。

作者: 爱卫生    时间: 2011-6-27 14:53:28

回复 wenjipan 的帖子

  不好意思。我没太明白“就需要网络侧在pdp激活接受里面显式的配置dns(config_option),不能使用缺省值。”这句话的意思。你是说在SGSN给MS回的Activate PDP Context Accept消息里要告诉MS,关于DNS Server的地址信息吗?这个值应该是GGSN分配的,和SGSN无关啊。还是说SGSN去查询GGSN地址的时候,需要配置的DNS Server地址?这时候,SGSN需要根据MS送过的APN的NI部分,再加上自己配置的OI,构成APN的全名,即NI+OI+gprs.结尾,送到DNS Server去解析,得到GGSN的IP。这个解析APN的DNS Server需要在SGSN上本地配置。
  MS侧不管怎样,都只需要在手机上设置好APN的NI部分,即cmwap或cmnet。OI部分是在SGSN上配置,会自动的加上去的。

作者: samsin    时间: 2011-10-5 21:48:29

本帖最后由 samsin 于 2011-10-5 22:01 编辑

回复 cmcc_demon 的帖子
  是的。但也取决于厂家的实现。有些厂家只能在全局定义一个Default APN,而不一定能根据用户的IMSI或手机号段来设置Default APN。不过,像这种专网的APN,一般是在发到最终的用户之前有有人帮你设置好了。倒也不用担心。像一些行业用户的都是,用之前就已经设置好了。

cmcc_demon 2011-6-13 20:10
B:另外,GPRS专网的APN是不是就是HLR用户数据签约的APN设置成改专用的APN,比如GPS定位专用的APN在用户签约数据设置为gps.fj,用户也只能设置成该APN才能正常激活PDP. .

爱卫生 2011-6-13 20:03
因为SGSN上的缺省APN是不能设置为*的,而必须是一个明确的APN,所以你最后一句话的理解基本是对的。SGSN可以将用户发过来的错误APN改成缺省APN再拿去做PDP上下文激活,但还是需要参照上表进行比较。如果比较没有通过的话,SGSN就直接拒绝激活,而不会发起Gn接口流程即Create PDP Context Request消息给GGSN了。

cmcc_demon 2011-6-13 19:56
A:我可以这样理解不?所谓SGSN开启APN纠错功能,其实就是将HLR对应的用户签约APN设置为*,这样无论MS手机将APN设置成什么,SGSN都会选择默认设置的cmwap作为其APN的接入点。

---
我对cmcc_demon问题的看法和楼主不同:
A:就算SGSN开启APN纠错功能,即HLR中的apn设为通配符*,这样无论MS将APN设置成什么,SGSN也不一定会选择网络侧默认设置值啊,只是这时有个“纠错”功能,如果MS的APN设定为空或不存在才是你所要的结果吧。

B:如果说只有这一个subscribed apn(gps.fj),用户不设置apn也能正常激活pdp吧。
---
另外楼主的这张表 相当好。

作者: 爱卫生    时间: 2011-10-7 15:56:34

回复 samsin 的帖子

  关于AB两个问题的观点。我说下我的看法。
关于A问题:
   假设用户只签约了一个* APN,那如果用户设置的APN正确,例如cmwap,那就不需要比较直接用用户提供的cmwap来做激活了。但如果用户设置的APN不正确(APN不存在也是不正确的一种),这时候SGSN也是可以将它重定向到Default APN的。但很多地方也是用的ADC来给用户发送短信的方式,推送正确的配置来做。
关于B问题:
   如果用户只签约了一个明细的APN例如这里的gps.fj,即使用户不设置APN那确实是可以正常激活的。这个和最上面的表中内容是吻合的。这点我没有意见。如果之前的答复有什么出入,特此更正。
为空cmwap且只有一个签约APN不比较cmwap


作者: samsin    时间: 2011-10-7 18:34:16

谢谢楼主,我也是这个意思
作者: lenovovb    时间: 2011-10-19 22:37:39

受益匪浅 感谢爱卫生
作者: lenovovb    时间: 2011-10-19 22:37:59

受益匪浅 感谢爱卫生
作者: gzstu    时间: 2011-12-27 16:55:14

受益匪浅 感谢爱卫生
作者: gzstu    时间: 2011-12-27 16:56:10

KAO,回个贴还被钱砸伤!!花了2金!!!
作者: gzstu    时间: 2011-12-27 16:56:48

回贴拿回2金
作者: oliverchang    时间: 2012-3-30 09:55:16

回复 爱卫生 的帖子

爱总,你指的APN的拼写错误是如何鉴定的?有什么原则说是拼写正确和错误,如何评判?

作者: 奈拉阿卜杜拉    时间: 2012-4-18 15:05:20

学习了 多谢各位高手的切磋
作者: 爱学习    时间: 2012-4-28 15:34:42

学习学习,再学习。。。
作者: hou3331    时间: 2012-5-5 23:41:54

为空          *        不比较        使用SGSN为用户配置的默认APN

对于这个场景下,sgsn选择了一个默认APN发送到nsn ggsn,但被nsn ggsn拒绝了。

野卡用户:
    Selection Mode
        1111 11.. = Spare: 0x3F
        .... ..10 = Selection Mode Value: Network provided APN, subscription not verified(0x02)

7.8.12 选择模式(Selection Mode)
选择模式信息单元指示消息中接入点名APN的来源。选择模式信息单元见图17。选择模式值见表53。
      比特
字节 8 7 6 5 4 3 2 1
1 类型值=15(十进制)
2 111111(空闲) 选择模式值
图17 选择模式信息单元

选择模式 值(十进制)
MS或网络提供的APN,预先确定的要求验证 0
MS提供的APN,预先确定的不要求验证 1
网络提供的APN,预先确定的不要求验证 2
保留,不发送,如果接收到,视为选择模式值为2 3
表53 选择模式值
作者: 爱卫生    时间: 2012-5-6 18:25:01

回复 hou3331 的帖子

是的。感谢补充。本帖主要讨论的是SGSN上的选择过程,关于GGSN侧选择模式(Selection Mode)的说明,之前应该有录过一个视频介绍到。http://www.gprshome.com/forum.php?mod=viewthread&tid=1946这里也有。
作者: wbl070818    时间: 2012-5-23 01:59:28

爱卫生 发表于 2011-10-7 15:56
回复 samsin 的帖子

  关于AB两个问题的观点。我说下我的看法。

关于A问题:
   假设用户只签约了一个* APN,那如果用户设置的APN正确,例如cmwap,那就不需要比较直接用用户提供的cmwap来做激活了。但如果用户设置的APN不正确(APN不存在也是不正确的一种),这时候SGSN也是可以将它重定向到Default APN的。但很多地方也是用的ADC来给用户发送短信的方式,推送正确的配置来做。




爱总好! 对于这时候SGSN也是可以将它重定向到Default APN的 , 这个经过重定向后选择的VPN应该是当初在HLR上签约的唯一vpn,而不是SGSN上配置的全局Default APN吧?

作者: 爱卫生    时间: 2012-5-23 21:30:04

wbl070818 发表于 2012-5-23 01:59
关于A问题:
   假设用户只签约了一个* APN,那如果用户设置的APN正确,例如cmwap,那就不需要比较直接用 ...

不好意思,没太看明白。“当初在HLR上签约的唯一apn”是什么意思?用户签约的不是通配符*吗?你的意思是?
作者: wbl070818    时间: 2012-5-23 23:29:56

爱卫生 发表于 2012-5-23 21:30
不好意思,没太看明白。“当初在HLR上签约的唯一apn”是什么意思?用户签约的不是通配符*吗?你的意思是? ...

呵呵,不好意思没有表达清楚。假如用户在HLR里面只签约了一个VPN,但是用户手机拼写VPN错误,经SGSN重定位,最终SGSN选择的VPN是当初签约的那个唯一VPN吧,而不是SGSN上配置的全局default VPN,是吗?

作者: 爱卫生    时间: 2012-5-24 19:09:24

是的。如果没有签约,肯定不能重定向(即使配了default APN都没有用,因为实际上用户可能没有得到授权,否则有安全隐患),会被SGSN直接拒绝激活的。但一般只有为空才会重定向到default APN,如果是拼写错误则可能会被拒绝。另外,通常SGSN上配置的default APN是在全局配置的,而不是根据用户号段来配置的,也就是不管你签约了哪个APN,default APN都是一样的。


作者: dandaner00hcw    时间: 2012-6-19 21:19:13

我有个问题,关于sgsn把apn送dns解析的时候,会加一些后缀比如mcc,mnc之类的,是怎么回事啦?
作者: dandaner00hcw    时间: 2012-6-19 21:32:48

还有个问题,对于什么情况下sgsn 的session event log里会返Missing or Unknown APN (#27) 的错误消息,还有,最近发现很多行业apn重发请求引起的pdp激活成功率降低的问题,sgsn 的session log里有很多Requested Service Option not Subscribed (#33) 啊,#28 的201之类的错误,是怎么回事,这跟apn重定向有什么关系呢?
作者: 爱卫生    时间: 2012-7-8 19:10:35

dandaner00hcw 发表于 2012-6-19 21:32
还有个问题,对于什么情况下sgsn 的session event log里会返Missing or Unknown APN (#27) 的错误消息,还有 ...

#33是用户没有签约相应的服务,通常是没有签约这个请求的APN。#28是请求的PDP地址或类型不对。一般来说,都和重定向关系不大。


作者: 狼道    时间: 2012-8-17 00:38:49

用户签约的APN(HLR中的数据)是什么意思,不太懂。求解。多谢
作者: 狼道    时间: 2012-8-17 01:53:24

支持爱总。。。。懂了
作者: 三国杀小王子    时间: 2012-12-1 20:41:30

深入学习了。 谢谢爱总啊
作者: vicai    时间: 2013-4-18 18:07:54

呵呵,情况还挺多的。
作者: gprshome    时间: 2013-9-4 14:56:04

还是有点不清楚呢。
作者: ccc123    时间: 2014-2-9 21:42:04

感谢爱总。学习了。。。
作者: ccc123    时间: 2014-2-9 22:18:36

收益了。感谢楼主。。。
作者: gtp    时间: 2014-4-11 16:12:41

用户签约的APN(HLR中的数据)  用 * 表示,是不是这样的意思: 此用户没有签约的 apn? 还有用户签约的apn是 怎么做的、运营商提供的某个服务吗还是其他怎样?





欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) Powered by Discuz! X2