本文基于3GPP R6和爱立信GGSN (M120/320)理解,纯綷为个人学习心得,与大家交流。理解不对的地方请大家拍砖!!
一、 GGSN服务总体配置结构
在M120或M320平台的GGSN上,相关的GGSN服务总体配置架构如下所示:
services {
ggsn {
node<node name>;
apn {
charging {
ggsnc{
pic-allocation {
ggsnu{
gom-routing-instance <routing-instance name>;
generic-commands {
gtp {
pdp-context {
service-based-charging {
license {
rule-space <rule-space name> {
service-set <service-set name>{
service-identification {
}
}
下面是对上述各配置项的说明:
l Node,顾名思义,Node就是配置节点的hostname名称;
l Apn,在该项中,一般来配置详细的业务apn,包括APN是否被访问,apn所对应的外网routing-instance,apn中应下发给手机的dns server的IP,apn中IP地址池,apn是否采用实时计费(用credit control来指定对应的diameter对等体),apn所关联的计费能力(用allow-rule-space来指定),在apn中如何对用户进行分类,apn中radius的设置等;
对中国移动来说,在apn中会配置cmwap和cmnet两部分内容;
l Charging,该项中需要配置全局话单参数,指定需要由那个帐号来采集话单,是否启用增强型话单,话单大小,话单生成周期。
同时在该项中,需要指定各种不同的charging characteristics,也就是CC,根据不同的CC配置不同的profile,来指话单不同的生成方式与采集方式。CC字段是在HR上为用户设定的,当用户PDP激活时,SGSN会可选的向GGSN上报该字段。如果SGSN没有指定CC字段的值,则GGSN会选取默认的profile文件。
l ggsnc,该项中来指定控制平面中GTP-C卡的Gn地址;
l ggsnu,该项中来指定用户平面中GTP-U卡的Gn地址;
l pic-allocation,该项来指定GGSN中的所有GGSN业务卡,几块卡做C卡,几块卡做U卡,只规定数量。具体卡的角色由系统自动选举;
l gom-routing-instance,该选项用来指定GGSN PIC上的各业务IP(OCS_IP、PCC_IP、Gom_IP)应该归属于那个路由实例中,如果不配置,则默认归属到全局路由表inet.0中;
l gtp ,该选项用于指定当前GGSN所使用的GPRSTunnel Protocol的版本,路径管理的计时器设置,以及Gn平面所需要归属于的路由实例;
l pdp-context,该选项中指定了整个GGSN所支持的最大pdp数量,最大的包转发能力,以及用户Qos所能达到的最高上下行速率等;
l license,该选项中定义了当前GGSN开启的feature,当然了这些feature只在license key文件导入后才能打开;
l service-identification,该选项中定义了具体的业务流识别规则,也就是我们所说的内容计费规则。当识别用户的业务流时,可以进行IP三元组(目标IP、协议、目标端口)的方式,称为三层检测;也可以更深入的检测应用层信息,称为DPI(深度检测)。
对于识别到的用户业务流,也称为Service Data Flow,SDF,为了便于计费,会为它分配一个业务ID,也称为SDF-ID;
当用户在一个PDP中发生了多种业务,那么会为每种不同的业务分配一个SDF-ID,对于无法识别到的业务,则分配默认的SDF-ID。
service-identification的配置结构如下:
[attach]2758[/attach]
l service-set,该选项是对service-identification的调用,service-identification只是service-set的一个子集而已。
l rule-space,该选项调用service-set,同时也定义了rating-group的值 。
这里需要认识到,rule-space的定义与内容计费息息相关。如果某个APN不需要内容计费那么就不需要关联rule-space,这时该APN使用全局的计费项定义来生成话单,并且话单条目中不包括SDF-ID与Rating-group;
如果某个APN关联了rule-space,那么话单中则包括了SDF-ID与Rating-group。SDF-ID可以看成是细业务(也可称为小分类),而Rating-group则可以看成是粗业务(也可称为大分类),两个参数从宏观与微观上来区分业务。
另外,在rule-space中,需要定义access-control-rule,也称为ACR,它用于标识每业务流能否被允许访问,是一个基本控制单元,也叫PCC规则,缺省情况下,每业务流SDF-ID与ACR-ID是一一对应的,它们之间存在默认的一对一映射。除非这种映射被人工重新定义。更改默认映射需要在rule-space层下用service-data-flow指令来完成。
acr做为业务授权基本单元,可以被归划到一个组中,也就是ACG。能过对ACG授 权,可以允许该组中的所有ACR所对应的SDF业务流完成互访。
Rating-group值的取法有两种:第一种是手工定义,将多个的ACR-ID与一个具体的Rating-Group值对应起来;或只设一个默认值,将一个Rating-Group值对应所有的ACR-ID; 另一种是Rating-group的取值直接来自ACR-ID,一一对应,在Rating-Group配置层次下,用defaultuse-access-control-rule来完成该对应。
二、 认识SACC
SACC全称为ServiceAware Charging and Control,爱立信称之为内容计费。它是爱立信GGSN的一个体系化加构,由数个网络节点以及一系例特性来完成譬如 业务授权、策略控制、流量重定向、深度包检查PISC等功能。
目前SACC有3.0版本与4.0版本。从3.0开始,包括了Gx+、Gy+等在线业务控制功能,在4.0中,则扩展了Gx+ PCC技术、Aware Policy-based Routing (APR), Usage Reporting over Gx and UsageMonitoring over Gx等功能。
因此可以说,SACC是一个很完整的针对分组业务的计费与控制解决方案,而现行的主流的PCC功能则是SACC中的一个功能子集。
SACC所涉及的功能节点以及参考接口如下所示:
[attach]2759[/attach]
Figure 1 Overviewof SACC Interfaces and Nodes in the GPRS Network
下面的图中,讲述了一个IP包是如何通过SACC的各个阶段:
[attach]2760[/attach]
Figure 5 IP Packet Flow through the SACC Phases
从上图中可看出,SACC已经包括了Gx功能(策略控制)与Gy功能(信用控制)。当PDP激活时,用户类别User Category与Rule Space的选择,决定了后续业务IP包要被怎么样处理。 User Category指定了处理的关键条件,而Rule Space则提供了具体的处理细则,最后通过Gx与Gy这个功能引擎来根据特定的条件(User Category)来运行特定的细则(Rule Space)。
SACC体系的核心就是PISC(PacketInspection and Service Classification,包深度检测),这是一个可选的配置。它会分解出用户的每个业务行为(SDF-ID)/流量额,由Gx进行授权/Gy进行额度控制。
而上面的整个针对IP包流的处理,就是在SACC这个大引擎中的具体处理步骤。
当PISC功能关闭是,Gx与Gy也可以正常工作;但此时所有的业务将统一用一个业务ID(也叫SDF-ID),Gx必须对该SDF-ID进行授权。
在本文的讨论中,我们着重阐述PCC的理论,也就是解读Gx与Gy。而PCC则是SACC的一部分,在这里我们先不论正确与否,从爱立信理念提出一个易于理解的广义公式:
SACC = Gx + Gy
三、 爱立信PCC讨论
对于正常的Gx,爱立信称之为”Gx+”,带加号是因为爱立信对正常的Gx功能做了私有扩展。爱立信的Gx+有两个版本:
一个称为Gx+ Interface(也叫Gx+ Static Access Control feature),是基于3GPP R6的;
另一个称为Gx+ PCC Interface(也叫Gx+ Policy and ChargingControl feature),是基于3GPP R7/8的。
该接口位于GGSN与PCRF(爱立信为SAPC)之间,主要用于当用户PDP激活时,GGSN从PCRF获取dynamic authorization, policy charging control, and policy control的信息。
同理,Gy+也是这么一回事,因为对标准Gy有扩展,所以称之为Gy+。Gy+接口位于GGSN与OCS之间, 用于实时信用控制与用户流量计费。Gy+接口GGSN也有四个标准: 3Gy R6、3Gy R8、EGy v1、EGy v2, 具体为:3GPP GyRelease 6 and Release 8 (3Gy R6 and 3Gy R8) and Ericsson Gy version 1 andversion 2 (EGy v1 and EGy v2)。
当PDP需要激活时,GGSN首先判断用户的类别UserCategory,由类别来决定对该PDP实施那个RuleSpace、要引用那个creditcontrol profile以及policycontrol profile。
[attach]2761[/attach]
在这里通俗点讲,Rule Space就是PCC的规则库,而credit control profile与policy control profile则是从两方面来调用或激活这个规则库中的各种规则,并把这种结果施加在PDP上面。爱立信的alex观点认为,Rule Space就是SACC的参数集合。
对于PDP流活时,RuleSpace的获取,有两种方式:
一种方法是静态,也就是在配置中指定,可以通过CC字段来完成用户分类(UserCategery),找到对应的Rule Space;或通过对IMSI、MSISDN、CC字段的结合计算来完成用户分类(User Category),找到对应的Rule Space。
另一个方法是动态获取Rule Space,通过Remote Authentication Dial-In User Service (RADIUS), Gx+, Gx+ PCC, orGy+ interfaces来得到指派给PDP的Rule Space。
无论是静态还是动态,在GGSN的配置中,都有一个缺省Rule Space的指定,这是强制的要求。也就是说对于某个PDP,最终必须指派Rule Space。
在不启用PCC时,如果把Rule Space关联到APN中,PDP在激活时,只能实现静态的内容计费,这时会产生增强型话单eG-CDR。如果在APN中不关联Rule Space,那么只产生基本话单,也就是G-CDR。
四、 爱立信GGSN PCC配置流程
在完成PISC包检测配置后(也就是完成Service identifier),在GGSN全局配置模式下配置:
第一步:配置Rule Space:
rule-space service-charging-RealTimeCharging {
service-set Service-Charging;
drop-pending-authorization[ acr-id ];
quota-handling { }
rating-group {
default {
use-access-control-rule;
}
}
enable-access-control-rules;
always-allowed-access-control-rule [ acr-id]; //不经过Gx授权的服务
local-policy-control{ }
}
在上面的配置中,用enable-access-control-rules这条语句开启Gx功能,允许SDF-ID与ACR-ID之间进行对应;
第二步:配置业务计费:
service-based-charging {
realmop.com;
host-nameggxx.cmcc.com;
diameter-host { hostname,ip,port,timeout}
diameter-application-system{
app-name {
destination-realm <....>;
application-id <pcc|ro>;
peer < hostname >;
timeout 10;
access-type direct;
}
}
}
在这部分配置中,需要指定Gx与Gy所需要的对端,也就是对端的Diameter主机以及相对应的application-id,其中pcc指Gx,对应于Diameter Auth-Application-ID的值为16777238;ro指Gy, 对应于Diameter Auth-Application-ID的值为4。
第三步:在APN中开启Gx/Gy检测:
apn{
cmnet {
access-restrictions { }
routing-instance Gi;
pdp-context { }
name-server { dns server IP}
service-based-charging {
control-context 3gpp;
policy-control { //Gx配置
dynamic {
gx-profile Gx_profile_name {
diameter-application-systemgx-app-name;
subscription-id msisdn;
failure-actionuse-local;
usage-reporting;
}
}
}
credit-control { //Gy配置部分
ro-profileGy_profile_name {
diameter-application-systemgy-app-name;
service-context-id"6.32251@3gpp.org";
failure {
failure-actioncontinue;
continue {
no-reestablish;
}
}
no-initiate-session-on-activation;
session-termination {}
}
}
}
allow-rule-space rule_space_name; //调用Rule Space,它提供ACR-ID
charging {
characteristics {
imsi-based {
disable;
}
}
}
user-category { //对用户进行分类,按CC值的不同,连到不同的Gx/Gy主机
default {
rule-space {
default rule_space_name;
}
policy-control-dynamic-gx-profile Gx_profile_name;
}
category 1 {
cc-values 4;
msisdn xxxxxx;
rule-space {
default rule_space_name;
}
policy-control-dynamic-gx-profile Gx_profile_name;
credit-control-ro-profileGy_profile_name;
}
category 2 {
cc-values 8;
msisdn xxxxx;
rule-space {
default rule_space_name;
}
policy-control-dynamic-gx-profileGx_profile_name;
credit-control-ro-profileGy_profile_name;
}
}
}
}
厉害啊。谢谢分享。非常详尽的总结。相信帮了不少论坛兄弟的忙了。精华帖。赞~~
weiweitb 发表于 2013-8-31 17:47
给个图,PCC的精粹:对特定的用户(User CATEGORY),满足特定的条件(PISC),执行特定的动作(ACR+RG). User ...
欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) | Powered by Discuz! X2 |