51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 6032|回复: 10
打印 上一主题 下一主题

CC112 APN restriction value incompatible with active PDP context [复制链接]

Rank: 9Rank: 9

懒

跳转到指定楼层
楼主
发表于 2012-4-29 17:07:41 |只看该作者 |倒序浏览
一键分享 一键分享
本帖最后由 爱卫生 于 2012-4-29 17:08 编辑

先看官方说明:“This cause code is used by the network to indicate that a requested primary PDP context or an MBMS context has an APN restriction value that is not allowed in combination with a currently active PDP context. Restriction values are defined in 3GPP TS 23.060 [74], subclause 15.4.“。

该CC主要是因为GTP协议中有一个IE叫APN restriction。APN restriction的取值及具体作用在23.060中定义。主要是用来决定针对某个MS而言,如果已经建立了到某个PDN网络的会话连接,是否还能建立到其他PDN网络的会话连接。APN restriction以及最大APN限制在SGSN上可选功能,并且在GGSN中需要对每个APN配置一个APN限制值。

如果MS已经有一个active的PDP上下文情况下,如果要建立到另外一个PDN网络的连接,将再次发起PDP激活流程。在PDP上下文创建过程中,SGSN发送Create PDP Context Request给GGSN,包含一个Maximum APN Restriction IE,GGSN收到后,将和本地配置的APN Restriction Value进行匹配,如果检查通过,则PDP激活成功。并且GGSN会在给SGSN回应的Create PDP Context Response消息中包含自己的APN Restriction Value,如果SGSN之前没有配置Maximum APN Restriction值,则用从GGSN收到的APN Restriction Value更新自己的Maximum APN Restriction值。后续,如果SGSN收到MS的Activation PDP Context Request消息,将首先进行检查,如果发现不匹配,将直接拒绝。

通过这个APN Restriction,运营商可以灵活的来控制MS对多个APN的组合访问。如果用户对两个APN的访问但这两个APN彼此没有业务需求,则可以拒绝MS同时访问这两个APN。

具体举一个例子如下(来自TS23.060 15.4 Table 13):

Maximum APN Restriction ValueType of APNApplication ExampleAPN Restriction Value of PDP contexts allowed to be established
0No Existing Contexts or RestrictionAll
1Public-1WAP or MMS(cmwap)1, 2, 3
2Public-2Internet or PSPDN(cmnet)1, 2
3Private-1Corporate (e.g. who use MMS) (bank of china)1
4Private-2Corporate (e.g. who do not use MMS) (dian li)None

如上表所示。在网络中总共有4个APN网络。cmwap、cmnet、BOC、dianli。前两个是公众网络,后两个是企业私有网络。第一列Max APN Restriction Value是在SGSN上针对每个APN的配置,本例中,针对cmwap对应取值为1,cmnet为2。最后一列APN Restriction Value是GGSN侧针对每个APN的配置,本例中,针对cmwap对应取值为1、2、3,cmnet为1和2。

现在假设MS已经建立了到cmwap的连接。现在希望发起到cmnet或BOC或dianli的访问,这时得到的结果可能是不一样的。

1)MS如果发起建立的第二个APN网络是cmnet,则SGSN会根据上表将Max APN Restriction值设置为2发给GGSN。GGSN侧的APN Restriction Value是1和2。代表运营商允许MS在建立了到cmwap连接的同时,还能建立到cmnet的连接。则PDP激活成功。MS同时建立了到两个APN的连接。

2)MS如果发起建立的第二个APN网络是BOC,根据用户的业务需求,当访问BOC(中国银行)时,MS还需要去下载彩信,即需要同时访问cmwap。则SGSN会根据上表将Max APN Restriction值设置为3发给GGSN,GGSN查看上表,发现APN Restiction Value为1,代表运营商允许在MS建立到BOC APN连接请求的同时,能否访问cmwap。则PDP激活成功。MS同时建立了到两个APN的连接。

3)MS如果发起建立的第二个APN网络是dianli(电力)。根据业务需求,访问电力企业内网,和internet隔离也不需要收彩信。因此,电力客户希望运营商能帮助加强安全策略,即MS只能建立一个PDP上下文,即到dianli的。而不能同时存在到两个APN的连接。因此,根据上表,SGSN将Max APN Restriction值设置为4,GGSN侧对应的值为none,代表在MS已经有一个到cmwap的active PDP上下文情况下,不允许再建立到这个dianli APN的PDP上下文。除非现将已有的cmwap这个PDP上下文去激活。这样就保证了安全性。即dianli APN网络的信息不会在cmwap网络中泄漏或遭到攻击。

当然反过来,如果用户首先建立了到BOC这个APN的PDP上下文,再发起对cmwap的PDP上下文激活,那SGSN将Max APN Restriction值设置为1,GGSN侧需要将APN Restriction值需要包含3(本例中为1、2、3),来允许MS能够同时访问cmwap。

另外,在GGSN侧对cmnet的APN Restriction值设置为1、2,代表cmnet只允许和cmwap同时建立,而不能BOC、dianli同时在一个MS中存在。因为后两者是企业网,没有访问internet的需求。

如果上述检查没有通过,则SGSN给MS发送Activate PDP Context Reject消息,并携带原因代码CC112 APN restriction value incompatible with active PDP context。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 8

特殊贡献奖

沙发
发表于 2012-5-10 01:09:35 |只看该作者
本帖最后由 iscehsj 于 2012-5-10 01:15 编辑

回复 爱卫生 的帖子

Hi 爱总,

你好!好久没有在GPRS家园回帖了。
今日偶然看到你这篇关于APN Restriction的文章,仔细拜读后,有所领悟APN Restriction的用法。对于APN Restriction,我有一些理解与你的不同。在这里,我整理出来,与你讨论一下。如有纰漏,请指教。

谢谢!

1. APN Restriction并没有在SGSN上有配置,也不存在于HLR或者HSS中;但是,在GGSN中,会针对具体的一个APN配置一个APN Restriction的值,如你提及的cmwap为1,cmnet为2,bank of China为3,而dianli为4.

2. SGSN会针对某UE所有active的PDN connection都储存有一个 APN Restriction的值(参考23.060 section13.2关于SGSN的储存)。当UE发起对某个APN的activate PDP context request之时,SGSN会根据该UE现有的active PDN connection的所有APN Restriction值来获得一个Maximum APN Restriction,并将其携带在发给GGSN的Create PDP Context Request中。如果某UE之前没有active的PDN connection,则将Maximum APN Restriction设置为最小的限制的值,即Maximum APN Restriction=0.

以下摘自29.060:
7.7.49
APN RestrictionThe APN Restriction information element, when used inmessages from the GGSN to the SGSN, contains an unsigned integer valueindicating the level of restriction imposed on primary PDP Contexts created tothe associated APN. When used in messages from the SGSN to GGSN, it contains anunsigned integer value indicating the highest level of restriction type for allcurrently active PDP Contexts associated with the subscriber.

3. 当GGSN收到SGSN发过来的Maximum APN Restriction,根据TS 23.060 section15.4表格,
将其与UE请求建立的APN所对应的APN restriction值进行冲突检查,如果没有冲突,则接受UE的请求;如果有冲突,则拒绝UE建立PDP context的请求,并返回“APN restriction value incompatible with active PDP context”的cause。

4. 在GGSN接受UE请求的情况下,GGSN会将该APN所对于的APN restriction的值携带在Create PDP Context Response消息中告知SGSN。SGSN会为该建立的PDP context保存该APN Restriction的值,并可能根据已有的active的PDN connection的APN restriction的值更新Maximum APN Restriction。

5. 当SGSN中,其Maximum APN Restriction=4,该UE又想建立一个新的PDN连接,此时,SGSN可直接拒绝该UE的PDP context activation的请求,并返回cause“APN restriction value incompatible with active PDP context”。
摘自23.060:
9.2.2.1
PDP ContextActivation Procedure
If the SGSN has stored avalue for the Maximum APN restriction and the value indicates the mostrestrictive type, then the SGSN shall reject any Activate PDP Context requeststo a different APN, using the PDP Context Activation Reject message includingan appropriate error cause.


现在假设UE已经建立了到cmwap的连接。(第一次建立APN连接,SGSN带给GGSN的Maximum APN Restriction=0,GGSN接受并返回APN Restriction=1)
(情况1)当UE想再发起第二个对cmnet的连接,则此时Maximum APN Restriction=1,SGSN向GGSN发起PDP建立请求。根据表格,Maximum APN Restriction=1则认为可以建立APN restriction为1,2,3的PDP context。此时cmnet的APN restriction为2,则GGSN没有检查到冲突,接受UE的PDP context建立请求,并将APN restriction=2返回给SGSN,SGSN会更新其Maximum APN Restriction为2. 此时,如果UE想再发起一个对Bank of China的私有连接,GGSN会根据Maximum APN Restriction=2和Bank of China的APN restriction为3,根据表格判断出冲突,不能建立APN restriction为3的PDP context。

(情况2) 当UE想发起第二个APN连接:Bank of China,则此时Maximum APN Restriction=1,SGSN向GGSN发起PDP建立请求。根据表格,Maximum APN Restriction=1则认为可以建立APN restriction为1,2,3的PDP context。此时Bank of China的APN restriction为3,则GGSN没有检查到冲突,接受UE的PDP context建立请求,并将APN restriction=3返回给SGSN,SGSN会更新其Maximum APN Restriction为3.

(情况3) 当UE想发起第二个APN连接:dianli。这个情况你的理解跟我的一致。此时Maximum APN Restriction=1,SGSN向GGSN发起PDP建立请求。根据表格,Maximum APN Restriction=1则认为可以建立APN restriction为1,2,3的PDP context。此时dianli的APN restriction为4,在GGSN检查到冲突,会拒绝UE的PDP context请求。

这里,我同意你的观点,当不同类型APN建立的顺序不一样,可能允许建立的PDP context的结果是不一样的。

反回来,如果用户首先建立了到Bank of China的APN连接,则该用户只能再建立到cmwap的APN连接,而不能建立到cmnet的连接。如果用户首先建立了到dianli的连接,则该用户不能再建立其他连接,以保证私有网络的安全性。

使用道具 举报

Rank: 9Rank: 9

懒

板凳
发表于 2012-5-11 00:07:03 |只看该作者
本帖最后由 爱卫生 于 2012-5-11 00:07 编辑

回复 iscehsj 的帖子

非常感谢iscehsj大侠的指正啊。我仔细的找了这些规范读了以后发现,应该你说的是准确的。之前我的理解是有所偏差的。特此就一些错误内容更正一下,请再看看哈!

1)GTP协议中的IE只有APN Restriction,没有Max APN Restriction。

2)这个APN Restriction不需要在SGSN上配置,但在GGSN上需要配置,为每个APN分配一个,本例中,cmwap对应的APN Restriction是1,cmnet为2,BOC为3,dianli为4。

3)SGSN在为MS创建的第一个PDP上下文中,携带的初始值APN Restriction为0。GGSN收到后,将查看对应这个APN的APN Restriction的本地限制值,并做出判断是否允许接受PDP激活,并在response消息中,将本地配置的这个APN限制值携带在APN Restriction IE中,发送给SGSN。SGSN收到后,将用GGSN收到的值覆盖初始值0。如果后续还从GGSN收到,将继续覆盖原有的APN Restriction值。

4)APN Restriction的取值,本意应该是值越小,限制就越少。值越大限制就越多。所以第一个PDP上下文,由于SGSN携带的APN Restriction为初始值0,因此第一个PDP上下文激活总是成功的。后续的PDP激活就要看第一个PDP上下文在GGSN侧对应的APN Restriction取值是多少,值越大,限制越多。具体的例子就以你举的例子为准了。

5)我再多举两个例子吧:

5.1 就是MS第一个激活的是BOC,GGSN接受,并将对应的APN Restriction=3返回给SGSN,SGSN保存下来。接下来,MS请求激活cmnet,SGSN发给GGSN的创建请求消息中的APN Restriction为3,GGSN对照1楼的表格,发现APN Restriction=3只能访问APN Restriction=1的APN,不能访问APN Restriction=2的APN,激活将被拒绝。

5.2 MS如果第一个激活dianli,GGSN接受,并返回对应的APN Restriction=4给SGSN,SGSN保存下来。接下来,MS无论访问剩下的3个APN任意一个,当激活请求发给了SGSN,SGSN对比发现是4,认为是最严格的限制类型,将直接拒绝。就不会给GGSN发送Create PDP Context Request消息了,而是由SGSN直接给MS回Activate PDP Context Reject。(来自TS23.060:If the SGSN has stored a value for the Maximum APN restriction and the value indicates the most restrictive type, then the SGSN shall reject any Activate PDP Context requests to a different APN, using the PDP Context Activation Reject message including an appropriate error cause.)

不知道关于我更新的内容,你还有什么意见或建议补充的吗?再次感谢你的指正哈!

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 8

特殊贡献奖

地板
发表于 2012-5-11 01:15:28 |只看该作者
本帖最后由 iscehsj 于 2012-5-11 01:17 编辑

回复 爱卫生 的帖子

爱总谦虚了!大家一起讨论,共同提高。呵呵~
关于你的理解3),我补充一下:

3)SGSN在为MS创建的第一个PDP上下文中,携带的初始值APN Restriction为0。GGSN收到后,将查看对应这个APN的APN Restriction的本地限制值,并做出判断是否允许接受PDP激活,并在response消息中,将本地配置的这个APN限制值携带在APN Restriction IE中,发送给SGSN。SGSN收到后,将用GGSN收到的值覆盖初始值0。如果后续还从GGSN收到,将继续覆盖原有的APN Restriction值。
[iscehsj] SGSN会为每个active的PDN连接保存一个APN Restriction的值,这个值一般不会变,除非GGSN发起Update PDP Context request修改该APN Restriction的值。而Maximum APN Restriction这个值,随着用户建立PDN连接个数的增加,其可能会发生变化的,也可以不会。这取决于从GGSN带过来的APN Restriction的值的大小。

谢谢!

使用道具 举报

Rank: 9Rank: 9

懒

5#
发表于 2012-5-12 16:23:44 |只看该作者
回复 iscehsj 的帖子

谢谢补充!很受益。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 8

特殊贡献奖

6#
发表于 2012-5-14 20:30:25 |只看该作者
爱卫生 发表于 2012-5-12 16:23
回复 iscehsj 的帖子

谢谢补充!很受益。

呵呵,相互学习啊。

爱总,关于这个APN Restriction,我还有一些疑问,大家一起探讨一下吧。谢谢!

1. 在GGSN上能不能配置APN Restriction的值为0?或者说存在不存在APN Restriction值为0的APN?

2. 如果存在的话,那某用户同时建立两个APN连接,一个APN restriction值为0,一个APN restriction值为4,会不会有问题?(如果从表格上来看,先建APN Restriction值为0的PDN连接,再建APN Restriction值为4的PDN连接,GGSN和SGSN是检测不到冲突的)因为APN restriction值为0的PDN连接,意味着某用户对其他APN的访问是没有任何限制,而APN restriction值为4的PDN连接,是私有网络;这样可能会对私有网络带来安全漏洞啊。

使用道具 举报

Rank: 9Rank: 9

懒

7#
发表于 2012-5-14 21:31:42 |只看该作者

关于论坛提问的说明

iscehsj 发表于 2012-5-14 20:30
呵呵,相互学习啊。

爱总,关于这个APN Restriction,我还有一些疑问,大家一起探讨一下吧。谢谢!

我明白你的顾虑。但我个人理解,GGSN侧是可以将APN Restriction设置为0的,并且我觉得很有可能0就是各个APN的默认值。虽然我没有找到GGSN上的配置命令。设为0代表是万能APN,可以同时激活其他的任意APN。但个人感觉不用担心安全问题,因为这是由用户决定的。假设例子里GGSN上有一个企业用户是银行,APN为bank of china,他在和移动签约的时候就声明了,我和其他APN没有互访需求,那移动就不应该在连接有BOC APN的所有GGSN上配置出现为0的APN,但反过来,如果这个GGSN是通用APN,例如只连接了cmwap和cmnet或还有什么3gwap、3gnet,他们之间是允许互访的。那就可以将这4个APN的APN Restriction都设置为0。默认应该也是为0。(并且该值根据规范定义是一个无符号整数,那自然应该包括0)。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 8

特殊贡献奖

8#
发表于 2012-5-15 09:00:14 |只看该作者
爱卫生 发表于 2012-5-14 21:31
我明白你的顾虑。但我个人理解,GGSN侧是可以将APN Restriction设置为0的,并且我觉得很有可能0就是各个A ...


Hi 爱总,

谢谢你分享你的理解!

根据你的描述,运营商可根据各个APN的不同需求,灵活配置在GGSN上的APN,以达到避免出现我之前提及的安全问题。
但是,这种做法只能解决在一个GGSN上APN restriction为0和APN restriction=4的APN同时访问的问题。实际上,用户可能通过不同的GGSN接入到不同的APN,如用户通过GGSN1连接到APN restriction为0的APN,然后用户再通过GGSN2连接到APN restriction=4的APN,这样安全问题依然存在。

我之前想到,判断这样的安全问题可在SGSN处解决,即SGSN进行APN restriction的冲突检查,如果发现用户出现同时访问APN restriction=0和APN restriction=4的情况,则拒绝APN restriction=4的APN连接请求(因为如果用户已经建立APN restriction=4的APN连接,根据那个表格的检查,是不允许再建立APN restriction=0的连接了)。
但是,根据协议的那个表格进行检查的话,SGSN是不会这么做的。

这就是我concern的问题。

谢谢!

使用道具 举报

Rank: 9Rank: 9

懒

9#
发表于 2012-5-15 22:14:49 |只看该作者
iscehsj 发表于 2012-5-15 09:00
Hi 爱总,

谢谢你分享你的理解!

我是这么理解的:

如果是不同的GGSN连接的不同APN对应的PDN网络,确实在技术上是可以互访的,但从技术上也是可以控制的。这个需要运营商根据用户的需求来做统筹安排。逻辑拓扑图是这样的:

GGSN1(APN:cmwap对应到路由实例Gi1)---->Gi CE路由器----->(入口PE路由器----运营商MPLS VPN骨干网-----出口PE路由器)---->Site CE路由器----->GGSN2(APN:dianli对应到路由实例Gi2)

上例中,GGSN1中的Gi1路由实例能否访问GGSN2的路由实例Gi2,可以由运营商的MPLS VPN骨干网来控制,通过调整RT或设置Hub CE的方法。

所以,个人感觉这些都应该是运营商应该为客户做的。毕竟和客户的SLA就是这么签的。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 8

特殊贡献奖

10#
发表于 2012-5-16 11:34:34 |只看该作者
爱卫生 发表于 2012-5-15 22:14
我是这么理解的:如果是不同的GGSN连接的不同APN对应的PDN网络,确实在技术上是可以互访的,但从技术上也 ...


谢谢爱总的回复!

但是运营商的这个路由配置只是解决了网络侧的安全隐患,UE对于运营商来说,还是不可控的。UE还是可能被作为一个router来转发两个PDN连接的数据啊。
为了解决这个问题,如果运营商避免在GGSN上配置APN Restriction=0的APN,或者运营商避免用户访问APN Restriction=0的所谓的“万能”的APN,那这个问题就能从根本上解决。当然,这只是我的一个想法,但是从目前3GPP的规范来看,我没有看到这样的约束或者限制。

以下是3GPP关于APN Restriction的引入的背景:

Vodafone在运营过程中发现了GPRS网络中一个安全漏洞。当存在多个active Primary PDP context之时,UE可能成为已经由PDP context建立的connection之间的转发数据的router。因此,在公共区域上,黑客可能通过UE连接到public APN的PDP context来接入到private APN的connection上。

针对这个安全漏洞,Vodafone在2003年11月美国纽约召开的SA2#36次会议提交CR,以解决这个安全问题。Vodafone建议,通过引入APN Restriction来限制连接到public和某些private APN的接入的能力,以减少该安全漏洞造成的影响。(参考CR S2-034327)。

S2-034327:Security Issue with Multiple PDP Contexts

Reason for change:
A security loophole has been identified when multiple Primary PDP Contexts are active. In effect, the loophole may cause the UE to become a router for packets between the connections created by the PDP contexts. This CR aims to reduce the impact of this loophole by removing the ability to have connections to public access and certain private APNs as required by the APN configuration.

Summary of change:
The addition of the parameters APN Restriction and Maximum APN Restriction to be transferred in Create PDP Context requests and Update PDP Context requests. Addition of feature to perform calculation/decision of whether certain APN combinations are permissible in the PDP Context Activation and Inter-SGSN Routeing Area Update procedures.

Consequences if not approved:
Hackers in the public domain may be able to access connections to private APNs via a UE’s PDP context to a public APN.

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 9Rank: 9

懒

11#
发表于 2012-5-17 00:11:28 |只看该作者
有道理,让我们了解得更加细致,关于这个APN限制的背景都弄清楚了。非常感谢!

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-5-29 07:15 , Processed in 0.069659 second(s), 14 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部