소개
이 문서에서는 APN(Access Point Name)의 잘못된 컨피그레이션으로 인해 GGSN(Gateway-Gprs Support Node) 통화 데이터 레코드(G-CDR)가 정체되어 가입자에 대한 잘못된 청구가 발생하고 GSN에 걸려 있는 CGF(Charging Gateway Function)에서 백날짜가 지정된 CDR을 수신하는 특정 시나리오에 대해 설명합니다.이 문제는 Cisco ASR(Aggregated Service Router) 5x00 Series에서 보고됩니다.
문제
일부 APN의 다양한 이유(대부분의 경우 컨피그레이션 오류)로 인해 CDR은 기본 그룹으로 이동합니다.기본 그룹에서는 CGF 서버가 구성되지 않아 요청이 중단됩니다.
예:
apn blackberry.net.40413pre
selection-mode subscribed sent-by-ms chosen-by-sgsn
accounting-mode none
timeout idle 10800
ip access-group ECS in
ip access-group ECS out
ip address pool name blackberry
credit-control-group GY_LIVE_PRE
active-charging rulebase test_prepaid
exit
apn blackberry.net.40443pre
selection-mode subscribed sent-by-ms chosen-by-sgsn
accounting-mode none
timeout idle 10800
ip access-group ECS in
ip access-group ECS out
ip address pool name blackberry
credit-control-group GY_LIVE_PRE
active-charging rulebase test_prepaid
exit
apn blackberry.net.40446pre
selection-mode subscribed sent-by-ms chosen-by-sgsn
accounting-mode none
timeout idle 10800
ip access-group ECS in
ip access-group ECS out
ip address pool name blackberry
credit-control-group GY_LIVE_PRE
active-charging rulebase test_prepaid
exit
apn blackberry.net.40484pre
selection-mode subscribed sent-by-ms chosen-by-sgsn
accounting-mode none
timeout idle 10800
ip access-group ECS in
ip access-group ECS out
ip address pool name blackberry
credit-control-group GY_LIVE_PRE
active-charging rulebase test_prepaid
exit
apn blackberry.net.40486pre
selection-mode subscribed sent-by-ms chosen-by-sgsn
accounting-mode none
timeout idle 10800
ip access-group ECS in
ip access-group ECS out
ip address pool name blackberry
credit-control-group GY_LIVE_PRE
active-charging rulebase test_prepaid
exit
aaa group default
#exit
gtpp group default
문제 해결
Show support details 출력에서 명령 출력을 확인합니다.
******** show session subsystem data-info verbose *******
647274 Total gtpp acct requests 1 Current gtpp acct requests
0 Total gtpp acct cancelled 0 Total gtpp acct purged
0 Total gtpp sec acct requests 0 Total gtpp sec acct purged
248 Total null acct requests 0 Current null acct requests
2482018515 Total aaa acct sessions 265064 Current aaa acct sessions
14529031 Total aaa acct archived 6518761 Current aaa acct archived
265064 Current recovery archives 259073 Current valid recovery records
1108 Total aaa sockets opened 932 Current aaa sockets opened
보관된 현재 aaa 계정에 따르면 모든 CDR에 6백만 개가 고착 상태이며, 스트리밍 모드에서 새 CDR이 처리되어 CGF로 전송되지 않는 것으로 표시됩니다.
aaamgr당 제한에 도달하면 CDR이 삭제되고 CDR이 손실되고 고객에게 수익 손실이 발생합니다.
600만 개의 CDR 중 일부 CDR이 삭제되는 것을 확인할 수 있습니다.
******** show session subsystem data-info verbose *******
1228764750 Total gtpp charg 6534523 Current gtpp charg
1221919009 Total gtpp charg success 311218 Total gtpp charg failure
0 Total gtpp charg cancelled 311218 Total gtpp charg purged
0 Total gtpp sec charg 0 Total gtpp sec charg purged
0 Total prepaid online requests 0 Current prepaid online requests
0 Total prepaid online success 0 Current prepaid online failure
0 Total prepaid online retried 0 Total prepaid online cancelled
0 Current prepaid online purged
다음은 CDR 관련 문제를 디버그하는 데 일반적으로 사용되는 CLI 명령의 검사 목록입니다.
- show gtpp accounting servers
- show gtpp accounting servers group name <CGF>
- show gtpp counters all
- show gtpp counters cgf-address 172.16.10.11
- show gtpp counters cgf-address 172.16.10.11 gcdrs
- show gtpp counters group name CGF
- show gtpp counters group name CGF gcdrs
- show gtpp group all
- show gtpp group name CGF
- show gtpp statistics
- show gtpp statistics cgf-address 172.16.10.11
- show gtpp statistics group name CGF
- show gtpp storage-server streaming file counters all
- show gtpp storage-server streaming file counters group name CGF
- show gtpp storage-server streaming file statistics
- show gtpp storage-server streaming file statistics group name CGF
솔루션
aaproxy 프로세스에서 기본 그룹에 속하는 CDR을 정리하는 MOP(프로시저 방법)
1단계. 보관된 CDR을 기록해 둡니다.GTP 카운터 모두 표시
2단계. gaggsnctx 컨피그레이션 컨텍스트 ggsnctx gtp 그룹 기본 gtp 스토리지 서버 모드 로컬에서 로컬로 모드를 구성합니다.
3단계. 숨김 모드에서 이 명령을 사용하여 aaproxy를 종료하십시오.task kill facility aaproxy all.(Task Kill은 로컬 모드를 기본 그룹에 적용합니다.)
4단계. 숨겨진 모드에서 나옵니다.
5단계. show gtp storage-server local file statistics is increating을 선택합니다.
6단계. show gtp counters all을 30초마다 실행합니다.이 값은 5분 이내에 0으로 내려와야 합니다.
7단계. 모드를 원격으로 되돌립니다.config context gagsnctx gtp group default gtp storage-server mode remote
8단계. 보관된 카운터(show gtpp counters all)가 증가하지 않고 있으며 gtp storage-server 로컬 파일 통계가 증가하지 않음을 표시합니다.
9단계. SSD를 가져와 확인을 위해 다시 보내 구성이 손상되지 않았는지 확인하고 모든 단계를 수행하십시오.
참고:활동이 완료된 후 HDD에서 CDR 파일을 제거하는 절차를 알고 있는 경우어서 가(그렇지 않은 경우, 나중에 TAC 엔지니어와 연락하여 이 작업을 수행하십시오.)
aaproxy가 1분 후에 복구되지 않으면 복구 절차를 참조하십시오.
aaproxy 복구 절차
a. Issue the command to check which controller takes care of aaaproxy task
show task table | grep aaaproxy
task Parent
cpu facility inst pid pri facility inst pid
---- --------------- -------- ------- ---- ---
4/0 aaaproxy 1 6721 0 sessctrl 0 10565
b. Please execute the below commands and look out for instance of sessctrl on Active SMC
#Show task table | grep sessctrl
Task parent
cpu facility inst pid pri facility inst pid
---- ------------------------------- --- ----------------------------
8/0 sessctrl 0 10565 -4 sitparent 80 2812
c. Issue the sessctrl instance kill command
Task kill facility sessctrl instance <>.
d. After the execution of command, wait for 30 secs and issue the commands to check state of sessctrl and aaaproxy
1. Show task table | grep "8/0 sessctrl"
2. Show task resources | grep aaaproxy
기술 설명
일부 APN에 대한 다양한 이유(대부분 잘못된 컨피그레이션)로 인해 CDR은 기본 그룹으로 이동합니다.기본 그룹에서는 CGF 서버가 구성되지 않아 요청이 중단됩니다.유효한 GTP 그룹이 구성된 APN에 대해 CDR은 보관하지 않아야 하지만 아카이브 큐로 이동할 수 있습니다.
아카이브 대기열에서 한 번에 다섯 개의 요청만 처리할 수 있습니다.5개의 모든 요청이 잘못된 컨피그레이션이 있는 APN에 속할 경우 상위 5개의 요청은 해제되지 않으므로 모든 CDR이 큐에서 차단됩니다.이는 특정 월에 생성된 CDR이 여기에 묶여 잘못 처리되었음을 의미합니다.
ASR5x00에는 아카이브할 수 있는 CDR 수가 최대 한도에 도달했습니다.한도를 초과하면 보관된 CDR이 삭제됩니다.이렇게 하면 특정 월에 생성된 유효한 CDR이 적용되고 릴리스됩니다.
예를 들어
대기열에 5개의 요청이 있고 나머지 요청이 올바른 구성의 유효한 APN에 속할 경우, 처리 시 서버가 구성되지 않아 5개의 요청이 해제되지 않고 한 번에 5개의 CDR만 처리하므로 5개의 요청이 영구히 중단되지 않습니다.그러나 요청 중 하나가 삭제되면 잘못된 구성 APN에 속하는 4개의 요청이 있고 그 다음 요청은 유효한 APN임을 의미합니다.이제 5개의 요청을 처리하면 4개의 요청이 중단되지만 5번째 요청은 지금 처리됩니다.이렇게 하면 CGF와 같이 CGF로 전송된 기존 CDR은 GGSN에 의해 늦게 릴리스되기 때문에 1월에 CGF에서 처리될 것입니다.
올바른 그룹의 CDR을 보관 큐로 보내는 이유: UDP(User Datagram Protocol)에서 전송할 수 있는 최대 패킷은 헤더를 포함하여 64K입니다.이제 max-cdrs 255 대기 시간 60을 구성했으므로 최대 255개의 CDR에 도달하기 전에 64K 버퍼가 가득 찰 가능성이 있습니다.시스템은 새 CDR이 64K 버퍼에 들어갈 수 있는지 여부를 확인합니다.그렇지 않으면 아카이브 대기열로 다시 이동합니다.이 CDR은 잘못된 그룹에 대한 CDR이 삭제될 때까지 1개월 동안 보관 큐에 다시 넣었습니다.올바른 구성이 있다면, 서버가 없는 APN에 대한 CDR이 아카이브 큐에 들어가지 않았을 것이며, CDR이 아카이브 큐로 진입하더라도 처리되었을 것이기 때문에 이 문제는 결코 발견되지 않았을 것입니다.
논리
aaaproxy를 죽이고 gtp 스토리지 서버 모드 로컬에서 변경하는 중이므로, 중단된 CDR은 로컬 하드 디스크에 푸시되며, aaamgr당 제한에 도달하면 CDR이 제거되지 않습니다.모든 CDR이 로컬 하드 디스크에 기록되면 기본 CDR인 원격 모드로 다시 변경할 수 있습니다.