本帖最后由 爱卫生 于 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 Value | Type of APN | Application Example | APN Restriction Value of PDP contexts allowed to be established | 0 | No Existing Contexts or Restriction | All | 1 | Public-1 | WAP or MMS(cmwap) | 1, 2, 3 | 2 | Public-2 | Internet or PSPDN(cmnet) | 1, 2 | 3 | Private-1 | Corporate (e.g. who use MMS) (bank of china) | 1 | 4 | Private-2 | Corporate (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。 |